An open API service indexing awesome lists of open source software.

https://github.com/dattatrayasamal/chatapp

A real-time chat application built with the MERN stack, featuring user authentication and one-to-one messaging.
https://github.com/dattatrayasamal/chatapp

expressjs javascript mongodb nodejs reactjs socket-io

Last synced: 3 months ago
JSON representation

A real-time chat application built with the MERN stack, featuring user authentication and one-to-one messaging.

Awesome Lists containing this project

README

          

# Chat Application - MERN Stack & Chakra UI

✨ Features




  • User Authentication: Secure login and signup with JWT authentication.


  • Form Validation & Error Handling: Ensures smooth user authentication experience.


  • One-to-One Chat: Real-time messaging powered by Socket.IO.


  • Live Updates: Dynamic UI changes based on user interactions.


  • Responsive UI: Built with Chakra UI for a clean and modern look.

🛠️ Tech Stack



  • Frontend: React.js, Chakra UI, Axios

  • Backend: Node.js, Express.js, MongoDB, JWT Authentication

  • Real-time Communication: Socket.IO

  • Database: MongoDB

  • State Management: React Context API

  • API Testing: Postman

⚡ Installation & Setup


1️⃣ Clone the Repository


git clone https://github.com/yourusername/chat-application.git

2️⃣ Backend Setup


cd backend

Configure Environment Variables


PORT=5000

Run the Server


npm start

3️⃣ Frontend Setup


cd frontend

Start the React App


npm start

The frontend will be running at http://localhost:3000.

🔗 API Endpoints


Method
Endpoint
Description


POST
/api/auth/register
Register a new user


POST
/api/auth/login
Authenticate user


GET
/api/users
Fetch all users


GET
/api/messages/:id
Fetch chat messages


POST
/api/messages/send
Send a new message

🚀 Future Enhancements



  • Group chat functionality.

  • Read receipts and typing indicators.

  • Message search and filtering.

  • User profile management.

💡 Contributing


Contributions are welcome! Feel free to fork the repo and submit a pull request.