A full-featured real-time chat application built with the MERN stack (MongoDB, Express, React, Node.js) and Socket.IO for instant communication.
π https://master.d1mxcnht7o30t1.amplifyapp.com/
- β‘ Real-time messaging using Socket.IO
- π User authentication with JWT & Passport.js
- π Social login (Google, Facebook, GitHub, Twitter)
- π§βπ¨ Customizable user profiles & avatars
- π¬ One-on-one and group chats
- πΆ Online/offline status
- βοΈ Typing indicators
- π¬ Message status (sent, delivered, read)
- ποΈβπ¨οΈ Read receipts
- π User search
- π± Fully responsive design
- π§ Password reset via email
| Tech | Description |
|---|---|
| JavaScript runtime | |
| Web framework | |
| Database | |
| MongoDB object modeling | |
| Real-time communication | |
| Authentication | |
| Authentication strategies | |
| Password hashing | |
| Email sending | |
| File uploads |
| Tech | Description |
|---|---|
| UI library | |
| Routing | |
| State management | |
| HTTP client | |
| Real-time client | |
| Animations | |
| UI icons | |
| Styling |
Ensure the following are installed on your system:
- Node.js (v14.x or later)
- npm (v6.x or later)
- MongoDB (Local or Atlas)
- Git
git clone https://github.com/Saurabhtbj1201/chat-app.git
cd chat-app# Navigate to backend folder
cd backend
# Install dependencies
npm install
# Create .env file
cp .env.example .envEdit the .env file with your configuration:
MONGODB_URI=mongodb://<username>:<password>@cluster0.mongodb.net/chat-app?retryWrites=true&w=majority
JWT_SECRET=your_jwt_secret
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
FACEBOOK_APP_ID=your_facebook_app_id
FACEBOOK_APP_SECRET=your_facebook_app_secret
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
TWITTER_API_KEY=your_twitter_api_key
TWITTER_API_SECRET=your_twitter_api_secret
SENDGRID_API_KEY=your_sendgrid_api_key
# Navigate to frontend folder
cd frontend
# Install dependencies
npm install
# Create .env file
cp .env.example .envEdit the .env file with your configuration:
REACT_APP_API_URL=http://localhost:5000/api
REACT_APP_SOCKET_URL=http://localhost:5000
# Start the backend server
cd backend
npm run dev
# In a new terminal, start the frontend server
cd frontend
npm start- Register a new account or log in with an existing account.
- Complete your profile and upload a profile picture.
- Add friends or search for users to chat with.
- Start chatting in real-time!
- Fork the repository
- Create a new branch (
git checkout -b feature/YourFeature) - Make your changes
- Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/YourFeature) - Open a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ by Saurabh Kumar