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.