A full-featured ASP.NET Core application for managing flights, reservations, and user administration with clean architecture and robust validation.
- Create, edit and track flights with capacity monitoring
- Smart filtering and autocomplete for flight search
- Capacity validation (BusinessClass ≤ PassengerCapacity)
- Time validation (ArrivalTime > DepartureTime)
- Email Confirmation Workflow:
Loading
sequenceDiagram User->>Controller: Create Reservation Controller->>EmailService: Send Confirmation EmailService->>User: Email with Token User->>Controller: Confirm via Token Controller->>Database: Mark Confirmed - Supports both registered users and guest reservations
- Automatic cleanup of unconfirmed reservations after 24h
- Business/Regular class ticket options
- Complete user and role management
- Paginated role lists with user counts
- Secure user creation with role assignments
- ASP.NET Core Identity integration
- Comprehensive model validation
- Automatic cleanup of orphaned records
- Unique reservation enforcement
- Email token verification system
- SQL Database support with Entity Framework Core
- Intelligent relationship handling:
Loading
erDiagram FLIGHT ||--o{ RESERVATION : has RESERVATION }|--|| RESERVATION_USER : belongs_to - Enum storage as strings (TicketType: Regular, BusinessClass)
- Automatic timestamping (CreatedAt fields)
graph TD
A[Controllers] --> B[Services]
B --> C[Data Models]
C --> D[Database]
A --> E[Identity]
E --> D
B --> F[Email Integration]
B --> G[Background Tasks]
- Clone the repository
git clone https://github.com/f8developer/FlightManager.git
- Configure database connection in
appsettings.json - Set up required services in
credentials.json:EmailService: ApiKey: "your_brevo_api_key"
- Configure owner settings:
OwnerEmail: "admin@example.com" OwnerPassword: "SecurePassword123!"
- Run migrations
dotnet ef database update
- Run FlightManager
dotnet run
The project includes comprehensive unit tests covering:
- Database operations
- Model validation (date ordering, capacity rules)
- Business logic (reservation uniqueness)
- Email template handling
- Orphan removal logic
For detailed code coverage information, see CodeCoverage.md.
Run tests with:
dotnet testFull system documentation available in the MAIN.md file, including:
- Core components architecture
- Controller specifications
- Data model details
- Service implementations
- Database layer configuration
We welcome contributions! Please follow our contribution guidelines.
GNU Public License - See LICENSE for details.