# small-bears/products architecture

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

- Interactive diagram: https://gitdiagram.com/small-bears/products
- Repository: https://github.com/small-bears/products

## Overview

The repository tree describes a tourism booking and information system: a user-facing Vue app and an administration Vue app call a Spring Boot backend. The main user journey is browsing attractions or hotels and placing bookings; accounts, favorites, comments, forums, travel lines, and site content are additional capabilities. The supplied README describes an unrelated leave-management project, so it is not used to infer product features. Backend controller-to-service links are supported by excerpts or the SOURCE INDEX; frontend-to-backend wiring and unsampled implementation links remain unverified.

Main entry points: [`vue/tourism-admin-frontend/src/api/api.js`](https://github.com/small-bears/products/blob/main/vue/tourism-admin-frontend/src/api/api.js) (Admin API client), [`vue/tourism-user-frontend/src/api/api.js`](https://github.com/small-bears/products/blob/main/vue/tourism-user-frontend/src/api/api.js) (User API client), [`src/main/java/com/shanzhu/tourism/controller/user/UserController.java`](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/user/UserController.java) (User management), [`src/main/java/com/shanzhu/tourism/controller/attractions/SysAttractionsController.java`](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/attractions/SysAttractionsController.java) (Attractions API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_user_app["User frontend"]
  node_user_views["Tourism views"]
  node_user_api["User API client<br/>[api.js]"]
end

subgraph group_admin_app["Admin frontend"]
  node_admin_views["Admin views"]
  node_admin_api["Admin API client<br/>[api.js]"]
end

subgraph group_backend["Backend API"]
  node_login["Login API"]
  node_users["User management"]
  node_attractions["Attractions API"]
  node_attraction_orders["Attraction bookings"]
  node_hotel_orders["Hotel bookings"]
  node_comments["Comments API"]
  node_favorites["Favorites API"]
  node_forums["Forum API"]
  node_lines["Travel lines API"]
  node_rotations["Banners API"]
  node_hotels["Hotel API"]
end

subgraph group_domain["Tourism services"]
  node_user_service["User service<br/>[UserService.java]"]
  node_attractions_service["Attractions service"]
  node_attraction_order_service["Attraction booking service"]
  node_hotel_order_service["Hotel booking service"]
  node_comments_service["Comments service"]
  node_favorites_service["Favorites service"]
  node_forum_service["Forum service"]
  node_line_service["Travel lines service"]
  node_rotations_service["Banners service"]
  node_hotel_service["Hotel service"]
end

node_traveler(("Traveler"))

node_traveler -.->|"uses"| node_user_views
node_user_views -.->|"requests"| node_user_api
node_admin_views -.->|"requests"| node_admin_api
node_user_api -.->|"calls"| node_login
node_user_api -.->|"calls"| node_attractions
node_user_api -.->|"calls"| node_attraction_orders
node_user_api -.->|"calls"| node_hotel_orders
node_user_api -.->|"calls"| node_comments
node_user_api -.->|"calls"| node_favorites
node_user_api -.->|"calls"| node_forums
node_user_api -.->|"calls"| node_lines
node_user_api -.->|"calls"| node_hotels
node_admin_api -.->|"calls"| node_users
node_admin_api -.->|"calls"| node_attractions
node_admin_api -.->|"calls"| node_attraction_orders
node_admin_api -.->|"calls"| node_hotel_orders
node_admin_api -.->|"calls"| node_comments
node_admin_api -.->|"calls"| node_favorites
node_admin_api -.->|"calls"| node_forums
node_admin_api -.->|"calls"| node_lines
node_admin_api -.->|"calls"| node_rotations
node_admin_api -.->|"calls"| node_hotels
node_login -->|"delegates"| node_user_service
node_users -->|"delegates"| node_user_service
node_users -->|"deletes"| node_attraction_order_service
node_users -->|"deletes"| node_comments_service
node_users -->|"deletes"| node_favorites_service
node_users -->|"deletes"| node_hotel_order_service
node_attractions -->|"queries"| node_attractions_service
node_attractions -->|"deletes"| node_attraction_order_service
node_attractions -->|"deletes"| node_comments_service
node_attraction_orders -->|"books"| node_attraction_order_service
node_attraction_orders -->|"updates stock"| node_attractions_service
node_attraction_orders -->|"loads user"| node_user_service
node_hotel_orders -->|"books"| node_hotel_order_service
node_hotel_orders -->|"loads hotel"| node_hotel_service
node_hotel_orders -.->|"updates item"| node_hotel_service
node_comments -->|"delegates"| node_comments_service
node_favorites -->|"delegates"| node_favorites_service
node_forums -->|"delegates"| node_forum_service
node_lines -->|"delegates"| node_line_service
node_rotations -->|"delegates"| node_rotations_service
node_hotels -.->|"delegates"| node_hotel_service

click node_user_views "https://github.com/small-bears/products/tree/main/vue/tourism-user-frontend/src/views"
click node_user_api "https://github.com/small-bears/products/blob/main/vue/tourism-user-frontend/src/api/api.js"
click node_admin_views "https://github.com/small-bears/products/tree/main/vue/tourism-admin-frontend/src/views/system"
click node_admin_api "https://github.com/small-bears/products/blob/main/vue/tourism-admin-frontend/src/api/api.js"
click node_login "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/login/LoginController.java"
click node_users "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/user/UserController.java"
click node_attractions "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/attractions/SysAttractionsController.java"
click node_attraction_orders "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/order/SysAttractionOrderController.java"
click node_hotel_orders "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/hotel/SysHotelOrderController.java"
click node_comments "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/comments/SysCommentsController.java"
click node_favorites "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/favor/SysFavorController.java"
click node_forums "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/forum/SysForumController.java"
click node_lines "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/line/SysLineController.java"
click node_rotations "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/rotations/SysRotationsController.java"
click node_hotels "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/hotel/SysHotelController.java"
click node_user_service "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/UserService.java"
click node_attractions_service "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysAttractionsService.java"
click node_attraction_order_service "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysAttractionOrderService.java"
click node_hotel_order_service "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysHotelOrderService.java"
click node_comments_service "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysCommentsService.java"
click node_favorites_service "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysFavorService.java"
click node_forum_service "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysForumService.java"
click node_line_service "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysLineService.java"
click node_rotations_service "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysRotationsService.java"
click node_hotel_service "https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysHotelService.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_user_views,node_user_api toneBlue
class node_admin_views,node_admin_api toneAmber
class node_login,node_users,node_attractions,node_attraction_orders,node_hotel_orders,node_comments,node_favorites,node_forums,node_lines,node_rotations,node_hotels toneMint
class node_user_service,node_attractions_service,node_attraction_order_service,node_hotel_order_service,node_comments_service,node_favorites_service,node_forum_service,node_line_service,node_rotations_service,node_hotel_service toneRose
class node_traveler toneIndigo
```

## Components

### User frontend

- [Tourism views](https://github.com/small-bears/products/tree/main/vue/tourism-user-frontend/src/views): `vue/tourism-user-frontend/src/views`
- [User API client](https://github.com/small-bears/products/blob/main/vue/tourism-user-frontend/src/api/api.js): `vue/tourism-user-frontend/src/api/api.js`

### Admin frontend

- [Admin views](https://github.com/small-bears/products/tree/main/vue/tourism-admin-frontend/src/views/system): `vue/tourism-admin-frontend/src/views/system`
- [Admin API client](https://github.com/small-bears/products/blob/main/vue/tourism-admin-frontend/src/api/api.js): `vue/tourism-admin-frontend/src/api/api.js`

### Backend API

- [Login API](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/login/LoginController.java): `src/main/java/com/shanzhu/tourism/controller/login/LoginController.java`
- [User management](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/user/UserController.java): `src/main/java/com/shanzhu/tourism/controller/user/UserController.java`
- [Attractions API](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/attractions/SysAttractionsController.java): `src/main/java/com/shanzhu/tourism/controller/attractions/SysAttractionsController.java`
- [Attraction bookings](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/order/SysAttractionOrderController.java): `src/main/java/com/shanzhu/tourism/controller/order/SysAttractionOrderController.java`
- [Hotel bookings](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/hotel/SysHotelOrderController.java): `src/main/java/com/shanzhu/tourism/controller/hotel/SysHotelOrderController.java`
- [Comments API](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/comments/SysCommentsController.java): `src/main/java/com/shanzhu/tourism/controller/comments/SysCommentsController.java`
- [Favorites API](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/favor/SysFavorController.java): `src/main/java/com/shanzhu/tourism/controller/favor/SysFavorController.java`
- [Forum API](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/forum/SysForumController.java): `src/main/java/com/shanzhu/tourism/controller/forum/SysForumController.java`
- [Travel lines API](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/line/SysLineController.java): `src/main/java/com/shanzhu/tourism/controller/line/SysLineController.java`
- [Banners API](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/rotations/SysRotationsController.java): `src/main/java/com/shanzhu/tourism/controller/rotations/SysRotationsController.java`
- [Hotel API](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/controller/hotel/SysHotelController.java): `src/main/java/com/shanzhu/tourism/controller/hotel/SysHotelController.java`

### Tourism services

- [User service](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/UserService.java): `src/main/java/com/shanzhu/tourism/service/UserService.java`
- [Attractions service](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysAttractionsService.java): `src/main/java/com/shanzhu/tourism/service/SysAttractionsService.java`
- [Attraction booking service](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysAttractionOrderService.java): `src/main/java/com/shanzhu/tourism/service/SysAttractionOrderService.java`
- [Hotel booking service](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysHotelOrderService.java): `src/main/java/com/shanzhu/tourism/service/SysHotelOrderService.java`
- [Comments service](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysCommentsService.java): `src/main/java/com/shanzhu/tourism/service/SysCommentsService.java`
- [Favorites service](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysFavorService.java): `src/main/java/com/shanzhu/tourism/service/SysFavorService.java`
- [Forum service](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysForumService.java): `src/main/java/com/shanzhu/tourism/service/SysForumService.java`
- [Travel lines service](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysLineService.java): `src/main/java/com/shanzhu/tourism/service/SysLineService.java`
- [Banners service](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysRotationsService.java): `src/main/java/com/shanzhu/tourism/service/SysRotationsService.java`
- [Hotel service](https://github.com/small-bears/products/blob/main/src/main/java/com/shanzhu/tourism/service/SysHotelService.java): `src/main/java/com/shanzhu/tourism/service/SysHotelService.java`

### Other components

- **Traveler**

## Connections

- Traveler → Tourism views: uses
- Tourism views → User API client: requests (evidence: `vue/tourism-user-frontend/src/views/index/index.vue`)
- Admin views → Admin API client: requests
- User API client → Login API: calls
- User API client → Attractions API: calls
- User API client → Attraction bookings: calls
- User API client → Hotel bookings: calls
- User API client → Comments API: calls
- User API client → Favorites API: calls
- User API client → Forum API: calls
- User API client → Travel lines API: calls
- User API client → Hotel API: calls
- Admin API client → User management: calls
- Admin API client → Attractions API: calls
- Admin API client → Attraction bookings: calls
- Admin API client → Hotel bookings: calls
- Admin API client → Comments API: calls
- Admin API client → Favorites API: calls
- Admin API client → Forum API: calls
- Admin API client → Travel lines API: calls
- Admin API client → Banners API: calls
- Admin API client → Hotel API: calls
- Login API → User service: delegates (evidence: `src/main/java/com/shanzhu/tourism/controller/login/LoginController.java`)
- User management → User service: delegates (evidence: `src/main/java/com/shanzhu/tourism/controller/user/UserController.java`)
- User management → Attraction booking service: deletes (evidence: `src/main/java/com/shanzhu/tourism/controller/user/UserController.java`)
- User management → Comments service: deletes (evidence: `src/main/java/com/shanzhu/tourism/controller/user/UserController.java`)
- User management → Favorites service: deletes (evidence: `src/main/java/com/shanzhu/tourism/controller/user/UserController.java`)
- User management → Hotel booking service: deletes (evidence: `src/main/java/com/shanzhu/tourism/controller/user/UserController.java`)
- Attractions API → Attractions service: queries (evidence: `src/main/java/com/shanzhu/tourism/controller/attractions/SysAttractionsController.java`)
- Attractions API → Attraction booking service: deletes (evidence: `src/main/java/com/shanzhu/tourism/controller/attractions/SysAttractionsController.java`)
- Attractions API → Comments service: deletes (evidence: `src/main/java/com/shanzhu/tourism/controller/attractions/SysAttractionsController.java`)
- Attraction bookings → Attraction booking service: books (evidence: `src/main/java/com/shanzhu/tourism/controller/order/SysAttractionOrderController.java`)
- Attraction bookings → Attractions service: updates stock (evidence: `src/main/java/com/shanzhu/tourism/controller/order/SysAttractionOrderController.java`)
- Attraction bookings → User service: loads user (evidence: `src/main/java/com/shanzhu/tourism/controller/order/SysAttractionOrderController.java`)
- Hotel bookings → Hotel booking service: books (evidence: `src/main/java/com/shanzhu/tourism/controller/hotel/SysHotelOrderController.java`)
- Hotel bookings → Hotel service: loads hotel (evidence: `src/main/java/com/shanzhu/tourism/controller/hotel/SysHotelOrderController.java`)
- Hotel bookings → Hotel service: updates item (evidence: `src/main/java/com/shanzhu/tourism/controller/hotel/SysHotelOrderController.java`)
- Comments API → Comments service: delegates (evidence: `src/main/java/com/shanzhu/tourism/controller/comments/SysCommentsController.java`)
- Favorites API → Favorites service: delegates (evidence: `src/main/java/com/shanzhu/tourism/controller/favor/SysFavorController.java`)
- Forum API → Forum service: delegates (evidence: `src/main/java/com/shanzhu/tourism/controller/forum/SysForumController.java`)
- Travel lines API → Travel lines service: delegates (evidence: `src/main/java/com/shanzhu/tourism/controller/line/SysLineController.java`)
- Banners API → Banners service: delegates (evidence: `src/main/java/com/shanzhu/tourism/controller/rotations/SysRotationsController.java`)
- Hotel API → Hotel service: delegates
