Quorent-Chat-Messaging-App

Quorent Logo

Quorent

Scalable Full-Stack Real-Time Messaging Application

React 19 Vite Node.js Express Socket.IO Redis MySQL MongoDB


Quorent is a high-performance, real-time messaging platform built for scale. It features a hybrid polyglot persistence architecture (MySQL for relational identity, auth, and sessions; MongoDB for high-throughput chats, messages, and read receipts), decouples the REST API from dedicated WebSocket instances scaled via Redis pub/sub, and integrates AI assistance, web push notifications, and OAuth.


✨ Key Features


🏗️ Architecture & Services

Quorent System Architecture

Service Port Technology Purpose
Frontend Client 3000 React 19, Vite Responsive web application UI
REST API Server 3001 Express, Prisma, Mongoose Auth, users, chats, messages, AI, uploads
WebSocket Server 3002 Socket.IO, Redis Adapter Real-time messaging, presence, receipts
Redis 6379 Redis 6.2 Pub/Sub broker, presence, & message cache
MySQL Database 3306 MySQL 8.0 (Prisma) Users, credentials, sessions, OTPs, blocks
MongoDB Database 27017 MongoDB 7.0 (Mongoose) Chats, messages, attachments, receipts

🚀 Quick Start

Option 1: Docker Compose

# 1. Clone repository and setup environment
git clone https://github.com/rushikbuikds/Quorent-Chat-Messaging-App.git
cd Quorent-Chat-Messaging-App
cp server/.env.example server/.env
cp client/.env.example client/.env

# 2. Spin up all services
docker compose up -d

Access the client at http://localhost:3000.

Option 2: Local Development

Prerequisites: Node.js 18+, MySQL 8.0, MongoDB 7.0+, and Redis 6.2+.

# 1. Install dependencies
cd server && npm install
cd ../client && npm install
cd ..

# 2. Configure environment
cp server/.env.example server/.env
cp client/.env.example client/.env

# 3. Synchronize database schemas
cd server
npm run db:generate
npm run db:push

# 4. Start backend (runs REST API on :3001 and WS on :3002 concurrently)
npm run dev

# 5. Start frontend (in a separate terminal)
cd ../client
npm start

⚙️ Key Scripts

Command Working Directory Description
npm run dev /server Runs API (:3001) and WS (:3002) concurrently
npm run dev:api /server Runs REST API server only
npm run dev:ws /server Runs WebSocket server only
npm run db:generate /server Generates Prisma Client types
npm run db:push /server Synchronizes MySQL schema with Prisma
npm start /client Starts Vite development server (:3000)
npm run build /client Builds frontend production bundle

📄 License

This project is licensed under the ISC License.