How madondo07/margin_hotel_management works
Margin Hotel Management is a Spring backend for digitising hotel front-desk operations; the public booking site and staff UI are outside this repository. Its main operational flow is staff or guest API requests for bookings, guests, rooms, invoices and payments, with JWT authentication protecting role-restricted endpoints. The documented business sequence links a booking to an invoice and a payment, and booking services prevent overlapping room stays. Source excerpts and the index establish some service relationships; other documented but unsampled routes are shown without asserting their internal call chains.
Main entry points: AuthService.java Authentication · BookingService.java Booking operations · InvoiceService.java Invoice operations · PaymentService.java Payment operations
Components 29
REST API
- Authentication API
src/main/java/za/ac/cput/marginhotelmanagement/controller/AuthController.java - Booking API
src/main/java/za/ac/cput/marginhotelmanagement/controller/BookingController.java - Guest API
src/main/java/za/ac/cput/marginhotelmanagement/controller/GuestController.java - Room API
src/main/java/za/ac/cput/marginhotelmanagement/controller/RoomController.java - Invoice API
src/main/java/za/ac/cput/marginhotelmanagement/controller/InvoiceController.java - Payment API
src/main/java/za/ac/cput/marginhotelmanagement/controller/PaymentController.java - Staff API
src/main/java/za/ac/cput/marginhotelmanagement/controller/StaffController.java
Business services
- Authentication
src/main/java/za/ac/cput/marginhotelmanagement/service/AuthService.java - JWT tokens
src/main/java/za/ac/cput/marginhotelmanagement/service/JwtService.java - Booking operations
src/main/java/za/ac/cput/marginhotelmanagement/service/BookingService.java - Guest operations
src/main/java/za/ac/cput/marginhotelmanagement/service/GuestService.java - Room operations
src/main/java/za/ac/cput/marginhotelmanagement/service/RoomService.java - Invoice operations
src/main/java/za/ac/cput/marginhotelmanagement/service/InvoiceService.java - Payment operations
src/main/java/za/ac/cput/marginhotelmanagement/service/PaymentService.java - Staff operations
src/main/java/za/ac/cput/marginhotelmanagement/service/StaffService.java
Hotel domain
- Bookings and stays
src/main/java/za/ac/cput/marginhotelmanagement/domain/Booking.java - Guest profiles
src/main/java/za/ac/cput/marginhotelmanagement/domain/Guest.java - Rooms
src/main/java/za/ac/cput/marginhotelmanagement/domain/Room.java - Invoices
src/main/java/za/ac/cput/marginhotelmanagement/domain/Invoice.java - Payments
src/main/java/za/ac/cput/marginhotelmanagement/domain/Payment.java - Staff accounts
src/main/java/za/ac/cput/marginhotelmanagement/domain/Manager.java
Persistence
- Booking repository
src/main/java/za/ac/cput/marginhotelmanagement/repository/BookingRepository.java - Guest repository
src/main/java/za/ac/cput/marginhotelmanagement/repository/GuestRepository.java - Room repository
src/main/java/za/ac/cput/marginhotelmanagement/repository/RoomRepository.java - Invoice repository
src/main/java/za/ac/cput/marginhotelmanagement/repository/InvoiceRepository.java - Payment repository
src/main/java/za/ac/cput/marginhotelmanagement/repository/PaymentRepository.java - Staff repositories
src/main/java/za/ac/cput/marginhotelmanagement/repository/ManagerRepository.java - User repository
src/main/java/za/ac/cput/marginhotelmanagement/repository/AppUserRepository.java
Other components
- API client
Connections 36
- API client → Authentication API: registers or logs in
README.md - API client → Booking API: manages bookings
README.md - API client → Guest API: manages guests
README.md - API client → Room API: manages rooms
README.md - API client → Invoice API: manages invoices
README.md - API client → Payment API: manages payments
README.md - API client → Staff API: manages staff
README.md - Authentication API → Authentication: delegates to
src/main/java/za/ac/cput/marginhotelmanagement/controller/AuthController.java - Guest API → Guest operations: delegates to
src/main/java/za/ac/cput/marginhotelmanagement/controller/GuestController.java - Invoice API → Invoice operations: delegates to
src/main/java/za/ac/cput/marginhotelmanagement/controller/InvoiceController.java - Payment API → Payment operations: delegates to
src/main/java/za/ac/cput/marginhotelmanagement/controller/PaymentController.java - Booking API → Booking operations: delegates to
src/main/java/za/ac/cput/marginhotelmanagement/controller/BookingController.java - Room API → Room operations: delegates to
- Staff API → Staff operations: delegates to
src/main/java/za/ac/cput/marginhotelmanagement/controller/StaffController.java - Authentication → JWT tokens: uses tokens
src/main/java/za/ac/cput/marginhotelmanagement/service/AuthService.java - Authentication → User repository: checks and saves users
src/main/java/za/ac/cput/marginhotelmanagement/service/AuthService.java - Authentication → Guest repository: looks up guests
src/main/java/za/ac/cput/marginhotelmanagement/service/AuthService.java - Authentication → Booking repository: looks up bookings
src/main/java/za/ac/cput/marginhotelmanagement/service/AuthService.java - Booking operations → Booking repository: reads and writes
src/main/java/za/ac/cput/marginhotelmanagement/service/BookingService.java - Booking operations → Guest operations: resolves guest
src/main/java/za/ac/cput/marginhotelmanagement/service/BookingService.java - Booking operations → Room operations: resolves room
src/main/java/za/ac/cput/marginhotelmanagement/service/BookingService.java - Guest operations → Guest repository: reads and writes
src/main/java/za/ac/cput/marginhotelmanagement/service/GuestService.java - Invoice operations → Invoice repository: reads and writes
src/main/java/za/ac/cput/marginhotelmanagement/service/InvoiceService.java - Invoice operations → Booking repository: resolves booking
src/main/java/za/ac/cput/marginhotelmanagement/service/InvoiceService.java - Payment operations → Payment repository: reads and writes
src/main/java/za/ac/cput/marginhotelmanagement/service/PaymentService.java - Payment operations → Invoice operations: resolves invoice
src/main/java/za/ac/cput/marginhotelmanagement/service/PaymentService.java - Room operations → Room repository: reads and writes
src/main/java/za/ac/cput/marginhotelmanagement/service/RoomService.java - Staff operations → Staff repositories: reads and writes
src/main/java/za/ac/cput/marginhotelmanagement/service/StaffService.java - Booking operations → Bookings and stays: creates and updates
src/main/java/za/ac/cput/marginhotelmanagement/service/BookingService.java - Guest operations → Guest profiles: creates and updates
src/main/java/za/ac/cput/marginhotelmanagement/service/GuestService.java - Invoice operations → Invoices: creates and updates
src/main/java/za/ac/cput/marginhotelmanagement/service/InvoiceService.java - Payment operations → Payments: creates and updates
src/main/java/za/ac/cput/marginhotelmanagement/service/PaymentService.java - Bookings and stays → Guest profiles: references guest
src/main/java/za/ac/cput/marginhotelmanagement/domain/Booking.java - Bookings and stays → Rooms: references room
src/main/java/za/ac/cput/marginhotelmanagement/domain/Booking.java - Invoices → Bookings and stays: references booking
src/main/java/za/ac/cput/marginhotelmanagement/domain/Invoice.java - Payments → Invoices: references invoice