This project is a clone of Instagram Threads with added chatting functionality. It is built using the MERN (MongoDB, Express.js, React.js, Node.js) stack. The application allows users to create threads, post updates, follow/unfollow users and chat with friends in real-time.
- User Authentication: Users can sign up, log in, and log out securely.
- Thread Creation: Users can create threads to group their friends and post replies within those threads.
- Real-time Chatting: Users can engage in real-time chat conversations within threads.
- Image Sharing: Users can post images in threads.
- Follow Users: Users can follow/unfollow any user.
- Responsive Design: The application is designed to be responsive and work seamlessly across various devices.
- MongoDB: Database to store user data, threads, and messages.
- Express.js: Backend framework for handling server-side logic and routing.
- React.js: Frontend library for building the user interface.
- Node.js: JavaScript runtime environment for server-side scripting.
- Socket.io: Library for enabling real-time, bidirectional communication between web clients and servers.
- Node.js and npm installed on your machine.
- MongoDB installed locally or accessible remotely.
-
Clone the repository:
git clone https://github.com/yourusername/instagram-threads-clone.git
-
Navigate to the project directory:
cd threads
-
Install dependencies:
cd backend npm install cd .. cd frontend npm install
-
Set up environment variables:
Create a
.env
file in the root backend directory of the project and add the following variables:MONGODB_URI=your_mongodb_uri PORT=8080 CLOUDINARY_CLOUD_NAME=your_cloudinary_credentials CLOUDINARY_API_KEY=your_cloudinary_credentials CLOUDINARY_API_SECRET=your_cloudinary_credentials
-
Start the backend server:
cd backend npm run dev
-
Start the frontend:
cd frontend npm run dev
-
Navigate to
http://localhost:3000
in your browser to use the application.
Contributions are welcome! If you want to contribute to this project, please fork the repository and submit a pull request with your changes.