Skip to content

resham57/Real-Time-Messaging-System

Repository files navigation

Real-Time Messaging System

A real-time chat application built with Node.js, Express, Socket.IO, and RavenDB.

Features

  • User Authentication: Register and login with email/password
  • Guest Access: Join public rooms as a guest with a username
  • Public & Private Rooms: Create public or private chat rooms
  • Real-time Messaging: Send and receive messages instantly
  • Media Support: Share images, videos, audio, and documents
  • Message Search: Search through chat history
  • Room Management: Create, edit, delete, and filter rooms
  • QR Code Sharing: Share room links via QR code

Tech Stack

  • Backend: Node.js, Express.js
  • Real-time: Socket.IO
  • Database: RavenDB
  • Frontend: EJS, Bootstrap 5, jQuery
  • Session: express-session
  • File Upload: Multer

Installation

  1. Clone the repository

    git clone https://github.com/resham57/Real-Time-Messaging-System.git
    cd Real-Time-Messaging-System
  2. Install dependencies

    npm install
  3. Configure environment

    cp .env.example .env

    Update the .env file with your RavenDB connection details.

  4. Start the application

    # Development mode
    npm run dev
    
    # Production mode
    npm start
  5. Access the application

    http://localhost:3000
    

Environment Variables

  • APP_PORT - Server port (default: 3000)
  • APP_SECRET - Session secret key
  • RAVENDB_URL - RavenDB server URL
  • RAVENDB_DATABASE - RavenDB database name
  • MESSAGE_LIMIT - Rate limit for messages per minute (default: 20)
  • MEDIA_LIMIT - Rate limit for media uploads per minute (default: 5)

Usage

For Users

  • Register an account or login
  • Create up to 5 chat rooms (public or private)
  • Invite others to private rooms via email
  • Search and filter your rooms
  • Share room links via QR code

For Guests

  • Join public rooms without registration
  • Choose a unique username
  • Send text messages and media files

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published