A full-stack collaborative platform (Slack clone) built with modern microservices architecture, featuring real-time messaging, workspaces, channels, and more.
This is a production-ready collaborative platform featuring:
- β Microservices Architecture - Independent, scalable services
- β Real-time Communication - WebSockets for instant messaging
- β Workspace Management - Teams, channels, and permissions
- β Secure Authentication - JWT-based auth with bcrypt hashing
- β Type Safety - Full TypeScript implementation
- β Containerized - Docker Compose for easy deployment
βββββββββββββββ
β Frontend β
β (React) β
ββββββββ¬βββββββ
β
ββββββββΌβββββββββββ
β API Gateway β (Port 3000)
ββββββββββ¬βββββββββ
β
ββββββ΄βββββ¬βββββββββ¬βββββββββββ¬ββββββββββββ
β β β β β
βββββΌββββ ββββΌβββ βββββΌβββββ βββββΌβββββ βββββΌβββββ
β Auth β βChat β βWorkspaceβ β Media β β Notify β
β:3001 β β:3002β β :3003 β β :3004 β β :3005 β
βββββ¬ββββ ββββ¬βββ ββββββ¬βββββ ββββββ¬ββββ ββββββ¬ββββ
β β β β β
ββββββββββ΄ββββββββββ΄ββββββββββββ΄βββββββββββ
β
ββββββββββββββββΌβββββββββββββββ
β β β
ββββββΌβββββ βββββΌββββ βββββΌβββββ
βPostgreSQLβ βMongoDBβ β Redis β
β :5433 β β:27017 β β :6379 β
βββββββββββ βββββββββ ββββββββββ
Status: π’ Production Ready
Responsibilities:
- User registration and authentication
- JWT token generation and verification
- Password hashing with bcrypt
- Protected route middleware
Tech Stack:
- Node.js + Express + TypeScript
- PostgreSQL + Prisma ORM
- JWT + bcrypt + Zod validation
Endpoints:
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| POST | /auth/register |
Register new user | No |
| POST | /auth/login |
Login user | No |
| GET | /auth/me |
Get current user | Yes |
| GET | /health |
Health check | No |
Database Schema:
model User {
id String
email String @unique
username String @unique
passwordHash String
displayName String
role Role @default(USER)
// ... more fields
}Status: π‘ Under Development
Responsibilities:
- Workspace (team) management
- Channel creation and management
- Membership and permissions
- Workspace/channel settings
Planned Features:
- Create/update/delete workspaces
- Public/private channels
- User invitations
- Role-based permissions
Real-time messaging with WebSockets
File uploads and storage
Real-time notifications
Central routing and load balancing
| Technology | Purpose |
|---|---|
| Node.js + Express | Web framework |
| TypeScript | Type safety |
| Prisma | Database ORM |
| PostgreSQL | Primary database |
| MongoDB | Chat/messages storage |
| Redis | Caching & sessions |
| RabbitMQ | Message queue |
| JWT | Authentication |
| bcrypt | Password hashing |
| Zod | Input validation |
| Socket.io | Real-time communication |
- Docker + Docker Compose
- Microservices architecture
- RESTful APIs
- WebSocket connections
- Node.js 18+
- Docker & Docker Compose
- Git
- Clone the repository
git clone <your-repo-url>
cd CollabN-More- Start all services with Docker Compose
docker-compose up- Or run individual services locally:
Auth Service:
cd services/auth
npm install
npm run prisma:generate
npm run prisma:migrate
npm run devWorkspace Service:
cd services/workspace
npm install
npm run prisma:generate
npm run prisma:migrate
npm run devEach service needs a .env file. See .env.example in each service folder.
Register User
POST http://localhost:3001/auth/register
Content-Type: application/json
{
"email": "user@example.com",
"username": "johndoe",
"displayName": "John Doe",
"password": "Password123!",
"timezone": "UTC"
}Login
POST http://localhost:3001/auth/login
Content-Type: application/json
{
"email": "user@example.com",
"password": "Password123!"
}Get Current User
GET http://localhost:3001/auth/me
Authorization: Bearer <your-jwt-token>CollabN-More/
βββ services/
β βββ auth/ β
Complete
β βββ workspace/ π§ In Progress
β βββ chat/ π
Planned
β βββ media/ π
Planned
β βββ notification/ π
Planned
βββ api-gateway/ π
Planned
βββ frontend/ π
Planned
βββ docker-compose.yml
βββ README.md
- Project setup
- Auth Service (registration, login, JWT)
- Workspace Service (teams, channels, permissions)
- Chat Service (real-time messaging)
- Media Service (file uploads)
- Notification Service
- API Gateway
- Frontend (React)
- Deployment
Built as a portfolio project to demonstrate full-stack microservices architecture.
This project is for educational purposes.