- Real-Time Communication: Instant messaging with no delays, powered by Socket.IO.
- User Authentication: Secure login and registration using JWT (JSON Web Tokens).
- Responsive Design: A mobile-friendly interface that adapts to any screen size.
- Group Chats and Direct Messages: Communicate privately or in groups with ease.
- Message Notifications: Receive real-time notifications for new messages.
- User Status Indicators: See who is typing in real-time.
- Chat History: Persistent message storage, allowing users to see past conversations.
- MongoDB: Database to store user data and messages.
- Express.js: Backend framework to handle API requests and WebSocket connections.
- React: Frontend library for building the user interface.
- Node.js: Server environment to run the backend application.
- Socket.IO: Library to enable real-time, bidirectional communication between clients and servers.
- JWT (JSON Web Tokens): For secure user authentication.
- Chakra UI: For styling the user interface with a modern, responsive design.
To run this project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/chat-application.git cd chat-application
-
Install dependencies for both the client and server:
cd client npm install cd ../server npm install
-
Create a
.env
file in theserver
directory and add the following variables:MONGO_URI=your_mongo_database_uri JWT_SECRET=your_jwt_secret
-
Run the server:
npm run start
-
Open your browser and navigate to
http://localhost:3000
to see the application in action.