SkillSync is a scalable microservices-based platform designed for collaboration, hackathons, and project management.
flowchart TD
Client["Client / Frontend (React)"] -->|HTTP Requests| Gateway["API Gateway :3000"]
subgraph Microservices
Auth["Auth Service :3001"]
User["User Service :3002"]
Project["Project Service :3003"]
Chat["Chat Service :3004"]
Hackathon["Hackathon Service :3005"]
Notification["Notification Service :3006"]
end
Gateway --> Auth
Gateway --> User
Gateway --> Project
Gateway --> Chat
Gateway --> Hackathon
Gateway --> Payments
Gateway --> Cources
User --> Notification
Project --> Notification
Hackathon --> Notification
Chat <-->|WebSocket| Client
subgraph Shared
Redis["Redis Cache"]
Utils["Shared Utils"]
end
Auth --> Redis
User --> Redis
Project --> Redis
Auth --> Utils
User --> Utils
Project --> Utils
subgraph Deployment
Docker["Docker"]
K8s["Kubernetes"]
end
Docker --> Auth
Docker --> User
Docker --> Project
Docker --> Chat
Docker --> Hackathon
Docker --> Notification
K8s --> Auth
K8s --> User
K8s --> Project
K8s --> Chat
K8s --> Hackathon
K8s --> Notification
skillsync/
│
├── api-gateway/
├── services/
│ ├── auth-service/
│ ├── user-service/
│ ├── project-service/
│ ├── hackathon-service/
│ ├── chat-service/
│ └── notification-service/
│
├── shared/
│ ├── config/
│ ├── middleware/
│ └── utils/
│
├── docker/
│ ├── docker-compose.yml
│ └── kubernetes/
│
├── docs/
└── frontend/
- API Gateway → Routes client requests to services
- Microservices → Domain-based independent services
- Shared → Common utilities and configs
- Docker/Kubernetes → Deployment and scaling
- Frontend → React application
api-gateway/
│
├── src/
│ ├── routes/
│ │ ├── auth.routes.js
│ │ ├── user.routes.js
│ │ ├── project.routes.js
│ │ └── hackathon.routes.js
│ │
│ ├── middleware/
│ │ ├── authMiddleware.js
│ │ └── rateLimiter.js
│ │
│ ├── services/
│ │ └── proxyService.js
│ │
│ ├── config/
│ │ └── gatewayConfig.js
│ │
│ └── server.js
│
└── package.json
auth-service/
│
├── src/
│ ├── controllers/
│ │ └── auth.controller.js
│ │
│ ├── routes/
│ │ └── auth.routes.js
│ │
│ ├── models/
│ │ └── user.model.js
│ │
│ ├── services/
│ │ └── auth.service.js
│ │
│ ├── middleware/
│ │ └── authValidation.js
│ │
│ ├── config/
│ │ └── db.js
│ │
│ └── server.js
│
└── package.json
user-service/
│
├── src/
│ ├── controllers/
│ │ └── user.controller.js
│ │
│ ├── routes/
│ │ └── user.routes.js
│ │
│ ├── models/
│ │ └── profile.model.js
│ │
│ ├── services/
│ │ └── user.service.js
│ │
│ ├── repository/
│ │ └── user.repository.js
│ │
│ ├── events/
│ │ └── user.events.js
│ │
│ └── server.js
project-service/
│
├── src/
│ ├── controllers/
│ │ └── project.controller.js
│ │
│ ├── routes/
│ │ └── project.routes.js
│ │
│ ├── models/
│ │ ├── project.model.js
│ │ └── task.model.js
│ │
│ ├── services/
│ │ └── project.service.js
│ │
│ ├── repository/
│ │ └── project.repository.js
│ │
│ └── server.js
chat-service/
│
├── src/
│ ├── sockets/
│ │ └── chat.socket.js
│ │
│ ├── controllers/
│ │ └── chat.controller.js
│ │
│ ├── models/
│ │ └── message.model.js
│ │
│ ├── services/
│ │ └── chat.service.js
│ │
│ └── server.js
notification-service/
│
├── src/
│ ├── consumers/
│ │ └── notification.consumer.js
│ │
│ ├── producers/
│ │ └── notification.producer.js
│ │
│ ├── services/
│ │ └── email.service.js
│ │
│ └── server.js
shared/
│
├── config/
│ ├── redis.js
│ └── env.js
│
├── middleware/
│ └── logger.js
│
└── utils/
├── errorHandler.js
└── responseFormatter.js
docker/
│
├── docker-compose.yml
│
└── kubernetes/
├── auth-deployment.yaml
├── user-deployment.yaml
└── project-deployment.yaml
frontend/
│
├── src/
│ ├── pages/
│ ├── components/
│ ├── services/
│ ├── hooks/
│ ├── store/
│ └── App.jsx
| Service | Port |
|---|---|
| API Gateway | 3000 |
| Auth Service | 3001 |
| User Service | 3002 |
| Project Service | 3003 |
| Chat Service | 3004 |
| Hackathon Service | 3005 |
| Notification Service | 3006 |
- Backend: Nest js
- Frontend: React
- Database: MongoDB / PostgreSQL
- Message Broker: Kafka / RabbitMQ
- Cache: Redis
- Containerization: Docker
- Orchestration: Kubernetes
git clone https://github.com/your-repo/skillsync.git
cd skillsync
docker-compose up --build- Microservices Architecture
- API Gateway Routing
- Real-time Chat (WebSockets)
- Event-driven Notifications
- Scalable Deployment
- Shared Utilities
MIT License