Skip to content

arthurfvives/FlyAway

Repository files navigation

FlyAway

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.

Features

  • 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.

Screenshots

image image image image image image image image

Technologies

  • .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

Project Structure

  • FlyAway/ - Main web application (Razor Pages, Controllers, Views, wwwroot)
  • FlyAway.Domains/ - Entity models and DbContext
  • FlyAway.Repositories/ - Data access layer (DAOs)
  • FlyAway.Services/ - Business logic and service interfaces
  • FlyAway.Utils/ - Utility classes (e.g., email, PDF generation)

Getting Started

Prerequisites

  • .NET 8 SDK
  • SQL Server or SQLite
  • (Optional) Azure Key Vault for production secrets

Setup

  1. Clone the repository: git clone https://github.com/yourusername/FlyAway.git cd FlyAway

  2. Configure Secrets:

  • For local development, set up User Secrets or use appsettings.Development.json for connection strings and email credentials.
  • For production, configure Azure Key Vault and update KeyVault settings in appsettings.json.
  1. Database Migration: dotnet ef database update --project FlyAway.Domains

  2. Run the Application: dotnet run --project FlyAway

  3. Access the App:

  • Open the project on localhost in your browser.

Development

  • 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 /swagger for API exploration.

Credits


FlyAway

About

The main project for our course Full Stack Development

Resources

License

Stars

Watchers

Forks

Contributors