Skip to content

Repository files navigation

TaskTrackerApp

Kanban-style ticket tracker (Hackathon Ticketing System). See appRequirements.md for the full requirements and current deviations.

Stack

  • API: ASP.NET Core 10 Web API (Clean Architecture: Domain → Application → Infrastructure → Web).
  • Client: Blazor WebAssembly SPA, served by nginx in a separate container.
  • Database: PostgreSQL 16.
  • Tests: NUnit (unit + API + UI). UI tests use Microsoft.Playwright.

Solution layout

src/
  TaskTrackerApp.Domain          — entities, enums (empty in this bootstrap)
  TaskTrackerApp.Application     — services, interfaces, IEmailSender abstraction
  TaskTrackerApp.Shared          — DTOs shared between Client and Web
  TaskTrackerApp.Infrastructure  — EF Core (Postgres), AutoVerifyEmailSender stub
  TaskTrackerApp.Web             — Web API, /healthz, CORS
  TaskTrackerApp.Client          — Blazor WASM SPA
tests/
  TaskTrackerApp.UnitTests       — NUnit smoke test
  TaskTrackerApp.ApiTests        — NUnit + WebApplicationFactory<Program>
  TaskTrackerApp.UiTests         — NUnit + Playwright

Prerequisites

Run

Primary path (matches the requirements' DoD):

docker compose up --build

Then open:

Local .NET fallback (two terminals):

dotnet run --project src/TaskTrackerApp.Web/TaskTrackerApp.Web.csproj
dotnet run --project src/TaskTrackerApp.Client/TaskTrackerApp.Client.csproj

Tests

# All
dotnet test TaskTrackerApp.slnx

# Individual projects
dotnet test tests/TaskTrackerApp.UnitTests
dotnet test tests/TaskTrackerApp.ApiTests
dotnet test tests/TaskTrackerApp.UiTests

First-time Playwright browser install (one-time):

dotnet build tests/TaskTrackerApp.UiTests
pwsh tests/TaskTrackerApp.UiTests/bin/Debug/net10.0/playwright.ps1 install

The UI tests target http://localhost:5080 by default. Override with $env:UI_TESTS_BASE_URL.

Claude Code skills

Skills live in .claude/skills/ and are invocable in Claude Code:

  • /start-appdocker compose up --build.
  • /run-tests [unit|api|ui] — run one or all test projects.
  • /deploy [api|client] — publish artifacts and build Docker images.

Current deviations

Documented at the top of appRequirements.md. Highlights:

  • Outbound email is routed to a local Mailpit container (mailpit:1025 inside Docker, localhost:1025 on the host). No mail leaves the machine — open http://localhost:8025 to view sent messages. Switch to your organization's SMTP relay by editing EmailSender:Smtp in appsettings.json (or the EmailSender__Smtp__* env vars in docker-compose.yml) once credentials are available. AutoVerifyEmailSender remains as a fallback for offline/test runs and is selected by setting EmailSender:Mode to AutoVerify.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages