Skip to content

Repository files navigation

FlightOps

CI .NET PostgreSQL

Military flight training management system — scheduling, authorization, execution, grading, and logbooks.

Built as a modular monolith for air-gapped, on-prem deployment. Serves 150-250 students, 50-150 instructors, and operations staff across multiple squadrons.

What It Does

FlightOps handles the full training lifecycle:

  • Course management — predetermined syllabi with progress tracking per student
  • Daily scheduling — drag-and-drop program builder with conflict detection across instructors, students, and resources
  • Flight authorization — configurable workflows per platform (full flow for aircraft, simplified for simulators/rooms)
  • Operations room — squawk assignment, airborne/landed tracking, real-time status
  • Digital grading — instructor assessments tied to syllabus events
  • Logbook recording — automated flight hours tracking per crew member
  • Multi-squadron support — squadron-isolated data with cross-squadron scheduling for shared resources

Event Lifecycle

Draft → Staged → Published → [Authorized] → Accepted → [Airborne] → Landed → SignedBack
                                                                                  ↓
                                                              Cancelled (with category + notes)

Platforms

Three categories managed separately: Aircraft (individual tail numbers), Simulators, and Rooms. Each platform has a configurable authorization workflow.

Tech Stack

.NET 10, ASP.NET Core, PostgreSQL (EF Core), MediatR, FluentValidation, Ardalis.Result, Serilog, QuestPDF, xUnit

How It Works

Every API request flows through a pipeline of cross-cutting concerns before reaching business logic:

HTTP Request → Endpoint → MediatR Pipeline → Handler → Database
                              ↓
                     Logging (Serilog)
                     Authorization (planned)
                     Validation (FluentValidation)
                     Transaction (EF Core)
  • MediatR dispatches commands/queries to their handlers and wraps them in pipeline behaviors (validation, auth, logging, transactions) — no manual wiring needed
  • FluentValidation defines input rules per command. Invalid requests are rejected before the handler runs
  • Ardalis.Result wraps all handler responses in a typed result (Success, Invalid, Error, NotFound) which endpoints map to HTTP status codes
  • EF Core talks to PostgreSQL directly — no repository pattern. The DbContext is the unit of work

See CONTRIBUTING.md for implementation details.

Quick Start

Prerequisites: .NET 10 SDK, Docker

# Start PostgreSQL
docker compose up -d

# Apply migrations (may show warning on first run - safe to ignore)
dotnet ef database update --project src/FlightOps.Infrastructure --startup-project src/FlightOps.Web

# Run the application
dotnet run --project src/FlightOps.Web

# Run tests
dotnet test tests/FlightOps.UnitTests

Project Structure

src/
  FlightOps.Web/              ASP.NET Core host, modules, API endpoints
    Modules/
      Auth/                   Login, refresh tokens, logout, current user
      Platforms/              Platform types, aircraft, simulators, rooms
      Squadrons/              Squadron management
      Courses/                Course management, syllabus
      Scheduling/             Daily Program, conflict detection
      Operations/             Authorization flow, flight ops
      GradeSheets/            Student assessment
      Logbooks/               Flight hours tracking
      Users/                  User management, roles, activation, cross-squadron access
      Reporting/              PDF export (V1), dashboards (V2)
  FlightOps.SharedKernel/     Base types, MediatR behaviors, interfaces
  FlightOps.Infrastructure/   EF Core DbContext, entity configs, Identity
tests/
  FlightOps.UnitTests/
  FlightOps.IntegrationTests/
  FlightOps.ArchitectureTests/

Documentation

  • Technical design: docs/FlightOps_Technical-Design-v1.6.md
  • Contributing: CONTRIBUTING.md
  • Frontend development: CONTRIBUTING.md#frontend-development
  • Project instructions (for AI tooling): CLAUDE.md

About

Modern Military Aviation Training Management

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages