Back to PinboardPinboard archive / Engineering case study

Investigation file / BOOKIFY

Bookify Hotel Reservation System

A hotel reservation application covering availability, booking, payment, identity, and administration.

Project type
Team project / .NET full-stack
Working context
I led a six-person university team and contributed to the backend.
My role
I owned the backend, booking and payment flows, identity and security, backend architecture, and frontend leadership.
  • .NET 9
  • ASP.NET Core MVC
  • EF Core
  • SQL Server
  • Stripe
  • Identity
Bookify hotel search home page
Exhibit A / customer entry point
01

Pinboard archive / Engineering case study

Context

I led this team project as my flagship .NET full-stack case study.

Working context
I led a six-person university team and contributed to the backend.
My role
I owned the backend, booking and payment flows, identity and security, backend architecture, and frontend leadership.
Who was affected
Hotel guests and staff administering inventory, bookings, and customer accounts.
02

Problem brief

Problem

Customers need trustworthy date-based room availability and payment, while hotel staff need one controlled surface for rooms, bookings, refunds, and users.

Operating constraints

  1. 01Availability and booking state must remain consistent across overlapping requests.
  2. 02Payment, refund, and email integrations introduce external failure boundaries.
  3. 03Customer and administrator capabilities require strict role separation.
03

Evidence / reasoning

Problem Research

01

Booking integrity

I traced room state from date-range search through availability, checkout, and payment confirmation to identify every point where overlapping requests could diverge.

02

Boundary security

I mapped forms, cookies, uploads, role boundaries, and payment callbacks separately because each crosses the application boundary differently.

03

Operational visibility

I separated database, email, and payment readiness so one healthy web process could not hide a failed dependency.

04

Implementation files

How I Solved It

F-01

Availability-led discovery

I built room discovery around date range, type, price, and occupancy instead of showing inventory that could not be booked.

F-02

Booking and payment

I connected the booking summary to Stripe payment and confirmation email.

F-03

Hotel administration

I gave staff one surface for rooms, room types, bookings, refunds, users, and operational summaries.

05

System map

System Architecture

ASP.NET Core MVC delegates booking, payment, availability, identity, and email work to services over EF Core repositories and SQL Server.
01

MVC web

Controllers, Razor, ViewModels

02

Services

Booking, availability, payment, email

03

Data layer

EF Core, repositories, Unit of Work

04

SQL Server

Rooms, bookings, identity

05

External services

Stripe and SendGrid

06

Diagnostic notes

Challenges

Issue 01

Concurrent booking state

Room state can change between availability search and booking completion.

Issue 02

External service health

A working web process does not guarantee database, SendGrid, or Stripe readiness.

07

Quality gates

Technical Safeguards

Security

I protected account and admin workflows with ASP.NET Identity, RBAC, lockout, secure cookies, antiforgery validation, Razor encoding, and upload validation.

Data integrity

I kept input and persistence boundaries explicit with EF Core parameterization, ViewModels, RowVersion, Unit of Work, and migrations.

Operations

I exposed system state through Serilog rolling logs and database, payment, and email health checks.

08

Ownership record

My Contribution

MY VERIFIED SCOPE

I owned the backend work, booking and payment flows, identity and security, backend architecture, and frontend leadership.

Working context
I led a six-person university team and contributed to the backend.
My role
I owned the backend, booking and payment flows, identity and security, backend architecture, and frontend leadership.
09

Closing record

Outcome

What was delivered

Our team delivered customer booking and payment journeys plus an administration surface for rooms, bookings, refunds, users, and operational views.

Published evidence

I implemented customer and admin workflows, Stripe Payment Intents, SendGrid email, role-based access, health checks, and concurrency controls.

Honest boundary

I currently present the source and product evidence rather than a live demo; automated booking and payment integration coverage is the next technical step.

Next consideration

My next technical step is to add automated integration coverage for overlapping bookings, payment confirmation, and refund recovery.

10

Curated project media

Related Evidence

Bookify hotel search home page
Evidence exhibit 01Exhibit A / customer entry point
Bookify reservation checkout
Evidence exhibit 02Exhibit B / booking handoff
Bookify administration dashboard
Evidence exhibit 03Exhibit C / staff operations
Bookify booking management
Evidence exhibit 04Exhibit D / booking operations
Bookify room management
Evidence exhibit 05Exhibit E / room inventory controls
Bookify payment confirmation
Evidence exhibit 06Exhibit F / payment completion
Bookify user management
Evidence exhibit 07Exhibit G / role-controlled accounts