eTeamups Platform
The eTeamups Platform (also known as the Zeswa Platform) is a backend microservices monorepo that powers team matching, organisation management, and user profile services. It provides the API layer consumed by the Zeswa Hub (zeswa.com) and the Admin Portal (admin.zeswa.com), both of which live in separate repositories.
What the Platform Does
The platform enables organisations to:
- Register and authenticate users via a passwordless, PKCE-secured OTP flow.
- Manage organisations, teams, and teammates.
- Maintain master data catalogues (countries, industries, functions, education levels, study majors, locations, skills, and assessment questions).
- Deliver transactional emails asynchronously through a Redis-backed message queue.
- Serve media assets to frontend clients.
Technology Stack
| Layer | Technology | Version |
|---|---|---|
| Runtime | Node.js | 20+ |
| Language | TypeScript | 5.0.4 |
| Web Framework | Express | 4.21.2 |
| Database | MongoDB | 7 |
| ODM | Mongoose | 8.15.0 |
| Cache / Queue Backend | Redis | 7 |
| Message Queue | BullMQ | 5.54.0 |
| Validation | Zod | 3.25.64 |
| Authentication | jsonwebtoken (JWT) | 9.0.2 |
| Password Hashing | bcrypt | 6.0.0 |
| Email Delivery | Resend | 4.8.0 |
| SMS (planned) | Twilio | 5.7.1 |
| Logging | Winston | 3.18.3 |
| Observability | OpenTelemetry SDK | 0.56.0 |
| Reverse Proxy | Nginx (Alpine) | latest |
| Process Manager | PM2 | ecosystem.config.js |
| Containerisation | Docker, Docker Compose | – |
| Authorization (planned) | Permit.io | – |
Repository Layout
eteamups-platform/
services/
auth/ # Authentication service (port 9000)
profile/ # Profile service (port 9100)
organisation/ # Organisation service (port 9107)
media/ # Media service (port 9102)
messaging/ # Email and SMS client implementations
store/ # Mongoose models, schemas, and DTOs
common/ # Shared Express middleware base class
libs/
server/ # Generic Express server bootstrap
auth/ # PKCE challenge/verify helpers
token/ # JWT sign, verify, validate middleware
mongo/ # MongooseClient singleton
message-queue/ # BullMQ MessageQueue singleton and worker
email/ # Email template utilities
seeder/ # Database seed scripts
utility/ # Logger, SchemaValidation, EmailUtility, time helpers
nginx/ # Nginx config (main + conf.d)
docker/ # Dockerfiles per service
emails/ # React Email templates
public/ # Static assets
scripts/ # Build and utility scripts
swagger/ # API documentation generation
types/ # Global TypeScript type declarations
Services at a Glance
| Service | Port | Nginx Path | Description |
|---|---|---|---|
| Auth | 9000 | /auth |
Login, OTP verification, token refresh |
| Profile | 9100 | /profile |
User profiles, teams, teammates |
| Organisation | 9107 | /organisation |
Organisations and master data catalogues |
| Media | 9102 | /media |
File and image serving |
| Message Queue Worker | – | – | BullMQ worker for async email delivery |
| Admin Portal (separate repo) | 3000 | admin.zeswa.com |
Internal admin interface |
| Zeswa Hub (separate repo) | 4000 | zeswa.com |
Public-facing application |
Infrastructure Overview
All services run inside Docker containers on a shared bridge network (eteamups-network). Nginx acts as the single entry point, terminating TLS and routing requests by path or hostname to the appropriate upstream service. MongoDB and Redis provide persistence and queue storage respectively. Container images are published to the GitHub Container Registry (GHCR) under ghcr.io/creativeaura/eteamups-platform-*.
Documentation Sections
- Architecture Overview – High-level system diagram and data flow.
- Services – Detailed per-service documentation.
- Database – MongoDB collections, schemas, and the BaseModel pattern.
- Authentication – PKCE OAuth2 flow, JWT tokens, and OTP system.
- Message Queue – BullMQ async processing and email delivery.
- Observability – OpenTelemetry, Winston logging, and Nginx log formats.