Skip to content

yashrsb/messaging-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Messaging Application Backend

This project primarily focuses on the backend component of a messaging application developed using Node.js, Express.js, MongoDB, and Socket.IO. It contains necessary APIs and functionality to support real-time messaging between users, group chats, message encryption, user management.

Features

  • User Management:

    • User registration with username and password.
    • User login/authentication with JWT.
    • User profile management (update profile, profile picture).
  • Messaging:

    • Sending and receiving messages between users.
    • Real-time messaging using WebSockets with Socket.IO.
    • Support for text, images, videos, and attachments.
  • Group Chats:

    • Creating, joining, and leaving group chats.
    • Sending messages to group chats and receiving messages from other participants.
  • Message Encryption:

    • End-to-end encryption for messages using AES.
    • Encryption and decryption of messages to ensure privacy and security.

Project Structure

  • index.js: Entry point of the application.
  • routes/: Contains route definitions for different API endpoints.
  • controllers/: Contains controller functions for different API endpoints.
  • models/: Contains MongoDB schema definitions for user profiles, messages, and group chats.
  • middlewares/: Contains middleware functions, including authentication middleware.
  • config/: Contains configuration files, including JWT secret key and database connection settings.

Getting Started

  1. Clone the repository:

    git clone <repository_url>
  2. Install dependencies:

     npm install
  3. Set up environment variables:

     PORT=3000
     MONGODB_URI=<mongodb_url>
     JWT_SECRET_KEY=<jwt_token>
  4. Start the server:

    npm start
  5. Access the API at http://localhost:3000.

API Documentation

The API documentation is available in the docs/ directory. It includes details about each endpoint, its requests/responses, and postman collections.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published