A high-performance C++ desktop application for managing hotel room bookings, built with Dear ImGui and GLFW/OpenGL. The system features a modern graphical workspace splitting user access into client-facing Guest registration workflows and an advanced Administrative control panel.
This application allows users to interact with a hotel platform through a smooth graphical user interface instead of a text terminal. It supports:
- Dual-Role Access Control: Dedicated client workspaces based on authentication. Guests can register a profile, check room statuses, and submit custom bookings. Administrators have an exclusive operations dashboard to view, track, and filter the global registry.
- Sorting: Organizes active reservations alphabetically by customer name using an in-memory Bubble Sort implementation.
- Searching: Tracks down explicit database records instantly using an ID-based lookup framework (Linear Search).
- Recursive Resource Calculation: Evaluates total cumulative nights booked globally by dynamically partitioning vector tracking indexes via mathematical Recursion.
- Data Encapsulation: Implements object-oriented architecture patterns to isolate secure data mutations, memory tracking logic, and active GUI render cycles.
Developed following the Scrum methodology using a strict three-tier architecture (Presentation → Logic → Data).
| Name | Role |
|---|---|
| Antonio Ivanov | Scrum Master |
| Presiyan Tenev | Back-End Developer |
| Loris Zadikyan | Back-End Developer |
| Ivan Lapchev | Front-End Developer |
The project follows a strict Three-Tier Architecture:
┌──────────────────────────────────────┐
│ Presentation Layer │
│ presentation.h / presentation.cpp │
│ Renders GUI via Dear ImGui │
└──────────────────┬───────────────────┘
│ calls
┌──────────────────▼───────────────────┐
│ Logic Layer │
│ logic.h / logic.cpp │
│ Sorting, Searching, Recursion │
└──────────────────┬───────────────────┘
│ calls
┌──────────────────▼───────────────────┐
│ Data Layer │
│ data.h / data.cpp │
│ Reservation struct, storage, I/O │
└──────────────────────────────────────┘
- Presentation — renders the ImGui GUI, handles user input, calls only Logic layer functions
- Logic — implements all algorithms; calls only Data layer functions
- Data — defines the
Reservationstruct, holds the in-memory database, exposesgetReservations(),addReservation(),initData()
null-terminators-reservation-system/
├── src/
│ ├── main.cpp # Application entry point
│ ├── presentation.cpp # GUI rendering views (ImGui + GLFW)
│ ├── logic.cpp # Algorithmic sorting, searching, and recursion
│ ├── data.cpp # Core record persistence and storage mechanics
│ └── auth.cpp # Authentication logic and session flows
├── include/
│ ├── presentation.h
│ ├── logic.h
│ ├── data.h
│ └── auth.h
├── libs/
│ ├── imGui/ # Dear ImGui source files
│ └── glfw/ # GLFW framework binaries
├── Documentation/
│ ├── documentation.docx
│ └── presentation.pptx
└── README.md- Visual Studio 2022 with the Desktop development with C++ workload
- GLFW — windowing and OpenGL context (64-bit Windows binaries)
- Dear ImGui — already included in
libs/imGui/ - OpenGL — included with Windows / Visual Studio
- Open
reservationManagementSystem.slnxin Visual Studio 2022 - Set the configuration to Debug and platform to x64
- Press Ctrl+Shift+B to build
- Press F5 to run
Once the application launches, the "Reservation Management System" window will appear:
| Feature | How to use |
|---|---|
| Authentication | Sign up as a Guest to book a stay, or log in as an Admin to access the master dashboard. |
| Sort by Name | Click the "Sort by Name" button to arrange all current records alphabetically by customer name. |
| Search by ID | Type a numeric identifier into the "Search ID" widget and click find — a linear array scanner will highlight the matching reservation row. |
| Total Nights Calculation | Displayed dynamically at the top of the Admin dashboard, calculated recursively across the database. |
| View Reservations | Inspect active bookings containing fields for ID, Name, Phone, Room ID, Nights, Type, Package, and Total Bill. |
| Library | Version | Purpose |
|---|---|---|
| Dear ImGui | Included in libs/imGui/ |
GUI rendering |
| GLFW | 3.x (64-bit) | Window creation and OpenGL context |
| OpenGL | System | Graphics rendering backend |
