Baseleg Docs

Initial backlog

This backlog is intentionally starter-level. Stories are phrased to preserve modular boundaries (UI → application → domain → infrastructure).

Epic 0 — Foundation

  • Monorepo scaffolding with pnpm + Turborepo
  • Shared TypeScript/Tailwind/Vitest config packages
  • Package boundary documentation and agent checklists
  • CI workflow for lint/typecheck/test/build
  • Docs site publishing workflow (GitHub Pages)
  • Cloudflare app deployment workflow stub
  • DB migration check workflow stub
  • Introduce basic wiring pattern for use case invocation (no DB yet)

Epic 1 — Design system and shell

  • Establish design tokens (colour, spacing, typography, radius, shadows)
  • Create app shell layout (nav + main content)
  • Define loading/empty/error/success UI patterns
  • Create base components (Button, Input, Card, Badge)
  • Add a “Visual atlas” page for documenting patterns/components
  • Add accessibility baseline checks (keyboard/focus)
  • Add responsive layout rules

Epic 2 — People

  • Define People domain glossary alignment (roles and status)
  • Implement CreatePerson use case (in-memory repo for tests)
  • Implement UpdatePerson use case
  • Implement ListPeople use case
  • UI: People list page with empty/loading/error states
  • UI: Create/edit person form with validation feedback
  • Add basic People search/filter (name/status)
  • Add People persistence (D1/Drizzle) behind repository port
  • Add migration + seed for minimal People persistence

Epic 3 — Aircraft

  • Define Aircraft domain rules (grounded protection and statuses)
  • Implement CreateAircraft use case (in-memory repo for tests)
  • Implement UpdateAircraft use case
  • Implement ListAircraft use case
  • UI: Aircraft list page with status badges
  • UI: Create/edit aircraft form
  • Add grounded toggle with clear UI affordance
  • Add Aircraft persistence (D1/Drizzle) behind repository port
  • Add migration + seed for minimal Aircraft persistence

Epic 4 — Scheduling

  • Define Booking invariants (time range validity, required assignments)
  • Implement conflict detection (aircraft and instructor overlap)
  • Implement CreateBooking use case (in-memory repo for tests)
  • UI: booking creation flow (select time, aircraft, instructor)
  • UI: basic calendar view (day/week)
  • Enforce grounded aircraft protection in booking creation
  • Add scheduling persistence and conflict queries (D1/Drizzle)
  • Add seed data for local scheduling demos

Epic 5 — Training-lite

  • Define lightweight lesson model and key terms
  • Implement CreateLesson use case (no billing)
  • Link lessons to bookings (optional)
  • UI: student training overview (simple list)
  • Add minimal training persistence stubs

Epic 6 — Compliance-lite

  • Define compliance signals (currency, expiry, alert)
  • Implement compliance rule evaluation (pure domain)
  • Add placeholder compliance alerts output
  • UI: compliance alerts list (read-only)
  • Add persistence stubs for future requirements

Epic 7 — Billing-lite

  • Define charge item and invoice draft primitives
  • Implement invoice draft calculation stub (pure domain)
  • UI: show “billing coming soon” placeholders in relevant flows
  • Add persistence stubs for later billing work
  • Add ADR for billing model if/when chosen

Epic 8 — Reporting-lite

  • Define initial operational reports (utilization, bookings by aircraft)
  • Implement basic export stub (CSV)
  • UI: reports landing page (placeholders)
  • Add persistence/query stubs for later reporting