A scalable backend platform that connects customers with support experts through secure, real-time messaging.
The platform manages the complete support lifecycle—from submitting a support request to automatically matching customers with experts, creating secure chat sessions, and storing every conversation for future reference.
Designed with scalability, security, and maintainability in mind, this project demonstrates production-ready backend architecture using modern Node.js technologies.
🚀 Key Features
🔐 JWT Authentication & Authorization
💬 Real-time messaging with Socket.io
👨💼 Expert and Customer account management
📌 Support request lifecycle management
🤝 Automatic customer-to-expert matching
🟢 Presence detection (online/offline users)
💾 Persistent chat history with PostgreSQL
✅ Input validation using Zod
🧪 Unit and integration tests
📊 Modular service-based architecture
🛠 Tech Stack
Backend
Node.js
Express.js
TypeScript
Database
PostgreSQL
Prisma ORM
Real-Time Communication
Socket.io
Authentication
JWT
Bcrypt
Validation
Zod
Testing
Jest
🏗 Architecture
The application follows a modular architecture where each business domain is isolated into its own module.
Modules include:
Authentication
User Profiles
Experts
Support Requests
Matching Engine
Real-time Messaging
Reviews
Administration
This structure improves maintainability, scalability, and code reusability as the application grows.
📌 Business Workflow
-
Customer creates a support request.
-
The request is marked as REQUESTED.
-
An expert is assigned.
-
The request becomes ACTIVE.
-
A secure Socket.io room is created.
-
Customer and expert communicate in real time.
-
Messages are stored permanently in PostgreSQL.
-
After completion, the customer can submit a review.
🔒 Security Features
JWT authentication
Protected Socket.io handshake
Authorization checks before joining chat rooms
Password hashing using Bcrypt
Input validation using Zod
Environment variable protection
🌟 Why I Built This
This project was built to simulate a production-ready customer support platform capable of handling secure real-time communication between customers and experts.
The goal was to demonstrate backend architecture, real-time communication, authentication, authorization, and scalable application design.
👨💻 Author
Temmy (Tembogs)
Full-Stack Software Engineer
GitHub: https://github.com/Tembogs
Default Credentials: Email: expert@marketplace.com Password: ExpertPassword123