Air bnb clone the console

The console- Resources:

Python packages AirBnB clone

cmd module cmd module in depth uuid module datetime unittest module args/kwargs Python test cheatsheet cmd module wiki page python unittest

General 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

Web Static- Resources:

HTML/CSS The trinity of front-end quality

Learn to Code HTML & CSS (until “Creating Lists” included) Inline Styles in HTML Specifics on CSS Specificity CSS SpeciFishity Introduction to HTML CSS MDN center boxes

General What is HTML How to create an HTML page What is a markup language What is the DOM What is an element / tag What is an attribute How does the browser load a webpage What is CSS How to add style to an element What is a class What is a selector How to compute CSS Specificity Value What are Box properties in CSS

MySQL-

Environment variables will be your best friend for this project!

HBNB_ENV: running environment. It can be “dev” or “test” for the moment (“production” soon!) HBNB_MYSQL_USER: the username of your MySQL HBNB_MYSQL_PWD: the password of your MySQL HBNB_MYSQL_HOST: the hostname of your MySQL HBNB_MYSQL_DB: the database name of your MySQL HBNB_TYPE_STORAGE: the type of storage used. It can be “file” (using FileStorage) or db (using DBStorage)

Resources:

cmd module unittest module args/kwargs SQLAlchemy tutorial How To Create a New User and Grant Permissions in MySQL Python3 and environment variables SQLAlchemy MySQL 8.0 SQL Statement Syntax

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 means 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

Deploy Static- Resources:

CI/CD AirBnB clone

How to use Fabric How to use Fabric in Python Fabric and command line options Nginx configuration for beginners Difference between root and alias on NGINX Fabric for Python 3 Fabric Documentation

General What is Fabric How to deploy code to a server easily What is a tgz archive How to execute Fabric command locally How to execute Fabric command remotely How to transfer files with Fabric How to manage Nginx configuration What is the difference between root and alias in a Nginx configuration

Install Software: Fabric for Python 3 - version 1.14.post1: $ pip3 uninstall Fabric $ sudo apt-get install libffi-dev $ sudo apt-get install libssl-dev $ sudo apt-get install build-essential $ sudo apt-get install python3.4-dev $ sudo apt-get install libpython3-dev $ pip3 install pyparsing $ pip3 install appdirs $ pip3 install setuptools==40.1.0 $ pip3 install cryptography==2.8 $ pip3 install bcrypt==3.1.7 $ pip3 install PyNaCl==1.3.0 $ pip3 install Fabric3==1.14.post1

Web Framework: Resources:

What is a Web Framework? A Minimal Application Routing (except “HTTP Methods”) Rendering Templates Synopsis Variables Comments Whitespace Control List of Control Structures (read up to “Call”) Flask Jinja

Playlist for getting started with flask

General What is a Web Framework How to build a web framework with Flask How to define routes in Flask What is a route How to handle variables in a route What is a template How to create a HTML response in Flask by using a template How to create a dynamic template (loops, conditions…) How to display in HTML data from a MySQL database

Install Software: Flask: $ pip3 install Flask

RESTful API-

Resources:

REST API AirBnB clone

Learn REST: A RESTful Tutorial Designing a RESTful API with Python and Flask HTTP access control (CORS) Flask cheatsheet What are Flask Blueprints, exactly? Flask Modular Applications with Blueprints Flask tests Flask-CORS

General 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

AirBnB_clone_v4:

Resources:

Selector Get and set content Manipulate CSS classes Manipulate DOM elements Document ready Introduction GET & POST request HTTP access control (CORS)

General How cool it is to request your own API How to modify an HTML element style How to get and update an HTML element content How to modify the DOM How to make a GET request with JQuery Ajax How to make a POST request with JQuery Ajax How to listen/bind to DOM events How to listen/bind to user events

More Info Import JQuery

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> Before starting the project… You will work on a codebase using Flasgger, you will need to install it locally first before starting the RestAPI:

$ sudo apt-get install -y python3-lxml $ sudo pip3 install flask_cors # if it was not installed yet $ sudo pip3 install flasgger

If the RestAPI is not starting, please read the error message. Based on the(ses) error message(s), you will have to troubleshoot potential dependencies issues.

Here some solutions:

jsonschema exception $ sudo pip3 uninstall -y jsonschema $ sudo pip3 install jsonschema==3.0.1

No module named 'pathlib2' $ sudo pip3 install pathlib2

fork code base