FlyAway is a modern web application for searching, booking, and managing flights. Built with ASP.NET Core Razor Pages, Entity Framework Core, and a modular service/repository architecture, FlyAway provides a seamless experience for both travelers and administrators.
- Flight Search: Search for one-way or round-trip flights by date, airports, class, and number of passengers.
- Booking Management: Book flights, view your bookings, and cancel if needed.
- User Authentication: Secure registration, login, and role-based access using ASP.NET Core Identity.
- Localization: Multi-language support (Dutch, English, French) for both UI and validation messages.
- Vacation Pricing: Dynamic price adjustments during vacation periods.
- Meal Selection: Choose meals based on destination city.
- Admin Panel: Manage flights, airports, routes, meals, and view bookings.
- Session Management: User session support for booking flows.
- Swagger API: Integrated API documentation for backend endpoints.
- Responsive UI: Clean, mobile-friendly design using Bootstrap.
- .NET 8 / C#
- ASP.NET Core Razor Pages
- Entity Framework Core
- AutoMapper
- Dependency Injection
- Azure Key Vault for secrets management
- Bootstrap 5 for UI
- jQuery Validation for client-side validation
- Swagger for API documentation
FlyAway/- Main web application (Razor Pages, Controllers, Views, wwwroot)FlyAway.Domains/- Entity models and DbContextFlyAway.Repositories/- Data access layer (DAOs)FlyAway.Services/- Business logic and service interfacesFlyAway.Utils/- Utility classes (e.g., email, PDF generation)
- .NET 8 SDK
- SQL Server or SQLite
- (Optional) Azure Key Vault for production secrets
-
Clone the repository:
git clone https://github.com/yourusername/FlyAway.gitcd FlyAway -
Configure Secrets:
- For local development, set up User Secrets or use
appsettings.Development.jsonfor connection strings and email credentials. - For production, configure Azure Key Vault and update
KeyVaultsettings inappsettings.json.
-
Database Migration:
dotnet ef database update --project FlyAway.Domains -
Run the Application:
dotnet run --project FlyAway -
Access the App:
- Open the project on localhost in your browser.
- Razor Pages are used for most UI, with some MVC controllers for complex flows.
- Services and Repositories are injected via DI for testability and separation of concerns.
- Localization resources are in the
Resources/folder. - Swagger UI is available at
/swaggerfor API exploration.
- Start Bootstrap SB Admin for admin UI template (MIT License)
- jQuery Validation (MIT License)
- My School for their excellent teaching, guidance, and support :)
FlyAway