Introduction to SGRH
The Sistema de Gestión de Reservas de Hoteles (SGRH) is a hotel reservation management system developed using a layered architecture (modular monolith) with a centralized backend that exposes a REST API consumed by Web and Desktop clients.What is SGRH?
SGRH is a comprehensive solution designed to manage all aspects of hotel operations, from customer management to reservations, room tracking, and reporting. The system is built following clean architecture principles with strict separation of concerns and dependency inversion.Key Features
The system provides complete management capabilities for:Customer Management
Manage customer profiles with personal information, contact details, and reservation history
Reservations
Create, modify, and track reservations with flexible date management and status tracking
Room Management
Track room availability, categories, status history, and maintenance schedules
Pricing & Seasons
Dynamic pricing based on seasons and room categories with automated rate application
Additional Services
Manage additional services with quantity tracking and seasonal pricing
Reports & Analytics
Generate comprehensive reports on reservations, occupancy, and revenue
Audit & Traceability
Complete audit trail of all system operations with event tracking
Security
JWT-based authentication with role-based authorization for administrators and receptionists
Technology Stack
Backend
Cloud Infrastructure
SGRH integrates with AWS services for enhanced functionality:- Amazon S3 - File and document storage
- Amazon SES - Email notifications and communications
- AWS SDK - Cloud service integration
Client Applications
Web Client
Blazor Server application providing web-based access to the system
Desktop Client
.NET MAUI Blazor Hybrid application for administrative staff and receptionists
Core Domain Concepts
SGRH implements rich domain models with business logic encapsulation:Reservations
Reservations are the heart of the system, managing the booking lifecycle:SGRH.Domain/Entities/Reservas/Reserva.cs
Reservation States
Reservations flow through well-defined states:- Pendiente - Initial state when created
- Confirmada - Confirmed and locked for check-in
- Finalizada - Completed after checkout
- Cancelada - Cancelled by customer or staff
Confirmed, finalized, and cancelled reservations cannot be modified, ensuring data integrity and preventing accidental changes to completed bookings.
Room Management
Rooms maintain a complete status history:SGRH.Domain/Entities/Habitaciones/Habitacion.cs
Security Features
SGRH implements comprehensive security measures:- JWT Authentication - Secure token-based authentication
- Role-Based Authorization - Separate permissions for administrators and receptionists
- Audit Trail - Complete tracking of all system operations
- HTTPS - Encrypted communication in development and production
Architecture Highlights
The system is built on solid architectural principles:Domain-Driven Design
Rich domain models with encapsulated business logic and invariants
Dependency Inversion
Domain defines contracts, infrastructure implements them
Separation of Concerns
Clear boundaries between layers with minimal coupling
Policy-Based Validation
Business rules enforced through domain policies
Next Steps
Architecture
Learn about the layered architecture and project structure
Quick Start
Get SGRH up and running on your local machine