Skip to content

ANcpLua/TourPlanner-Angular

Repository files navigation

TourPlanner (Angular)

Tests and Coverage codecov

SWEN2 2026 -- Tour planning application with .NET 10 backend and Angular 21 frontend.

Repository Layout

.
├── 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

Quick Start (Docker)

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 down

Port conflicts

If 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

Local Development

Prerequisites

  • Node 22.x
  • npm 10.x
  • .NET SDK 10.0
  • Docker or OrbStack (for PostgreSQL)

Steps

  1. Start the database:
docker compose -f deploy/compose.yaml up -d postgres
  1. Start the API (from backend/):
cd backend && dotnet watch --project API
  1. 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 start

Open http://localhost:7226.

Build

(cd frontend && npm run generate)
(cd backend && dotnet build API/API.csproj)
(cd frontend && npm run build)

Tests

429 tests total -- 170 backend (NUnit) + 259 frontend (Vitest), all passing.

Backend (from backend/):

cd backend && dotnet test

Frontend (from frontend/):

cd frontend && npm test

Run the full local verification pipeline (from frontend/):

cd frontend && npm run verify

Architecture

Same 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.

About

TourPlanner Angular – SWEN2 reference implementation (FH Technikum Wien)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors