Scalable Full-Stack Real-Time Messaging Application
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.
:3002) isolated from the REST API (:3001), horizontally scaled via Redis.
| 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 |
# 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.
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
| 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 |
This project is licensed under the ISC License.