WhatsApp clone build using MERN stack
tomper-chat.onrender.com (cloud-based)
tc.varuntiwari.com (self-hosted)
This is the frontend + backend of TomperChat build with MERN stack and hosted with Render
TomperChat is a clone of WhatsApp. Its build using MERN stack and uses socket.io for realtime messaging, online statuses, typing indicators, notifications etc.
- User authentication.
- Search for users to chat with.
- Create a group-chat.
- Only group-chat admin can edit the group chat details like name or add/remove users.
- Uninterested users can leave the group-chat.
- Chat in realtime with socket.io.
- User's realtime online/offline status in private chat.
- Users realtime typing indicator in both private and group chats.
- Realtime chat notifications for both private and group chat.
- Responsive for all screen sizes.
- And most importantly π Feels just like whatsapp-web (or Desktop app).
- Users can delete messages.
- Group admins can delete group-chat.
-
Clone the repo to your local machine.
-
Install the required dependency for server using :
npm install
-
Install the required dependency for client using :
cd client npm install
-
Create a .env file inside the root folder and provide the following environment variables:
PORT=5000 DB_URI=<mongodb_uri> JWT_SECRET=<your_jwt_secret> JWT_EXPIRE=5d COOKIE_EXPIRE=5 NODE_ENV=development CLOUDINARY_CLOUD_NAME=<your_cloudinary_cloudname> CLOUDINARY_API_KEY=<your_cloudinary_api_key> CLOUDINARY_API_SECRET=<your_cloudinary_api_secret> FRONTEND_URL=http://localhost:3000
-
Create a .env file inside the client folder and provide the following environment variables:
REACT_APP_PROJECT_URL=http://localhost:5000
-
Start the express server using :
npm start
-
Start the react development server using:
cd client npm start
-
Create a production build react app using the command :
cd client npm run build
-
Change the value of following environment variables:
NODE_ENV=production
(If you liked the project, give it star π)