A forum platform that allows users to create threads, post replies, and engage in discussions. Implement features such as user authentication, moderation tools, and search functionality.
This is a forum platform where users can create threads, post replies, and engage in discussions.
- User authentication
- Create, edit, and delete threads
- Post replies to threads
- Upvote and downvote threads and replies
- Moderation tools for administrators to manage threads and replies
- Search functionality to find threads and replies
POST /api/register
: Register a new userPOST /api/login
: Login a userPOST /api/logout
: Logout a user
GET /api/threads
: Get a list of all threadsGET /api/threads/{id}
: Get a specific thread by IDPOST /api/threads
: Create a new threadPUT /api/threads/{id}
: Update an existing threadDELETE /api/threads/{id}
: Delete an existing thread
GET /api/threads/{thread_id}/replies
: Get a list of all replies for a specific threadGET /api/threads/{thread_id}/replies/{id}
: Get a specific reply by ID for a specific threadPOST /api/threads/{thread_id}/replies
: Create a new reply for a specific threadPUT /api/threads/{thread_id}/replies/{id}
: Update an existing reply for a specific threadDELETE /api/threads/{thread_id}/replies/{id}
: Delete an existing reply for a specific thread
GET /api/moderators
: Get a list of all moderatorsPOST /api/moderators
: Add a new moderatorDELETE /api/moderators/{user_id}
: Remove an existing moderator
- GET /api/search?q={query}`: Search for threads and replies by keyword
Note: This is just an example list of API routes, and you may need to modify it based on the specific requirements.
id
: int (primary key)name
: varchar(255)email
: varchar(255)password
: varchar(255)created_at
: timestampupdated_at
: timestamp
id
: int (primary key)user_id
: int (foreign key to Users table)title
: varchar(255)body
: textupvotes
: intdownvotes
: intcreated_at
: timestampupdated_at
: timestamp
id
: int (primary key)user_id
: int (foreign key to Users table)thread_id
: int (foreign key to Threads table)body
: textupvotes
: intdownvotes
: intcreated_at
: timestampupdated_at
: timestamp
user_id
: int (foreign key to Users table)created_at
: timestampupdated_at
: timestamp
Note: This is just an example schema, and you may need to modify it based on the specific requirements.
git clone https://github.com/BaseMax/ForumPlatformDDD.git
cd ForumPlatformDDD
docker build -t ddd_forum .
docker run -p2929:2929 ddd_forum
screen.webm
- Ali Ahmadi
- Max Base
Copyright 2023, Max Base