Skip to content

Real time Communication Platform | Socket.io + Node.js | Persistent Chat History using MongoDB | Push Notification Support over HTTPS only

Notifications You must be signed in to change notification settings

sandip2224/Chat.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChatIO🚀

Website shields.io Maintenance

Built With

  • Frontend: EJS, Vanilla CSS, JavaScript
  • Backend: Node.js (Express.js)
  • Database: MongoDB Atlas
  • Containerization Framework: Docker

📈 UML Diagram

Unoptimized Architecture (old) Previous UML Architecture
Optimized Architecture (revamped) Revamped UML Diagram

🚩 How to install locally

Fork and clone this repository using

git clone https://github.com/sandip2224/ChatIO.git
cd ChatIO

Create a .env file inside the root directory and include the following:

# Database URI
MONGO_DEV_URI=<Unique MongoDB Dev Cluster URL>
MONGO_PROD_URI=<Unique MongoDB Prod Cluster URL>

# VAPID Keys
PUBLIC_KEY=<Public VAPID Key>
PRIVATE_KEY=<Private VAPID Key>

# Base URL
BASE_URL=<http://localhost:3000> || <>

Note: Get the following URL from MongoDB official website. You need to configure the username, password and dbname accordingly.

mongodb+srv://<username>:<password>@cluster0.x1ccn.mongodb.net/<dbname>?retryWrites=true&w=majority

Generate VAPID keys for push notification support using

npx web-push generate-vapid-keys

Set these VAPID keys inside the .env file (mandatory)

Start the application locally using

docker compose up

Test the API locally at localhost:PORT


✨ Project Maintained By-

About

Real time Communication Platform | Socket.io + Node.js | Persistent Chat History using MongoDB | Push Notification Support over HTTPS only

Topics

Resources

Stars

Watchers

Forks