Skip to content

A full-stack real-time chat application built with the MERN stack, Socket.io, and TailwindCSS. It features secure JWT authentication, live messaging, online user status, and global state management with Zustand—all wrapped in a responsive and modern UI.

Notifications You must be signed in to change notification settings

Milan323-debug/fullstack_Chat_App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NimbusTalk - Real-Time Chat Application

NimbusTalk is a full-stack real-time chat application built with React (Vite), Node.js, Express, MongoDB, and Socket.io. It supports user authentication, real-time messaging, image uploads, and online user tracking.


Features

  • User Authentication: Sign up, log in, log out, and update profile.
  • Real-Time Messaging: Instant chat using Socket.io.
  • Online Users: See who is online in real-time.
  • Image Uploads: Upload and share images via Cloudinary.
  • Responsive UI: Built with React and Vite for fast, modern interfaces.
  • Notifications: Toast notifications for user feedback.

Technologies Used

  • Frontend: React, Vite, Zustand, Axios, React Hot Toast, Socket.io-client
  • Backend: Node.js, Express, MongoDB, Mongoose, Socket.io, Cloudinary
  • Other: Cloudinary for image storage, JWT for authentication

Project Structure

Chat-App/
│
├── backend/
│   ├── .env
│   ├── src/
│   │   ├── controllers/
│   │   ├── lib/
│   │   ├── middleware/
│   │   ├── models/
│   │   ├── routes/
│   │   └── index.js
│   └── package.json
│
├── frontend/
│   ├── public/
│   ├── src/
│   │   ├── components/
│   │   ├── lib/
│   │   ├── pages/
│   │   ├── store/
│   │   ├── App.jsx
│   │   └── main.jsx
│   ├── package.json
│   └── README.md
│
└── README.md

Getting Started

Prerequisites

  • Node.js (v16+ recommended)
  • npm or yarn
  • MongoDB Atlas account (or local MongoDB)
  • Cloudinary account

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/nimbustalk.git
    cd nimbustalk
  2. Install dependencies:

    npm install --prefix backend
    npm install --prefix frontend
  3. Configure environment variables:

    Create a .env file in the backend directory:

    MONGODB_URI=your_mongodb_uri
    PORT=5001
    JWT_SECRET=your_jwt_secret
    CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
    CLOUDINARY_API_KEY=your_cloudinary_api_key
    CLOUDINARY_API_SECRET=your_cloudinary_api_secret
    NODE_ENV=development

Running the Application

  1. Start the backend:

    npm start --prefix backend
  2. Start the frontend:

    npm run dev --prefix frontend
  3. Open your browser and go to http://localhost:5173 (or the port Vite shows).


Usage

  • Sign Up: Create a new account.
  • Log In: Access your chat dashboard.
  • Chat: Send messages in real-time.
  • Profile: Update your profile and upload an avatar.
  • Logout: Securely log out.

Environment Variables

Set these in backend/.env:

  • MONGODB_URI - MongoDB connection string
  • PORT - Backend server port
  • JWT_SECRET - Secret for JWT authentication
  • CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY, CLOUDINARY_API_SECRET - Cloudinary credentials
  • NODE_ENV - development or production

Contributing

Pull requests are welcome! For major changes, please open an issue first.


License

This project is licensed under the MIT License.

About

A full-stack real-time chat application built with the MERN stack, Socket.io, and TailwindCSS. It features secure JWT authentication, live messaging, online user status, and global state management with Zustand—all wrapped in a responsive and modern UI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages