ThreadIt is a social media platform inspired by Reddit, implemented using the MERN stack. It offers a variety of functionalities that allow users to connect, share content, and moderate communities.
-
User Registration:
- Register with your details. Ensure that the contact number and age are numeric, while other fields are text.
-
Login and Home Page:
- After logging in, you will be directed to the home page where you can follow other users through the "More People to Follow" section.
-
Subthreadit Creation:
- Create a new subthreadit with moderator privileges.
-
Join Subthreadit:
- Request to join other subthreadits. Upon acceptance, you can view posts, reports, user lists, stats, and requests. You can also create posts, upvote, downvote, and comment.
-
Leave Subthreadit:
- You can leave a subthreadit at any time. However, once left, you cannot request to join again. You will still be able to view posts, reports, user lists, stats, and requests.
-
Explore Subthreadits:
- View all subthreadits under the "All SubGReadit" tab. Search by name or description (with fuzzy search enabled) and sort them as needed. Navigate to their home pages via the "view" option.
-
Post Interactions:
- Comment on posts if you are a moderator or member.
- Save posts for future reference.
-
User Reports:
- Report other users. As a moderator, you have the option to ignore the report, block the user, or delete the post.
-
Statistics:
- View various statistics related to the subthreadit and user activity.
-
Dependencies:
- Some libraries may need to be installed, such as
bcryptandjsonwebtoken.
- Some libraries may need to be installed, such as
Ensure Docker is installed on your system.
-
Build the Docker images:
sudo docker-compose build
-
Start the application:
sudo docker-compose up
-
The web app should now be running on
localhost:3000.
-
Navigate to the frontend directory:
cd frontend -
Install the required packages:
npm install
-
Start the frontend server:
npm start
-
Navigate to the backend directory:
cd backend -
Install the required packages:
npm install
-
Start the backend server:
nodemon server.js
- If
nodemonis not installed, you can start the server with:
node server.js
- If
If you'd like to contribute to ThreadIt, please fork the repository and use a feature branch. Pull requests are warmly welcome.
