WORKING TITLE: "SPEAKR"
A social media forum sort of like Reddit or Twitter.
This is a group project for a class using Spring Boot and MySQL on the back end, and React on the front end. The build tool for Java is Maven, mostly because of Spring and not because we particularly like it all that much.
The database would have at least two tables, one for users and one for posts.
A user record must have:
User_UUID
(fromuser_tbl
)- Name (
String
) - Username (
String
) - Join date (time)
- Bio (
String
up to 120 characters, may not be empty) - Profile picture (if we have time to implement the feature before the project deadline)
A post record must have:
Post_ID
(String
)User_UUID
of the user posting the post (User fromuser_tbl
)Password
(String
) hashed with bcryptTimestamp
(time)Upvoters
(JSONUserID[]
?)Downvoters
(JSONUserID[]
?)Content
(String
up to 256 characters)
A post record may have:
- IDs of replies
- Last updated? (users may edit their own posts?)
UserController
PostController
- Create user
- Get all users
- Update user
- Delete user
- Get all posts (homepage)
- Get all posts from specific time to now
- Get all posts from specific user
- Get all replies referring to parent post
- Create new post
- Delete post
- Update post content