System Overview
++The WIN Student Goal Tracker is a containerized web application designed to allow +teachers and program staff to track student progress, goals, benchmarks, and +events. The system follows a modern multi-tier architecture separating the +frontend interface, backend services, and database layer. +
+System Architecture
+ +The system architecture is organized into four main components:
+ ++Browser + │ + ▼ +Angular Frontend + │ + ▼ +Traefik Reverse Proxy + │ + ▼ +.NET Core API + │ + ▼ +MySQL Database ++ +
Technology Stack
+ +| Layer | +Technology | +Purpose | +
|---|---|---|
| Frontend | +Angular 20 | +User interface and client-side logic | +
| Backend | +.NET Core 9.0 (C#) | +Business logic and REST APIs | +
| ORM | +Dapper | +Lightweight database access | +
| Authentication | +JWT + Refresh Tokens | +Secure user authentication | +
| Database | +MySQL | +Persistent data storage | +
| Infrastructure | +Docker Containers | +Application deployment | +
| Reverse Proxy | +Traefik | +Routing and SSL certificate management | +
Authentication
+ ++The application uses JSON Web Tokens (JWT) for authentication. +After login, the server generates a JWT token which is used to authenticate +subsequent API requests. +
+ +-
+
- Access Tokens authenticate API requests +
- Refresh Tokens extend user sessions +
- Program-scoped tokens restrict access to authorized programs +
Database Design
+ +The MySQL database stores the application data for students and progress tracking.
+ +-
+
- Users +
- Programs +
- Students +
- Goals +
- Benchmarks +
- Progress Events +
+The backend uses Dapper ORM to execute SQL queries and map results +to application objects. +
+ +Infrastructure
+ ++The system is deployed using Docker containers on a Virtual Private Server (VPS). +Each component runs in its own container to maintain separation and scalability. +
+ +| Container | +Function | +
|---|---|
| Angular | +Frontend application | +
| .NET Core API | +Backend services | +
| MySQL | +Database server | +
| Traefik | +Reverse proxy and SSL manager | +
Deployment
+ ++The application is deployed using Docker containers orchestrated on a VPS. +Traefik automatically handles HTTPS certificates and routes traffic to the +appropriate container. +
+ ++User Browser + │ + ▼ +Traefik Reverse Proxy + │ + ├── Angular Container + │ + └── .NET Core API Container + │ + ▼ + MySQL Container ++ +