192 lines
4.9 KiB
Markdown
192 lines
4.9 KiB
Markdown
# project-ln
|
|
|
|
## Description:
|
|
|
|
For writers:
|
|
- A tool for your works to be written and/or published!
|
|
|
|
For readers:
|
|
- See an awesome stories from our writers!
|
|
|
|
## Stack
|
|
|
|
- React
|
|
- TanStackRouter
|
|
- ChakraUI
|
|
- ?styled-components
|
|
- apoollo gql
|
|
- Express
|
|
- Prisma + MariaDB
|
|
- Vite
|
|
|
|
|
|
## Structure:
|
|
|
|
### sketch - outdated
|
|
```
|
|
|
|
Home --> Read -> |-> Stories(r/o + p/o) -> Feedback(r/o)
|
|
| |-> Forums(r/o)
|
|
|
|
|
|-> Login -> |-> Profile
|
|
|-> Write -> List -> Editor
|
|
|-> Forums -> |-> Writer -> Threads(w) -> Thread -> Post -> Comments
|
|
| |-> Reader -> Threads(r) -> Thread -> Post -> Comments
|
|
|-> Messaging
|
|
|-> Read(bookmarking)
|
|
r/o - read only
|
|
p/o - public only
|
|
|
|
```
|
|
|
|
```
|
|
Home - /
|
|
Log In - /login
|
|
Register - /register
|
|
|
|
Browse - /browse
|
|
Search - /search
|
|
|
|
Story - /story/:story_id
|
|
Forum - /forum
|
|
Thread - /forum/:thread_id
|
|
Post - /forum/:thread_id/:post_id
|
|
|
|
Profile - /profile/:username
|
|
Messages - /messages/:message_id
|
|
|
|
---
|
|
Contacts - /contacts
|
|
```
|
|
|
|
### sketch
|
|
`[a] - authorized`
|
|
`[mv] - multiple view`
|
|
`(r-w-o) - reader/writer/others`
|
|
|
|
```
|
|
|-> Login
|
|
|-> Register
|
|
|-> Forgot password
|
|
|-> Guest
|
|
|
|
|
v
|
|
Home --> Read --> [mv] Stories/Search -> Story --> [mv] Chapters -> Chapter -> Chapter comments -> [a] Comment
|
|
| | |-> Author -> Author profile
|
|
| | |-> Feedback -> [mv] Story Comments -> [a] Comment
|
|
| |
|
|
| |
|
|
| |-> [mv] Forums -> [mv] Threads -> Thread
|
|
|
|
|
|-> [a] User profile --> Settings
|
|
|-> Messages
|
|
|-> Notifications
|
|
|-> Storage -> (-s.storage-)
|
|
|
|
(-s.storage-) -> [mv] Folders -> Folder --> Story -> editor.Story -> [mv] Chapters -> Chapter -> Publish
|
|
|-> World -> editor.Worldbuilding -> [?] -> Publish
|
|
|-> Notes -> editor.Notes -> [mv] Notes -> Note -> Publish
|
|
```
|
|
|
|
```
|
|
|
|
Home /
|
|
---
|
|
Login /login
|
|
Register /register
|
|
Forgot passwd /forgot
|
|
---
|
|
Stories /story
|
|
Story /story/:story_id
|
|
Chapter /story/:story_id/:chapter_id
|
|
Comment /story/:story_id/:chapter_id/:comment_id
|
|
---
|
|
Forums /forum
|
|
Threads /forum/:forum_id
|
|
Thread /forum/:forum_id/:thread_id
|
|
Comment /forum/:forum_id/:thread_id/:comment_id
|
|
---
|
|
Profile|User /user/:user_id
|
|
Settings /settings
|
|
---
|
|
Conversations /messages
|
|
|
|
Chat /messages/user/:user_id
|
|
Chat message /messages/user/:user_id/:message_id
|
|
|
|
Group chat /messages/group/:group_id
|
|
Group message /messages/group/:group_id/:message_id
|
|
---
|
|
Notifications /notifications
|
|
---
|
|
Storage /storage
|
|
Folder /storage/:folder_id
|
|
|
|
Story /storage/:folder_id/story/:story_id
|
|
World /storage/:folder_id/world/:world_id
|
|
|
|
Notes /storage/:folder_id/notes/:notes_id
|
|
Note /storage/:folder_id/notes/:notes_id/:note_id
|
|
|
|
|
|
Q: Should we unify the Storage Story/World/Notes with their published
|
|
counterparts?
|
|
```
|
|
|
|
### sketch - db
|
|
```
|
|
Users
|
|
|
|
id: Primary key.
|
|
username: Unique identifier.
|
|
email: User email.
|
|
password: Encrypted password.
|
|
|
|
Messages
|
|
|
|
id: Primary key.
|
|
sender_id: Foreign key referencing Users(id).
|
|
receiver_id: Foreign key referencing Users(id) (for user-to-user messaging).
|
|
group_id: Foreign key referencing Groups(id) (for group messaging, nullable for direct messages).
|
|
content: Text or reference to file/attachment.
|
|
created_at: Timestamp of message creation.
|
|
read_at: Timestamp when the message was read (nullable).
|
|
|
|
Groups (Optional)
|
|
|
|
id: Primary key.
|
|
name: Group name.
|
|
created_by: Foreign key referencing Users(id).
|
|
```
|
|
|
|
## User Strories (free-form):
|
|
|
|
- Users/Writers - what should differentiate them? Writer has a published or a
|
|
WIP unpublished work, while reader has only a stories that they read?
|
|
|
|
|
|
## User Stories:
|
|
|
|
1. [ ] Provide a platform for users to read&write&share their stories
|
|
2. [ ] Add a *public* page with service updates (gallery view)
|
|
3. [ ] Add a *public* page section for browsing stories/users/threads
|
|
4. [ ] Provide an easy navigation
|
|
5. [ ] Make a header section
|
|
6. [ ] Make a title with redirect to the *home* page
|
|
7. [ ] Make a login button with pop-up menu inside the header
|
|
8. [ ] Add a login page
|
|
9. [ ] Add a registration button in a pop-up menu and on the login page
|
|
10. [ ] Add a registration page
|
|
11. [ ] Replace login section in the header with the relevant user login+avatar
|
|
12. [ ] Make a header *user info* section to open a pop-up menu
|
|
13. [ ] Make a log out button in the *user info* pop-up menu
|
|
14. [ ] Make a browse section in the header
|
|
15. [ ] Add a *browse* page
|
|
16. [ ] Add a search section in the header
|
|
17. [ ] Make a *search* page
|
|
|
|
1. [ ] Make a user's profile page
|
|
1. [ ] Make a *user info* section to lead to user's profile page
|
|
1. [ ] Make a *user settings* page
|
|
1. [ ] Add user settings page link in the header *user info* pop-up
|
|
1. [ ]
|