AirBnB

My Console Table of contents

AirBnB

TASK NUMBER LINK TO TASK CODE TASK DESCRIPTION-
[0x00] README Project Documentation
[0x00] Authors Project Authors
[0x01] Be pycodestyle compliant! Beautifully written code that passes the pycodestyle checks
[0x02] Unittests All files, classes, functions have been tested with unit tests, also in Non-interactive mode
[0x03] BaseModel Defines all common attributes/methods for other classes i.e ID, creation, update dates and a method to generate a dictionary representation of an instance
[0x04] Create BaseModel from dictionary Re-creates an instance with the dictionary representation created in the previous task
[0x05] Store first object Re-creates a BaseModel from another one by using a dictionary representation created in task 3, converted the dictionary representation to a JSON string. JSON is a standard representation of a data structure. With this format, humans can read and all programming languages have a JSON reader and writer.
[0x06] Console 0.0.1 Contains the entry point of the command interpreter using the Cmd class from the cmd module, defines the class HBNBCommand and sets the initial methods like quit, EOF and updates the prompt:
[0x07] Console 0.1 Added more methods to the console like updating details, showing details, destroing instances and more
[0x08] First User Created the sub class User that inherits from the BAseModel with unique attribues like email, password, first and last names.
[0x09] More classes! Created the rest of the classes inheriting from BaseModel i.e Amenity, Place, City, State, etc
[0x10] Console 1.0 Updated file storage to manage correctly serialization and deserialization of all our new classes
[0x11] All instances by class name Updated the console to retrieve all instances of a class by using: .all().
[0x12] Count instances Updated the console to retrieve all instances of a class by using: .count().
[0x13] Show Updated the console to retrieve all instances of a class on its ID: .show().

Practising Objectives

Through this project, you will be able to explain to anyone, without the help of Google:

General

What is Unit testing and how to implement it in a large project

What is *args and how to use it

What is **kwargs and how to use it

How to handle named arguments in a function

How to create a MySQL database

How to create a MySQL user and grant it privileges

What ORM

How to map a Python Class to a MySQL table

How to handle 2 different storage engines with the same codebase How to use environment variables

MySQL Table of contents

AirBnB

TASK NUMBER LINK TO TASK CODE TASK DESCRIPTION-
[0x03] MySQL setup development Script that prepares a MySQL server for the project by creating the Database "hbnb_dev_db" and User "hbnb_dev", grants this user all privileges on created database and SELECT rights on "performance_schema.*"
[0x04] MySQL setup development Script that prepares a MySQL server for the project by creating the Database "hbnb_test_db" and User "hbnb_test", grants this user all privileges on created database and SELECT rights on "performance_schema.*"
[0x05] Delete object Added a new public instance method: def delete(self, obj=None): to delete obj from __objects if it’s inside - if obj is equal to None, the method does nothing. Updated the prototype of def all(self) to def all(self, cls=None) - that returns the list of objects of one type of class. R

Practising Objectives

Through this project, you will be able to explain the following to anyone, without the help of Google:

What REST means

What API means

What CORS means

What is an API

What is a REST API

What are other type of APIs

Which is the HTTP method to retrieve resource(s)

Which is the HTTP method to create a resource

Which is the HTTP method to update resource

Which is the HTTP method to delete resource

How to request REST API

API Table of contents

AirBnB

TASK NUMBER LINK TO TASK CODE TASK DESCRIPTION-
[03] Status of the Api API nano framework