SWEN2 2026 -- Tour planning application with .NET 10 backend and Angular 21 frontend.
.
├── backend/ C# solution (API, BL, DAL, Contracts, Tests) + sln + props + openapi output
├── frontend/ Angular 21 workspace (src, public, angular.json, package.json, tsconfig*)
├── deploy/ Docker, compose, nginx
└── docs/ Grading checklist, layout proposal, architecture notes, wireframes
Requires Docker or OrbStack. Compose file lives in deploy/:
docker compose -f deploy/compose.yaml up -d| Service | URL |
|---|---|
| Frontend | http://localhost:7226 |
| API | http://localhost:7102 |
| pgAdmin | http://localhost:5050 |
| Health | http://localhost:7102/health |
pgAdmin login: admin@admin.com / admin
To stop:
docker compose -f deploy/compose.yaml downIf any port is already in use, copy the example env file and adjust:
cp .env.example deploy/.env
# edit deploy/.env, then:
docker compose -f deploy/compose.yaml up -d- Node 22.x
- npm 10.x
- .NET SDK 10.0
- Docker or OrbStack (for PostgreSQL)
- Start the database:
docker compose -f deploy/compose.yaml up -d postgres- Start the API (from
backend/):
cd backend && dotnet watch --project API- Install frontend dependencies, regenerate the OpenAPI client types, and start the frontend in a separate terminal (from
frontend/):
cd frontend
npm ci
npm run generate
npm startOpen http://localhost:7226.
(cd frontend && npm run generate)
(cd backend && dotnet build API/API.csproj)
(cd frontend && npm run build)429 tests total -- 170 backend (NUnit) + 259 frontend (Vitest), all passing.
Backend (from backend/):
cd backend && dotnet testFrontend (from frontend/):
cd frontend && npm testRun the full local verification pipeline (from frontend/):
cd frontend && npm run verifySame backend as the Blazor variant. The Angular frontend demonstrates that the UI layer is interchangeable when the API contract is stable.
| Layer | Responsibility | Location |
|---|---|---|
| Angular | Components, ViewModels, routing | frontend/src/app |
| API | HTTP endpoints, transport validation | backend/API |
| BL | Business rules, orchestration | backend/BL |
| DAL | Persistence, external service access | backend/DAL |
| Contracts | Shared DTOs | backend/Contracts |
See docs/GRADING-CHECKLIST.md for the full spec-vs-implementation matrix and docs/LAYOUT-PROPOSAL.md for the rationale behind the folder split.