# rgrmlbn/staycation-booking-system architecture

> Architecture diagram of the GitHub repository rgrmlbn/staycation-booking-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rgrmlbn/staycation-booking-system
- Repository: https://github.com/rgrmlbn/staycation-booking-system

## Overview

This repository appears to be a property-rental backend: users manage listings, make and transition bookings, and review completed stays; account and amenity management are also represented. The sampled booking and review controllers delegate requests to services, and the review implementation checks ownership and coordinates booking, property, and review persistence. The frontend file shown is a Vite/React starter screen, not evidence of a connected rental workflow. The README is empty, and several backend implementations were not sampled, so their internal wiring is omitted.

Main entry points: [`backend/src/main/java/com/spring/backend/module/property/review/service/impl/ReviewServiceImpl.java`](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/review/service/impl/ReviewServiceImpl.java) (Review management), [`backend/src/main/java/com/spring/backend/module/property/booking/controller/BookingController.java`](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/booking/controller/BookingController.java) (Booking API), [`backend/src/main/java/com/spring/backend/module/property/review/controller/ReviewController.java`](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/review/controller/ReviewController.java) (Review API), [`backend/src/main/java/com/spring/backend/module/property/property/controller/PropertyController.java`](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/property/controller/PropertyController.java) (Property API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_accounts["Accounts and access"]
  node_auth_api["Auth API"]
  node_auth_service["Authentication"]
  node_user_api["User API"]
  node_user_service["User management"]
end

subgraph group_properties["Property management"]
  node_property_api["Property API"]
  node_property_service["Property management"]
  node_amenity_api["Amenity API"]
  node_amenity_service["Amenity management"]
  node_property_store[("Property repository")]
end

subgraph group_stays["Bookings and reviews"]
  node_booking_api["Booking API"]
  node_booking_service["Booking workflow"]
  node_review_api["Review API"]
  node_review_service["Review management"]
  node_review_store[("Review repository")]
  node_booking_store[("Booking repository")]
end

subgraph group_shared["Shared backend"]
  node_ownership["Ownership checks"]
end

node_guest(("Guest"))
node_host(("Host"))

node_guest -->|"submits requests"| node_booking_api
node_host -->|"submits requests"| node_booking_api
node_guest -->|"submits requests"| node_review_api
node_host -->|"manages listings"| node_property_api
node_booking_api -->|"delegates"| node_booking_service
node_review_api -->|"delegates"| node_review_service
node_review_service -->|"reads and writes"| node_review_store
node_review_service -->|"checks booking"| node_booking_store
node_review_service -->|"checks and updates"| node_property_store
node_review_service -->|"verifies ownership"| node_ownership

click node_auth_api "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/user/auth/controller/AuthController.java"
click node_auth_service "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/user/auth/service/impl/AuthServiceImpl.java"
click node_user_api "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/user/user/controller/UserController.java"
click node_user_service "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/user/user/service/impl/UserServiceImpl.java"
click node_property_api "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/property/controller/PropertyController.java"
click node_property_service "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/property/service/impl/PropertyServiceImpl.java"
click node_amenity_api "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/amenity/controller/AmenityController.java"
click node_amenity_service "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/amenity/service/impl/AmenityServiceImpl.java"
click node_booking_api "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/booking/controller/BookingController.java"
click node_booking_service "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/booking/service/impl/BookingServiceImpl.java"
click node_review_api "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/review/controller/ReviewController.java"
click node_review_service "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/review/service/impl/ReviewServiceImpl.java"
click node_review_store "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/review/repository/ReviewRepository.java"
click node_booking_store "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/booking/repository/BookingRepository.java"
click node_property_store "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/property/repository/PropertyRepository.java"
click node_ownership "https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/shared/util/OwnershipVerifier.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auth_api,node_auth_service,node_user_api,node_user_service toneBlue
class node_property_api,node_property_service,node_amenity_api,node_amenity_service,node_property_store toneAmber
class node_booking_api,node_booking_service,node_review_api,node_review_service,node_review_store,node_booking_store toneMint
class node_ownership toneRose
class node_guest,node_host toneIndigo
```

## Components

### Accounts and access

- [Auth API](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/user/auth/controller/AuthController.java): `backend/src/main/java/com/spring/backend/module/user/auth/controller/AuthController.java`
- [Authentication](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/user/auth/service/impl/AuthServiceImpl.java): `backend/src/main/java/com/spring/backend/module/user/auth/service/impl/AuthServiceImpl.java`
- [User API](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/user/user/controller/UserController.java): `backend/src/main/java/com/spring/backend/module/user/user/controller/UserController.java`
- [User management](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/user/user/service/impl/UserServiceImpl.java): `backend/src/main/java/com/spring/backend/module/user/user/service/impl/UserServiceImpl.java`

### Property management

- [Property API](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/property/controller/PropertyController.java): `backend/src/main/java/com/spring/backend/module/property/property/controller/PropertyController.java`
- [Property management](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/property/service/impl/PropertyServiceImpl.java): `backend/src/main/java/com/spring/backend/module/property/property/service/impl/PropertyServiceImpl.java`
- [Amenity API](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/amenity/controller/AmenityController.java): `backend/src/main/java/com/spring/backend/module/property/amenity/controller/AmenityController.java`
- [Amenity management](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/amenity/service/impl/AmenityServiceImpl.java): `backend/src/main/java/com/spring/backend/module/property/amenity/service/impl/AmenityServiceImpl.java`
- [Property repository](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/property/repository/PropertyRepository.java): `backend/src/main/java/com/spring/backend/module/property/property/repository/PropertyRepository.java`

### Bookings and reviews

- [Booking API](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/booking/controller/BookingController.java): `backend/src/main/java/com/spring/backend/module/property/booking/controller/BookingController.java`
- [Booking workflow](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/booking/service/impl/BookingServiceImpl.java): `backend/src/main/java/com/spring/backend/module/property/booking/service/impl/BookingServiceImpl.java`
- [Review API](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/review/controller/ReviewController.java): `backend/src/main/java/com/spring/backend/module/property/review/controller/ReviewController.java`
- [Review management](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/review/service/impl/ReviewServiceImpl.java): `backend/src/main/java/com/spring/backend/module/property/review/service/impl/ReviewServiceImpl.java`
- [Review repository](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/review/repository/ReviewRepository.java): `backend/src/main/java/com/spring/backend/module/property/review/repository/ReviewRepository.java`
- [Booking repository](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/property/booking/repository/BookingRepository.java): `backend/src/main/java/com/spring/backend/module/property/booking/repository/BookingRepository.java`

### Shared backend

- [Ownership checks](https://github.com/rgrmlbn/staycation-booking-system/blob/main/backend/src/main/java/com/spring/backend/module/shared/util/OwnershipVerifier.java): `backend/src/main/java/com/spring/backend/module/shared/util/OwnershipVerifier.java`

### Other components

- **Guest**
- **Host**

## Connections

- Guest → Booking API: submits requests
- Host → Booking API: submits requests
- Guest → Review API: submits requests
- Host → Property API: manages listings
- Booking API → Booking workflow: delegates
- Review API → Review management: delegates
- Review management → Review repository: reads and writes
- Review management → Booking repository: checks booking
- Review management → Property repository: checks and updates
- Review management → Ownership checks: verifies ownership
