A .NET 8 booking backend with hotel and room management, guest reservations, discounts, reviews, email notifications, and PDF invoices.
My role
Backend Developer · Internship project
Timeline
Dec 2024 — Jan 2025
Context
Foothill Technology Solutions training
Booking-to-invoice illustration based on the API code; this is not a frontend screenshot.ENGINEERING CASE STUDY
The project
The Hotel Booking Platform is a REST API developed as the final project of my backend internship at Foothill Technology Solutions. It covers the core hotel booking domain: guests, hotels, rooms, amenities, cities, discounts, reservations, reviews, and administration.
The project connected many of the concepts from training into one implementation: layered architecture, data modeling, validation, authentication, business rules, tests, documentation, and deployment.
50+Documented API endpoints
9API controllers in the repository
3OS targets in the CI build/test matrix
What I implemented
Implemented a .NET 8 REST API with EF Core, SQL Server, JWT authentication, and Clean Architecture.
Developed booking flows, search and filtering, room and hotel management, reviews, discounts, and guest access.
Added email notifications, invoice calculation, and PDF invoice generation.
Wrote xUnit tests, documented endpoints with Swagger and Postman, configured GitHub Actions CI, and deployed the API to Azure App Service.
Engineering decisions
01
Validate the booking before persisting it.
The booking service resolves the hotel and current guest, retrieves the requested rooms and active discounts, validates the rooms, and calculates the price before saving the reservation.
Dedicated tests cover the number of nights, total prices, per-room discount calculations, missing bookings, and guest ownership checks. These are domain outcomes with a direct effect on what a guest receives.
Reading a booking or invoice resolves the current guest and verifies that the guest owns the booking. Resource ownership complements authentication at the API boundary.
The public GitHub Actions workflow restores, builds, and tests .NET 8 across Ubuntu, Windows, and macOS. Azure App Service and Azure SQL were used in hands-on deployment; this workflow does not contain an Azure deployment step.
This project made the relationship between validation, persistence, and testable business behavior concrete. The invoice tests are particularly useful because they describe expected outcomes.
For a next iteration, I would decouple email delivery from the booking transaction and introduce retriable background processing, while preserving clear booking ownership checks.
Explore the work
The repository, public API documentation, tests, and CI configuration provide different views of the implementation.