Giter Club home page Giter Club logo

airbnb_clone_v2's Introduction

0x02. AirBnB clone - MySQL Group project Python OOP Back-end SQL MySQL ORM SQLAlchemy By: Guillaume Weight: 2 Project to be done in teams of 2 people (your team: matthew Iyamu, Geva-eval Egbe) Project will start Apr 14, 2023 6:00 AM, must end by Apr 20, 2023 6:00 AM Checker was released at Apr 15, 2023 6:00 PM An auto review will be launched at the deadline Background Context 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 Read or watch:

cmd module packages concept page 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 Learning Objectives At the end of this project, you are expected to 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 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 Copyright - Plagiarism You are tasked to come up with solutions for the tasks below yourself to meet with the above learning objectives. You will not be able to meet the objectives of this or any following project by copying and pasting someone else’s work. You are not allowed to publish any content of this project. Any form of plagiarism is strictly forbidden and will result in removal from the program. Requirements 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) Python Unit Tests Allowed editors: vi, vim, emacs All your files should end with a new line All your test files should be inside a folder tests You have to use the unittest module All your test files should be python files (extension: .py) All your test files and folders should start by test_ Your file organization in the tests folder should be the same as your project: ex: for models/base_model.py, unit tests must be in: tests/test_models/test_base_model.py All your tests should be executed by using this command: python3 -m unittest discover tests You can also test file by file by using this command: python3 -m unittest tests/test_models/test_base_model.py 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)') We strongly encourage you to work together on test cases, so that you don’t miss any edge cases SQL Scripts Allowed editors: vi, vim, emacs All your files will be executed on Ubuntu 20.04 LTS using MySQL 8.0 Your files will be executed with SQLAlchemy version 1.4.x All your files should end with a new line All your SQL queries should have a comment just before (i.e. syntax above) All your files should start by a comment describing the task All SQL keywords should be in uppercase (SELECT, WHERE…) A README.md file, at the root of the folder of the project, is mandatory The length of your files will be tested using wc GitHub There should be one project repository per group. If you clone/fork/whatever a partner’s project repository with the same name before the second deadline, you risk a 0% score.

More Info

Comments for your SQL file: $ cat my_script.sql -- first 3 students in the Batch ID=3 -- because Batch 3 is the best! SELECT id, name FROM students WHERE batch_id = 3 ORDER BY created_at DESC LIMIT 3; $

airbnb_clone_v2's People

Contributors

gevalinho avatar iyamumatth avatar

Watchers

 avatar Kostas Georgiou avatar

Forkers

iyamumatth

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.