Welcome to แOแแEแT ๐ชข - A real-time messaging application designed for seamless and instant communication. Built with the MERN stack (MongoDB, Express, React, Node.js) and Socket.IO for real-time chat functionality, แOแแEแT ๐ชข ensures your conversations are swift and secure.
Live Demo: แOแแEแT ๐ชข
- ๐ฌ Real-time Messaging: Chat instantly with your contacts, with real-time updates.
- ๐ User Authentication: Secure sign-up and login using JWT-based authentication.
- ๐ Add Contacts: Effortlessly add contacts to your chat list.
- ๐ฑ Responsive Design: Optimized for both desktop and mobile devices.
- ๐ Search Functionality: Quickly find and start conversations with your contacts.
- ๐ Sidebar Navigation: Manage your conversations and contacts from the intuitive sidebar.
- ๐ Notifications: Receive notifications for new messages.
Get a local copy of CONNECT up and running with these simple steps:
-
Clone the repository:
git clone https://github.com/Muntajir11/RealTimeChat.git cd CONNECT
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.env
file in the root directory and add the following:PORT=5000 MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret
-
Start the development server:
npm run server # In the Root folder npm run dev # In the Frontend folder
-
Access the application: Open your browser and navigate to:
http://localhost:3000
You should now see the แOแแEแT ๐ชข application running locally.
CONNECT
โโโ ๐๏ธ Backend
โ โโโ ๐ controllers # Handles the logic for various routes
โ โโโ ๐ db # Database configuration and models
โ โโโ ๐ middleware # Custom middleware functions
โ โโโ ๐ models # Mongoose schemas and models
โ โโโ ๐ routes # API route definitions
โ โโโ ๐ socket # Socket.IO configuration and events
โ โโโ ๐ utils # Utility functions
โ โโโ ๐ server.js # Entry point for the Node.js server
โ
โโโ ๐๏ธ Frontend
โ โโโ ๐ public # Static assets (images, icons, etc.)
โ โโโ ๐ src # Main source directory for the React app
โ โ โโโ ๐ผ๏ธ assets # Images, fonts, and other assets
โ โ โโโ ๐งฉ components # Reusable React components
โ โ โโโ ๐ context # React Context API for state management
โ โ โโโ โ๏ธ hooks # Custom hooks for React
โ โ โโโ ๐ pages # Page components for routing
โ โ โโโ ๐ ๏ธ utils # Utility functions for frontend
โ โ โโโ ๐ฆ zustand # Zustand store for global state management
โ โโโ ๐จ App.css # Global styles for the React app
โ โโโ โ๏ธ App.jsx # Main application component
โ โโโ ๐จ index.css # Global CSS file
โ โโโ โ๏ธ main.jsx # Entry point for the React application
โ
โโโ ๐ .eslintrc.cjs # ESLint configuration
โโโ ๐ .gitignore # Git ignore file
โโโ ๐ index.html # Main HTML file for the React app
โโโ ๐ package.json # Dependencies and scripts for the frontend
โโโ ๐ package-lock.json # Locked versions of dependencies
โโโ ๐ README.md # Project documentation
- Backend: ๐๏ธ Contains all server-side code including controllers, database configurations, middleware, models, routes, socket configuration, and utilities.
- Frontend: ๐๏ธ Contains the front-end code organized into assets, components, context, hooks, pages, utilities, and Zustand store.
- Root Files:
.eslintrc.cjs
: ๐ ESLint configuration for consistent code quality..gitignore
: ๐ Specifies files and directories to be ignored by Git.index.html
: ๐ The HTML template for the React app.package.json
&package-lock.json
: ๐ฆ Manage project dependencies and scripts.
Once everything is set up:
- Sign up: Create a new account.
- Login: Use your credentials to log in.
- Add Contacts: Search for users and add them to your contact list.
- Start Chatting: Select a contact and begin a conversation.
- Frontend: React, Zustand, Tailwind CSS
- Backend: Node.js, Express.js, MongoDB, Mongoose
- Real-time Communication: Socket.IO
- Authentication: JWT, bcrypt
- Deployment: Render
Contributions are more than welcome! If you have ideas, improvements, or new features you'd like to add:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/YourFeature
). - Open a Pull Request.
Please ensure that your code is well-documented and tested.
This project is licensed under the MIT License - see the LICENSE file for details.
- Muntajir: [email protected]
- GitHub: Muntajir11
- LinkedIn: Muntajir
- Tushar: [email protected]
- GitHub: Tushar-Manna
- LinkedIn: tusharmanna
Thank you for using แOแแEแT ๐ชข! ๐