Group project
Python
OOP
Back-end
SQL
MySQL
ORM
SQLAlchemy
At the end of this project, you are expected to be able to explain to anyone, without the help of Google:
- 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
- Python Scripts
- Allowed editors:
vi, vim, emacs
- All your files will be interpreted/compiled on Ubuntu
20.04
LTS using python3 (version 3.8.5) - All your files should end with a new line
- The first line of all your files should be exactly
#!/usr/bin/python3
- A
README.md
file, at the root of the folder of the project, is mandatory - Your code should use the pycodestyle (version
2.8.*
) - All your files must be executable
- The length of your files will be tested using
wc
- All your modules should have documentation (
python3 -c 'print(__import__("my_module").__doc__)'
) - All your classes should have documentation (
python3 -c 'print(__import__("my_module").MyClass.__doc__)'
) - All your functions (inside and outside a class) should have documentation (python3 -c 'print(import("my_module").my_function.doc)' and
python3 -c
'print(__import__("my_module").MyClass.my_function.__doc__)'
) - A documentation is not a simple word, it’s a real sentence explaining what’s the purpose of the module, class or method (the length of it will be verified)
This is the first step towards building your first full web application: the AirBnB clone. The aim of the project is to deploy a replica of the Airbnb Website using my server. The final version of this project will have:
A command interpreter to manipulate data without a visual interface, like a shell (for development and debugging)
A website (front-end) with static and dynamic functionalities
A comprehensive database to manage the backend functionalities
An API that provides a communication interface between the front and backend of the system.
- replace the file storage by a Database storage
- map your models to a table in database by using an O.R.M.
- Egbuta Godslove
- Onyekachi Johnpaul