Web Platform Overview
The SyncAD web platform consists of a unified NestJS API serving multiple Next.js frontends.
Components
| App | Stack | Purpose |
|---|---|---|
| API | NestJS + Drizzle | REST API for all platforms |
| School Admin UI | Next.js 14 + MUI + Tailwind | Day-to-day school operations |
| Super Admin UI | Next.js 16 + shadcn/ui | Cross-school provisioning |
| Home (Marketing Site) | Next.js 15 + Tailwind v4 | Public marketing pages |
| SCS Service | Go | Automated school onboarding |
Architecture
Browser
│
├── school-admin-ui (Next.js :3002) ──► NestJS API (:3001) ──► School DB
├── super-admin (Next.js :3003) ──► NestJS API (:3001) ──► Central DB
├── home (Next.js :3000) ──► NestJS API (:3001) ──► (marketing only)
└── SCS (Go :8080) ──► Route53 / RDS / ACM ──► New School DB
Key Modules
| Module | Description |
|---|---|
| Accounts | Double-entry fee accounting |
| Attendance | Student and employee attendance |
| Exam Management | Exam scheduling, results, assignments |
| Fee Management | Fee structure, collection, reminders |
| Bus Tracking | Bus, route, stop, trip management |
| Library | Book catalog, issue, return |
| Announcements | School-wide announcements |
| Leave | Leave request and approval workflow |
| Messaging | Internal messaging, broadcasts |
Deployment
See Deployment for Docker, GitHub Actions, and environment variable reference.