A first full Web Application group project at Holberton School. The goal of the project is to deploy on our server a simple copy of the AirBnB website.
The learning aims of this project is to consolidate our knowledge and skills in Python and OOP, to learn HTML/CSS, database storage, API, front-end integration and networking basics.
This project doesn' implement all the AirBNB features, only some of them to cover all fundamental concepts of the higher level programming track.
- 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
- 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
- A command interpreter to manipulate data without a visual interface, like in a Shell (perfect for development and debugging). Allows to:
- create your data model
- manage (create, update, destroy, etc) objects via a console / command interpreter
- store and persist objects to a file (JSON file)
- A website (the front-end) that shows the final product to everybody: static and dynamic
- Static:
- learn HTML/CSS
- create the HTML of our application
- create template of each object
- Dynamic:
- learn JQuery
- load objects from the client side by using your own RESTful API
- Static:
- A database (MySQL) or files that store data (data = objects)
- An API (RESTful API) that provides a communication interface between the front-end and your data (retrieve, create, delete, update them)