How albatranomar/hotel-management-system works
This is a Spring-based hotel-management REST API for guest reservations and hotel staff operations. The principal workflow is to search rooms, create a booking for a customer, manage its room assignments and payment, then check the guest in and out; booking service code explicitly updates booking, payment, and room state. Separate API areas cover accounts and authentication, room inventory and amenities, employees, and housekeeping. The graph uses sampled controller/service behavior for detailed links; unsampled capability areas are included from the repository tree and README, with uncertain wiring omitted.
Main entry points: BookingController.java Booking API · AuthenticationServiceImpl.java Authentication Service · BookingServiceImpl.java Booking Service · SearchController.java Search API
Components 20
REST API
- Booking API
application/src/main/java/com/hotel/management/application/controller/BookingController.java - Search API
application/src/main/java/com/hotel/management/application/controller/SearchController.java - Room API
application/src/main/java/com/hotel/management/application/controller/RoomController.java - Staff APIs
application/src/main/java/com/hotel/management/application/controller - Authentication API
application/src/main/java/com/hotel/management/application/controller/AuthenticationController.java
Guest Stays
- Booking Service
application/src/main/java/com/hotel/management/application/service/impl/BookingServiceImpl.java - Booking Operations
application/src/main/java/com/hotel/management/application/service/BookingService.java
Property Operations
- Room Service
application/src/main/java/com/hotel/management/application/service/impl/RoomServiceImpl.java - Room Operations
application/src/main/java/com/hotel/management/application/service/RoomService.java - Amenities Services
application/src/main/java/com/hotel/management/application/service - Staff Services
application/src/main/java/com/hotel/management/application/service
Identity
- Authentication Service
application/src/main/java/com/hotel/management/application/service/impl/auth/AuthenticationServiceImpl.java - JWT Service
application/src/main/java/com/hotel/management/application/service/impl/auth/JwtServiceImpl.java
Persistence
- Payment Store
application/src/main/java/com/hotel/management/application/repository/PaymentRepository.java - Booking Store
application/src/main/java/com/hotel/management/application/repository/BookingRepository.java - Room Store
application/src/main/java/com/hotel/management/application/repository/RoomRepository.java - User Store
application/src/main/java/com/hotel/management/application/repository/UserRepository.java - Token Store
application/src/main/java/com/hotel/management/application/repository/TokenRepository.java - Hotel Database
Other components
- Guest / Staff
Connections 28
- Guest / Staff → Search API: searches rooms
- Guest / Staff → Booking API: manages stays
- Guest / Staff → Room API: browses rooms
- Guest / Staff → Staff APIs: staff operations
- Guest / Staff → Authentication API: authenticates
- Booking API → Booking Service: manages booking
- Booking API → Room Service: checks rooms
- Booking API → Authentication Service: identifies user
- Booking API → Booking Operations: uses operations
- Booking Service → Booking Store: reads/writes
- Booking Service → Payment Store: creates payment
- Booking Service → Room Store: updates room state
- Room API → Room Service: manages inventory
- Room API → Room Operations: uses operations
- Room Service → Room Store: reads/writes
- Search API → Booking Operations: searches bookings
- Search API → Room Operations: searches rooms
- Staff APIs → Amenities Services: manages amenities
- Staff APIs → Staff Services: manages staff
- Authentication API → Authentication Service: authenticates
- Authentication Service → User Store: reads/writes users
- Authentication Service → Token Store: revokes/saves tokens
- Authentication Service → JWT Service: issues tokens
- Booking Store → Hotel Database: persists
- Payment Store → Hotel Database: persists
- Room Store → Hotel Database: persists
- User Store → Hotel Database: persists
- Token Store → Hotel Database: persists