Skip to content

Real-time chat app using MERN stack, Socket.IO, Zustand, and a modern responsive UI.

Notifications You must be signed in to change notification settings

AvatarN03/ChatRom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💬 ChatRom – MERN Real-Time Chat App

A full-featured real-time chat application built with the MERN stack (MongoDB, Express, React, Node.js), powered by Socket.IO for instant messaging and Zustand for efficient global state management.


🚀 Features

  • User Authentication & Registration
    Secure sign-up and login with JWT & bcryptjs.
  • Real-Time 1:1 Messaging
    Instant WebSocket messaging with Socket.IO.
  • Global State Management
    Lightweight state handling using Zustand.
  • RESTful API
    Robust backend with Express & MongoDB (Mongoose).
  • Online/Offline User Indicators
    See who’s available in real-time.
  • Live Typing Status
    Know when someone is typing.
  • Responsive UI
    Modern, mobile-friendly interface with React & Tailwind CSS.
  • Timestamps on Messages
    Each message displays when it was sent.
  • Deployment Ready
    Easily deployable to cloud platforms.

📚 Table of Contents


📸 Screenshots

Server Directory Structure
Server tree


Client Directory Structure
Client tree


🏗️ Tech Stack

Frontend

  • React.js (Vite)
  • Zustand
  • Axios
  • Tailwind CSS

Backend

  • Node.js
  • Express.js
  • Socket.IO
  • MongoDB (Mongoose)
  • JWT
  • bcryptjs

🧰 Installation

  1. Clone the repository

    git clone https://github.com/AvatarN03/ChatRom.git
    
  2. Install dependencies

    # Client
    cd client
    npm install
    
    # Server
    cd ../server
    npm install
    
  3. Configure Environment Variables

    • Create a .env file in the server/ directory.
    • Use the template in server/sample-env.txt for required variables.
  4. Run the application

    # Start backend
    cd server
    npm run dev
    
    # In a new terminal, start frontend
    cd ../client
    npm run dev
    

💡 Usage

  • Register or log in to start chatting.
  • View online users and their statuses.
  • Send and receive real-time messages and typing indicators.
  • Enjoy a seamless chat experience across devices.

🙌 Credits


📄 License

This project is licensed under the MIT License.


✍️ Author

Prashanth Naidu
LinkedIn


Last updated: May 23, 2025

About

Real-time chat app using MERN stack, Socket.IO, Zustand, and a modern responsive UI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages