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.