Threads Clone is a full-stack social networking platform that emulates the core functionalities of Threads. This project includes essential features such as user authentication, post creation, editing, deletion, liking, and commenting. Real-time notifications are implemented using Socket.io, and the interface is built with Chakra UI for a responsive design. Developed using the MERN stack and JWT for authentication, this project serves as an excellent resource for learning full-stack development and real-time communication in a social media context.
- User Authentication (Sign Up, Login, Logout)
- Create, Edit, and Delete Posts
- Like and Comment on Posts
- Real-time Notifications using Socket.io
- Responsive Design with Chakra UI
- Frontend: React, Chakra UI
- Backend: Node.js, Express
- Database: MongoDB
- Real-time Communication: Socket.io
- Authentication: JWT (JSON Web Tokens)
- Node.js and npm installed
- MongoDB installed and running
Before running the application, ensure you have a .env file in the root directory of the project with the following variables configured:
PORT=5000 # Replace with your preferred port number
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secretTo build the Threads Clone application:
npm run buildThis command will build the frontend of the application for production use.
To start the Threads Clone application:
npm startThis command will start the backend server and serve the built frontend. Open your browser and go to http://localhost:5000 to access the application.
Make sure to follow the specific setup instructions for the frontend and backend as outlined in their respective README.md files. This section focuses solely on configuring environment variables, building the application, and starting the server. Adjust the port number (PORT=5000) and other variables according to your setup preferences and credentials.
Contributions are welcome! Follow these steps to contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch. - Make your changes and commit them:
git commit -m 'Add new feature'. - Push to the branch:
git push origin feature-branch. - Open a pull request.
Username: inumaki
Password: toge
--
Note: This project was developed by following along with @burakorkmez. Special thanks to the creator for providing such an informative resource.