AirBnB_clone_v2

Project Title

Short description of your project.

Table of Contents

Introduction

Briefly introduce the purpose and goals of the project.

Environment Variables

List and explain the environment variables used in the project.

  • HBNB_ENV: Running environment (dev, test, production).
  • HBNB_MYSQL_USER: MySQL username.
  • HBNB_MYSQL_PWD: MySQL password.
  • HBNB_MYSQL_HOST: MySQL hostname.
  • HBNB_MYSQL_DB: MySQL database name.
  • HBNB_TYPE_STORAGE: Type of storage used (file or db).

Requirements

Python Scripts

  • Allowed Editors: vi, vim, emacs
  • Interpreter/Compiler: Ubuntu 20.04 LTS using python3 (version 3.8.5)
  • File Endings: All files should end with a new line
  • First Line: #!/usr/bin/python3
  • README.md: A mandatory README file at the root of the project folder
  • Code Style: Use pycodestyle (version 2.8.*)
  • Executable Files: All files must be executable
  • File Length: Will be tested using wc
  • Documentation: All modules, classes, and functions should have documentation

Python Unit Tests

  • Allowed Editors: vi, vim, emacs
  • File Endings: All files should end with a new line
  • File Organization: Test files in a folder named tests, following the project structure
  • Test Module: Use the unittest module
  • File Naming: Test files and folders should start with test_
  • Execution: All tests should be executed using python3 -m unittest discover tests
  • Documentation: All modules, classes, and functions should have documentation

SQL Scripts

  • Allowed Editors: vi, vim, emacs
  • Execution Environment: Ubuntu 20.04 LTS using MySQL 8.0
  • SQLAlchemy Version: 1.4.x
  • File Endings: All files should end with a new line
  • Commenting: All SQL queries should have a comment just before
  • Keywords: All SQL keywords should be in uppercase (e.g., SELECT, WHERE)
  • README.md: A mandatory README file at the root of the project folder
  • File Length: Will be tested using wc

GitHub

  • Repository: One project repository per group
  • Cloning: Be cautious about cloning, forking, etc., to avoid score penalties

Usage

Provide instructions on how to use and run your project.

File Structure

Explain the organization of your project files and directories.

Dependencies

List any external dependencies or libraries required for your project.

Installation

Provide installation instructions for your project.

Configuration

Explain any configuration steps or requirements for the project.

Unit Testing

Explain how to run unit tests and any considerations for testing.

SQL Database

Provide information on setting up and managing the MySQL database.

Contributing

Guidelines for contributing to the project.

License

State the license under which your project is released.