How maucarrasz/holbertonschool-airbnb_clone_v4 works
This repository is an early AirBnB/HBnB clone: the documented core is a command interpreter for creating, retrieving, updating, and deleting domain objects, with file or database storage. It also contains Flask web views and a versioned REST API for browsing and managing states, cities, places, users, amenities, and reviews. The graph shows the documented console workflow and relationships visible in the supplied excerpts or README; web and API internals not excerpted are represented at subsystem level, with no guessed call paths.
Main entry points: models Domain entities · console.py Command interpreter · __init__.py Storage selector · file_storage.py JSON storage
Components 15
User interfaces
- Command interpreter
console.py - Dynamic web views
web_dynamic - Flask web views
web_flask
REST API
- API application
api/v1/app.py - Resource routes
api/v1/views - Place reviews
api/v1/views/places_reviews.py
Domain model
- Base model
models/base_model.py - Domain entities
models
Persistence
- JSON storage
models/engine/file_storage.py - MySQL storage
models/engine/db_storage.py - Storage selector
models/__init__.py
Other components
- CLI user
- API client
- JSON file
- MySQL database
Connections 13
- CLI user → Command interpreter: enters commands
- Command interpreter → Domain entities: manages objects
console.py - Command interpreter → JSON storage: persists commands
- API client → API application: sends requests
- API application → Resource routes: registers routes
api/v1/app.py - Resource routes → Domain entities: uses entities
api/v1/views/amenities.py - Place reviews → Domain entities: loads reviews
api/v1/views/places_reviews.py - Domain entities → Base model: inherits from
models/place.py - Base model → Storage selector: saves and deletes
models/base_model.py - Storage selector → JSON storage: selects by config
models/__init__.py - Storage selector → MySQL storage: selects by config
models/__init__.py - JSON storage → JSON file: reads and writes
models/engine/file_storage.py - MySQL storage → MySQL database: queries and commits
models/engine/db_storage.py