A microservices-based backend system for a Virtual Office application.
| Service | Port | What it does |
|---|---|---|
| Gateway API | 8080 |
The single entry point for all clients. Routes requests to the correct service |
| User Service | 8081 |
Handles authentication, user accounts, and identity |
| Notification Service | 8082 |
Sends alerts, emails, and push notifications based on system events |
| Calendar Service | 8083 |
Manages meetings, scheduling, and time-based events |
| Chat Service | 8084 |
Handles all messaging (direct messages, workspace chats, room chats) |
| Tasks Service | 8085 |
Manages tasks, assignments, and progress tracking |
| Room Service | 8086 |
Manages virtual rooms (voice channels, meetings, future video) |
| Workspace Service | 8087 |
Manages workspaces, desks (user seats), 2D layout, and overall structure |
| Shared Library | N/A | Shared DTOs, utilities, and common logic |
graph TD
Client((Client)) --> GW[API Gateway]
subgraph Identity[Identity & Support]
US[User Service]
NS[Notification Service]
end
subgraph Space[Space Management]
WS[Workspace Service]
RS[Room Service]
end
subgraph Collab[Collaboration & Workflow]
Chat[Chat Service]
Cal[Calendar Service]
TS[Tasks Service]
end
%% Gateway Routing
GW --> Space
GW --> Collab
%% Resource Interactions
WS --> RS
RS --> Chat & Cal
%% Task & Notification Flow
TS --> NS & WS
Cal --> NS
%% Validation & Lookups
WS -.-> US
Chat -.-> US
- User = you
- Workspace = a company / team
- Desk = your seat in that workspace (managed inside workspace-service)
- Room = voice / meeting space
- Chat = messaging layer
- Java 21
- Maven
./mvnw clean install