The Real-Time Peer-to-Peer Messaging Application is a full-stack web application built using React.js for the frontend and Node.js with Express.js for the backend. The app enables users to send and receive messages in real time, manage message history, view user statuses, and more. It offers essential messaging features like message delivery updates, deletion, and status tracking, while providing a seamless user experience optimized for performance and responsiveness.
- Instant Communication: Send and receive messages in real-time with no delays using Socket.IO.
- Message Delivery and Status Updates: Track when messages are delivered, seen, and whether they have been read or not.
- Message Deletion and Updates: Edit or delete messages even after they’ve been sent, offering full control over the conversation.
- Online/Offline Indicator: A green dot indicates when a user is online and available to chat.
- Message Unseen Status: Unread messages are highlighted, and the number of unread messages is shown to ensure you never miss important messages.
- Track Messages: View your entire conversation history with timestamps for each message.
- Timestamp for Messages: Know the exact time when each message was delivered and seen.
- Search Conversations and Users: Easily search past conversations and find new users to connect with.
- Sign Up: Users can create an account by providing a unique username, email and password.
- Login: Secure login functionality with JWT (JSON Web Token) to ensure that only authenticated users can access their messages.
- JWT Authentication: The application uses JWT to handle secure user sessions.
- Displays a list of recent conversations and messages.
- Shows active users and online status.
- Highlights unread messages and displays message timestamps for easy reference.
- Send and Receive Messages: Real-time messaging between users using Socket.IO for instant communication.
- Message Deletion/Update: Users can edit or delete their messages after sending them.
- Message Seen/Unseen Status: Each message shows whether it has been seen by the recipient.
- Online Status Indicator: A green dot on the profile to indicate when the user is online and available for chat.
- Search Users: Easily find other users to start new conversations.
- Frontend: Built using React.js with Redux for state management, leveraging reusable components and styled with Tailwind CSS.
- Backend: Developed using Node.js with the Express.js framework to handle server-side logic and API routes.
- Real-Time Communication: Socket.IO is used for enabling real-time, bidirectional communication.
- Database: MongoDB is used for storing messages, user data, and other chat-related information.
- Authentication: JWT (JSON Web Token) is used for user authentication to ensure secure login and message access.
- The application is managed using Git for source code version control, enabling collaboration and tracking of changes.
Ensure that you have the following tools installed on your local machine:
-
Clone the Repository:
git clone https://github.com/JineshPrajapat/Chat-Application.git cd Chat-Application
-
Install Dependencies:
cd Frontend npm install cd ../Server npm install
-
Configure Environment Variables:
# Server .env MONGODB_URI=<your_mongodb_uri> JWT_SECRET=<your_jwt_secret> # Frontend .env REACT_APP_BASE_URL=<frontend_url> REACT_APP_CHAT_URL=<server_url>
-
Run the Application::
# Start the server cd Server npm run dev # Start the frontend cd Frontend npm start
This project is licensed under the MIT License. You are free to use, modify, and distribute this software in accordance with the license terms.
For any questions, suggestions, or issues, feel free to reach out to the project maintainer at prajapatjinesh585@gmail.com.