How iliasamodin/hotel_rental works
This is a FastAPI hotel-reservation backend. Clients use its API to register or authenticate, browse hotels and rooms, and manage bookings; booking services apply domain rules and persist changes through DAOs. The README also identifies Redis caching and Celery notifications/cache warm-up as product capabilities. The sampled source confirms service-to-DAO work, booking email dispatch, and application registration of integrations; unsampled endpoint wiring is shown only at the router level, and monitoring internals are not inferred.
Main entry points: main.py FastAPI application · router.py Versioned router · session.py SQL database · service.py Booking service
Components 21
HTTP API
- FastAPI application
app/main.py - Versioned router
app/adapters/primary/api/version_1/router.py - Authorization endpoints
app/adapters/primary/api/version_1/authorization/endpoints.py - Booking endpoints
app/adapters/primary/api/version_1/bookings/endpoints.py - Resource endpoints
app/adapters/primary/api/version_1/resource_manager/endpoints.py
Domain services
- Authorization service
app/core/services/authorization/service.py - Booking service
app/core/services/bookings/service.py - Resource service
app/core/services/resource_manager/service.py - Booking rules
app/core/domain/bookings/booking_domain.py
Persistence
- Authorization DAO
app/adapters/secondary/db/dao/authorization/dao.py - Booking DAO
app/adapters/secondary/db/dao/bookings/dao.py - Resource DAO
app/adapters/secondary/db/dao/resource_manager/dao.py - SQL database
app/adapters/secondary/db/session.py
Runtime integrations
- Redis cache control
app/utils/redis/redis_controller.py - Celery task control
app/utils/celery/celery_controller.py - Background tasks
app/utils/celery/tasks.py
Operations
- Admin panel
app/utils/admin_panel/admin_controller.py - Prometheus instrumentation
app/utils/prometheus/instrumentator.py
Other components
- API client
- Redis
- Email service
Connections 21
- API client → FastAPI application: sends requests
- FastAPI application → Versioned router: registers routes
- Versioned router → Authorization endpoints: dispatches
- Versioned router → Booking endpoints: dispatches
- Versioned router → Resource endpoints: dispatches
- Authorization service → Authorization DAO: reads and writes
- Booking service → Booking DAO: reads and writes
- Resource service → Resource DAO: queries
- Booking service → Booking rules: applies rules
- Authorization DAO → SQL database: queries
- Booking DAO → SQL database: queries
- Resource DAO → SQL database: queries
- FastAPI application → Redis cache control: registers app
- Redis cache control → Redis: caches responses
- Booking service → Background tasks: dispatches email task
- Background tasks → Email service: sends notifications
- Celery task control → Background tasks: enables tasks
- Redis cache control → FastAPI application: warms cache via HTTP
- FastAPI application → Admin panel: registers admin
- Admin panel → SQL database: serves model views
- FastAPI application → Prometheus instrumentation: instruments and exposes