Technology RequirementsΒΆ
Section Brief
This section documents the approved technology stack for UMTAS. All choices are binding for contributing sub-teams and were selected to satisfy the architectural quality attributes defined in the Architectural Requirements.
-
Frontend & UI
- Next.js for SSR and the React component model. Shadcn/UI + Radix UI for headless WCAG-compliant primitives.
- University theming applied through Tailwind CSS custom properties only - no per-university code changes.
-
Backend & Core
- NestJS + DrizzleORM enforce the layered architecture with compile-time type-safe SQL.
- PostgreSQL + Redis for persistent relational storage and combined session cache / BullMQ broker.
- BetterAuth for OAuth 2.0, JWT, and session management. Supports both third-party OAuth and password-based flows.
-
Solver & AI
- FastAPI + OR-Tools (CP-SAT) for the async solver service with OpenAPI docs and partial result support at timeout.
- PyMuPDF for spatially-aware PDF extraction. Bounding-box positioning is required to interpret timetable grid layouts.
-
Infra & DevOps
- Docker + Traefik for containerised deployment with SSL termination and blue-green switching.
- pnpm + Turborepo for monorepo workspace management. MinIO for S3-compatible PDF object storage.
-
Testing & QA
- Jest + pytest for unit/integration tests. Playwright for E2E in headless CI mode.
-
Monitoring
- Prometheus + Grafana + Loki for metrics, dashboards, and structured log aggregation.