Greetings and a warm welcome to the exciting AirBnB clone (Hbnb) project, where we aim to replicate the functionalities and user experience of the renowned AirBnB platform. This venture serves as a hands-on learning opportunity, allowing us to delve into the intricacies of creating a similar platform, including property listings, bookings, and more. Let's embark on this journey of discovery and innovation together!
What exactly is a command interpreter?
Do you recall the concept of the Shell? Well, think of it as similar, but tailored for a particular purpose. In our scenario, we seek to employ this specialized interpreter to effectively oversee and manipulate the various components and objects within our project:
-
Create a new object (ex: a new User or a new Place)
-
Retrieve an object from a file, a database etc…
-
Do operations on objects (count, compute stats, etc…)
-
Update attributes of an object
-
Destroy an object.
-
How to create a Python package
-
How to create a command interpreter in Python using the cmd module
-
What is Unit testing and how to implement it in a large project
-
How to serialize and deserialize a Class
-
How to write and read a JSON file
-
How to manage datetime
-
What is an UUID
-
What is *args and how to use it
-
What is **kwargs and how to use it
-
How to handle named arguments in a function
Your shell should work like this in interactive mode:
$ ./console.py
(hbnb) help
Documented commands (type help <topic>):
========================================
EOF help quit
(hbnb)
(hbnb)
(hbnb) quit
$
But also in non-interactive mode: (like the Shell project in C)
$ echo "help" | ./console.py
(hbnb)
Documented commands (type help <topic>):
========================================
EOF help quit
(hbnb)
$
$ cat test_help
help
$
$ cat test_help | ./console.py
(hbnb)
Documented commands (type help <topic>):
========================================
EOF help quit
(hbnb)
TASKS COMPLETED FOR THIS PROJECT
* 0. README, AUTHORS
* 1. Be pycodestyle compliant!
* 2. Unittests
* 3. BaseModel
* 4. Create BaseModel from dictionary
* 5. Store first object
* 6. Console 0.0.1
* 7. Console 0.1
* 8. First User
* 9. More classes!
* 10. Console 1.0
* 11. All instances by class name
* 12. Count instances
* 13. Show
* 14. Destroy
* 15. Update
* 16. Update from dictionary
* 17. Unittests for the Console! ```