HRS — Hotel Reservation System
A hotel booking web app where guests handle everything from reservation to check-out themselves, built from UML analysis and design through implementation.
Overview
HRS is a hotel reservation system built as part of a university course.
Three of us worked on it for three weeks, and what the exercise was really asking was “object-oriented analysis and design in UML, and whether the result can be implemented exactly as designed”.
Features
| Feature | Description |
|---|---|
| Reservation | Book by entering dates, room, and guest details |
| Lookup | Retrieve a reservation by number and lead guest name |
| Cancellation | Cancel a reservation by number and lead guest name |
| Check-in | Verify the reservation and assign a room |
| Check-out | Confirm charges and payment method, then complete the stay |
| Sent on booking, cancellation, the day before arrival, and at check-out |
The day-before reminder runs as a Vercel Cron Job every day at 9 JST.
Stack
The application is TypeScript on Next.js App Router and React, with Route Handlers for the API, Prisma for data access, and PostgreSQL (Neon or Docker) as the database. Email goes through Resend, tests run on Vitest, and deployment is Vercel plus Neon.
What I worked on
The question I spent the most time on was how to keep the implementation from drifting away from the design. The responsibilities settled in the class and sequence diagrams became the module boundaries directly, and the rules that matter to the specification — such as matching a reservation by number and guest name — are pinned down by tests.
Stack
TypeScript · Next.js · React · Prisma · PostgreSQL · Vitest · Vercel · UML