FuturChat is a real-time chat application built using the MERN stack (MongoDB, Express, React, and Node.js). It allows users to register, log in, and engage in real-time conversations with other users.
- User authentication (registration and login)
- Real-time messaging
- Online presence indicators
- Green dot on user profile for online users
- Grey dot on user profile for offline users
- Chat history on left hand side section
- User search functionality on top right corner
- Search the username of user and send a message to the corresponding user for initiating conversation
- Unread message indicators in red bubbles in chat history
- Message status indicators (if message is seen by receiver then green tick will appear on message/otherwise single tick)
- Responsive design
- Node.js (v14 or later)
- npm (v6 or later)
- MongoDB
-
Clone the repository:
git clone https://github.com/ak652231/Chat.git -
Navigate to the project directory:
cd Chat -
Install dependencies for both client and server:
cd client npm install cd ../server npm install
-
Start the server:
cd server npm start -
In a new terminal, start the client:
cd client npm start -
The application should now be running on
http://localhost:3000
- Open your browser and navigate to
http://localhost:3000 - Register a new account or log in if you already have one
- Start chatting with other users in real-time
-
User Authentication:
- JWT-based authentication
- Secure password hashing
- User registration and login
-
Chat Functionality:
- Real-time messaging using Socket.io
- Chat history stored in MongoDB
-
User Interface:
- React-based frontend
- List of online users
- Simple chat UI with input field and message display area
-
Online Presence Indicator:
- Real-time updates of user online/offline status
-
Basic UI Features:
- Auto-scrolling chat window
- Message timestamps
- Minimalist design
- Message read receipts
- Frontend: React, Socket.io-client
- Backend: Node.js, Express, Socket.io
- Database: MongoDB
- Authentication: JWT (JSON Web Tokens)
You can access the hosted version of the application at: https://symphonious-taffy-107840.netlify.app/
Due to time constraints, some bonus features like typing indicators and media message support were not implemented in this version of the application.