# fantasticlbp/hotels architecture

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

- Interactive diagram: https://gitdiagram.com/fantasticlbp/hotels
- Repository: https://github.com/fantasticlbp/hotels

## Overview

住哪儿 is an iOS hotel discovery and booking app. Its principal journey is to search or browse hotels, inspect a hotel and room, submit a booking, then review orders; payment is explicitly unavailable. The README also describes themed and featured recommendations, shake-based recommendations, location and map navigation, sharing, and persisted user information. Relationships below follow that documented workflow; source excerpts are mostly framework headers, so detailed controller-to-controller calls cannot be verified.

Main entry points: [`住哪儿/Class/Main/酒店/Controller/HotelDetailVC.h`](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/Controller/HotelDetailVC.h) (Hotel details), [`住哪儿/Class/Main/首页/Viewcontroller/HomeViewController.h`](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%A6%96%E9%A1%B5/Viewcontroller/HomeViewController.h) (Home search), [`住哪儿/Class/Main/首页/Viewcontroller/SearchHotelVC.h`](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%A6%96%E9%A1%B5/Viewcontroller/SearchHotelVC.h) (Hotel search), [`住哪儿/Class/Main/发现/ViewController/TopicHotelListVCViewController.h`](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E5%8F%91%E7%8E%B0/ViewController/TopicHotelListVCViewController.h) (Featured hotels)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Hotel discovery"]
  node_home["Home search"]
  node_search["Hotel search<br/>[SearchHotelVC.h]"]
  node_city["City selection"]
  node_discovery["Featured hotels"]
  node_shake["Shake recommendation"]
  node_hotel["Hotel details<br/>[HotelDetailVC.h]"]
  node_room["Room availability<br/>[HotelRoomPriceVC.h]"]
  node_location["Location services<br/>[LocationManager.h]"]
  node_maps["Map navigation"]
  node_sharing["Hotel sharing<br/>[ShareView.h]"]
end

subgraph group_booking["Booking and orders"]
  node_booking["Booking details<br/>[HotelOrderFillVC.h]"]
  node_payment["Payment screen"]
  node_orders["Order history"]
  node_orderresult["Booking result"]
end

subgraph group_account["Account and app shell"]
  node_profile["User profile"]
  node_userstate["User persistence<br/>[UserManager.h]"]
  node_appshell["App navigation"]
end

subgraph group_platform["Shared platform"]
  node_network["Network access<br/>[AFNetPackage.h]"]
end

node_traveler(("Traveler"))

node_traveler -->|"starts search"| node_home
node_home -->|"searches hotels"| node_search
node_search -.->|"sets city"| node_city
node_traveler -->|"browses themes"| node_discovery
node_traveler -->|"shakes for picks"| node_shake
node_home -.->|"opens hotel"| node_hotel
node_discovery -.->|"opens hotel"| node_hotel
node_shake -.->|"recommends hotel"| node_hotel
node_hotel -.->|"views rooms"| node_room
node_room -.->|"starts booking"| node_booking
node_booking -.->|"continues booking"| node_payment
node_payment -.->|"shows result"| node_orderresult
node_traveler -->|"checks orders"| node_orders
node_traveler -->|"uses location"| node_location
node_location -->|"supports navigation"| node_maps
node_hotel -.->|"shares hotel"| node_sharing
node_profile -->|"persists information"| node_userstate
node_appshell -.->|"hosts app screens"| node_home
node_search -.->|"fetches results"| node_network

click node_home "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%A6%96%E9%A1%B5/Viewcontroller/HomeViewController.h"
click node_search "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%A6%96%E9%A1%B5/Viewcontroller/SearchHotelVC.h"
click node_city "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/JFCityViewController/JFCityViewController.h"
click node_discovery "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E5%8F%91%E7%8E%B0/ViewController/TopicHotelListVCViewController.h"
click node_shake "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E6%91%87%E4%B8%80%E6%91%87/controller/ShakeViewController.h"
click node_hotel "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/Controller/HotelDetailVC.h"
click node_room "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/Controller/HotelRoomPriceVC.h"
click node_location "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Others/utils/LocationManager.h"
click node_booking "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/Controller/HotelOrderFillVC.h"
click node_payment "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/Controller/PayOrderViewController.h"
click node_orders "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E8%AE%A2%E5%8D%95/OrderViewController.h"
click node_orderresult "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E8%AE%A2%E5%8D%95/ViewController/OrderResultViewController.h"
click node_profile "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E6%88%91%E7%9A%84/ViewController/PersonInfoViewController.h"
click node_userstate "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Others/utils/UserManager.h"
click node_appshell "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Others/Main/MainViewController.h"
click node_network "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Others/utils/AFNetPackage.h"
click node_sharing "https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/View/ShareView.h"

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_home,node_search,node_city,node_discovery,node_shake,node_hotel,node_room,node_location,node_maps,node_sharing toneBlue
class node_booking,node_payment,node_orders,node_orderresult toneAmber
class node_profile,node_userstate,node_appshell toneMint
class node_network toneRose
class node_traveler toneIndigo
```

## Components

### Hotel discovery

- [Home search](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%A6%96%E9%A1%B5/Viewcontroller/HomeViewController.h): `住哪儿/Class/Main/首页/Viewcontroller/HomeViewController.h`
- [Hotel search](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%A6%96%E9%A1%B5/Viewcontroller/SearchHotelVC.h): `住哪儿/Class/Main/首页/Viewcontroller/SearchHotelVC.h`
- [City selection](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/JFCityViewController/JFCityViewController.h): `住哪儿/Class/Main/酒店/JFCityViewController/JFCityViewController.h`
- [Featured hotels](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E5%8F%91%E7%8E%B0/ViewController/TopicHotelListVCViewController.h): `住哪儿/Class/Main/发现/ViewController/TopicHotelListVCViewController.h`
- [Shake recommendation](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E6%91%87%E4%B8%80%E6%91%87/controller/ShakeViewController.h): `住哪儿/Class/Main/摇一摇/controller/ShakeViewController.h`
- [Hotel details](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/Controller/HotelDetailVC.h): `住哪儿/Class/Main/酒店/Controller/HotelDetailVC.h`
- [Room availability](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/Controller/HotelRoomPriceVC.h): `住哪儿/Class/Main/酒店/Controller/HotelRoomPriceVC.h`
- [Location services](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Others/utils/LocationManager.h): `住哪儿/Class/Others/utils/LocationManager.h`
- **Map navigation**
- [Hotel sharing](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/View/ShareView.h): `住哪儿/Class/Main/酒店/View/ShareView.h`

### Booking and orders

- [Booking details](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/Controller/HotelOrderFillVC.h): `住哪儿/Class/Main/酒店/Controller/HotelOrderFillVC.h`
- [Payment screen](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E9%85%92%E5%BA%97/Controller/PayOrderViewController.h): `住哪儿/Class/Main/酒店/Controller/PayOrderViewController.h`
- [Order history](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E8%AE%A2%E5%8D%95/OrderViewController.h): `住哪儿/Class/Main/订单/OrderViewController.h`
- [Booking result](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E8%AE%A2%E5%8D%95/ViewController/OrderResultViewController.h): `住哪儿/Class/Main/订单/ViewController/OrderResultViewController.h`

### Account and app shell

- [User profile](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Main/%E6%88%91%E7%9A%84/ViewController/PersonInfoViewController.h): `住哪儿/Class/Main/我的/ViewController/PersonInfoViewController.h`
- [User persistence](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Others/utils/UserManager.h): `住哪儿/Class/Others/utils/UserManager.h`
- [App navigation](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Others/Main/MainViewController.h): `住哪儿/Class/Others/Main/MainViewController.h`

### Shared platform

- [Network access](https://github.com/fantasticlbp/hotels/blob/master/%E4%BD%8F%E5%93%AA%E5%84%BF/Class/Others/utils/AFNetPackage.h): `住哪儿/Class/Others/utils/AFNetPackage.h`

### Other components

- **Traveler**

## Connections

- Traveler → Home search: starts search
- Home search → Hotel search: searches hotels
- Hotel search → City selection: sets city
- Traveler → Featured hotels: browses themes
- Traveler → Shake recommendation: shakes for picks
- Home search → Hotel details: opens hotel
- Featured hotels → Hotel details: opens hotel
- Shake recommendation → Hotel details: recommends hotel
- Hotel details → Room availability: views rooms
- Room availability → Booking details: starts booking
- Booking details → Payment screen: continues booking
- Payment screen → Booking result: shows result
- Traveler → Order history: checks orders
- Traveler → Location services: uses location
- Location services → Map navigation: supports navigation
- Hotel details → Hotel sharing: shares hotel
- User profile → User persistence: persists information
- App navigation → Home search: hosts app screens
- Hotel search → Network access: fetches results
