Skip to content

Muskan23129/Sandesh

Repository files navigation

Sandesh - Real-Time Chat Application

Sandesh is a full-stack real-time chat application that enables users to communicate instantly through personal and group messaging. The application supports image sharing, authentication, online presence tracking, and dynamic message rendering using WebSockets.


Overview

Sandesh is designed to simulate a modern messaging platform where users can interact in real time. It implements secure authentication, file uploads, live user status tracking, and efficient message handling using Socket.io.


Features

Authentication & Security

  • JWT-based authentication
  • Secure login and registration system
  • Protected routes using middleware

Messaging System

  • One-to-one personal chat
  • Group chat functionality
  • Real-time messaging using Socket.io
  • Message timestamps
  • Last message preview displayed in sidebar

User Presence

  • Online status indicator
  • Last seen tracking system

Media & Uploads

  • Profile picture upload using Multer
  • Group image upload
  • Image sharing inside chat

Additional Functionalities

  • Contact search feature
  • Dynamic sidebar with contact profile picture
  • Last message display for each contact
  • Live UI updates without page refresh

Tech Stack

Backend

  • Node.js
  • Express.js
  • MongoDB

Frontend

  • EJS
  • HTML
  • CSS
  • JavaScript

Real-Time Communication

  • Socket.io

Authentication & File Handling

  • JWT (JSON Web Token)
  • Multer

Project Architecture

  • MVC-based structure
  • RESTful APIs for user and chat management
  • WebSocket integration for real-time communication
  • Middleware-based authentication system
  • Modular routing and organized folder structure

Installation and Setup

  1. Clone the repository

git clone https://github.com/yourusername/sandesh.git

  1. Navigate to the project directory

cd sandesh

  1. Install dependencies

npm install

  1. Create a .env file in the root directory and add the following:

PORT=your_port MONGODB_URL=your_mongodb_connection_string JWT_SECRET=your_secret_key

  1. Start the server

npm start


Learning Outcomes

This project demonstrates:

  • Real-time application development using WebSockets
  • Secure authentication using JWT
  • File handling and uploads with Multer
  • Online presence and last seen logic implementation
  • Dynamic rendering using EJS
  • Search functionality implementation
  • Scalable backend structure design

Future Improvements

  • Message editing and deletion
  • Typing indicator
  • Read receipts
  • Cloud storage integration (AWS S3 or Cloudinary)
  • Deployment using Docker
  • Responsive UI enhancements

Developer

Muskan Verma
Master of Computer Applications
Backend and Real-Time Application Developer

About

Sandesh is a real-time chat application built with Node.js, Express, Socket.io, and MongoDB that supports personal and group messaging, JWT authentication, image sharing, profile uploads with Multer, and online/last seen status tracking.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors