How ulric-r/hotel-1 works
Hôtel Nature is a hotel website with a protected content-management admin and a FastAPI backend. Visitors browse accommodation and hotel content, inspect rooms, then enter a reservation flow; administrators manage site collections and reservation records. The README documents API routing, proxy authentication, uploads and offline editing. Sampled code confirms room loading, room-detail navigation, admin data loading/deletion and storage calls; unsampled feature wiring is shown only where documented, with uncertain links omitted.
Main entry points: App.tsx App entry · AdminApp.tsx Admin dispatcher · main.py FastAPI routes · api.ts API client
Components 23
Public website
- App entry
src/App.tsx - Room browsing
src/components/Rooms.tsx - Room details
src/components/RoomDetailModal.tsx - Reservation flow
src/components/ReservationModal.tsx - Hotel content
src/components - Room fallback
src/data/rooms.ts - Route state
src/lib/router.ts - API data hook
src/lib/useApi.ts
Admin management
- Admin dispatcher
src/admin/AdminApp.tsx - Admin dashboard
src/admin/Dashboard.tsx - Collection editors
src/admin - Reservation editor
src/admin/ReservationsAdmin.tsx - Admin UI tools
src/admin/ui.tsx
API and persistence
- API client
src/lib/api.ts - FastAPI routes
backend/app/main.py - Data schemas
backend/app/models.py - Collection storage
backend/app/storage.py - SQL database
backend/app/db.py - Image uploads
backend/app/main.py
Proxy and access
- Nginx proxy
nginx/nginx.conf
Other components
- Visitor
- Administrator
- Browser
Connections 29
- Visitor → Browser: uses
- Browser → Nginx proxy: requests site
- Nginx proxy → App entry: serves SPA
- Nginx proxy → FastAPI routes: proxies API
- Administrator → Browser: uses admin
- Nginx proxy → Admin dispatcher: protects admin
- App entry → Route state: checks route
- App entry → Admin dispatcher: dispatches admin
- App entry → API data hook: loads rooms
- API data hook → API client: calls loader
- API data hook → Room fallback: falls back
- App entry → Room browsing: renders
- App entry → Hotel content: renders
- App entry → Room details: opens details
- Room details → App entry: selects room
- App entry → Reservation flow: opens reservation
- Reservation flow → API client: submits request
- Admin dispatcher → Admin dashboard: dispatches
- Admin dispatcher → Collection editors: dispatches
- Admin dispatcher → Reservation editor: dispatches
- Collection editors → API data hook: loads data
- Collection editors → API client: saves changes
- Collection editors → Admin UI tools: uses controls
- Reservation editor → API client: manages records
- API client → FastAPI routes: HTTP requests
- FastAPI routes → Data schemas: validates payloads
- FastAPI routes → Collection storage: reads and writes
- Collection storage → SQL database: SQL operations
- FastAPI routes → Image uploads: handles images