/AirBnB_clone

Team Project

Primary LanguagePython

AirBnB_clone

The goal of the project is to deploy on our server a simple copy of the AirBnB website.

We are not implementing all the features, only some of them to cover all fundamental concepts of the higher level programming track.

After 4 months, we will have a complete web application composed by:

A command interpreter to manipulate data without a visual interface, like in a Shell (perfect for development and debugging). A website (the front-end) that shows the final product to everybody: static and dynamic. A database or files that store data (data = objects) An API that provides a communication interface between the front-end and your data (retrieve, create, delete, update them)

Features

  • command interpreter:

    • What is it: A command line interpreter is any program that allows the entering of commands and then executes those commands to the operating system. It's literally an interpreter of commands.

    • How to start it: To start a command interpreter, you can open the terminal or command prompt on your computer.

    • How to use it: The process of using a command interpreter involves typing commands into the terminal or command prompt and pressing the enter key to execute the command. The command interpreter then processes the command and returns the output to the user.

    • Examples:

      • To list all files in the current directory, type ls on a Unix-based system or dir on a Windows-based system.
      • To change the current directory, type cd followed by the name of the directory you want to change to.
      • To create a new directory, type mkdir followed by the name of the directory you want to create
  • Website

  • Database

  • Api

Lessons Learned

  • 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

Documentation

Python Packages Concept Page

Usage/Examples

Execution

The shell should work like this in interactive mode:

$ ./console.py
(hbnb) help

Documented commands (type help <topic>):
========================================
EOF  help  quit

(hbnb)
(hbnb)
(hbnb) quit
$

But also in non-interactive mode: (like the Shell project in C)

$ echo "help" | ./console.py
(hbnb)

Documented commands (type help <topic>):
========================================
EOF  help  quit
(hbnb)
$
$ cat test_help
help
$
$ cat test_help | ./console.py
(hbnb)

Documented commands (type help <topic>):
========================================
EOF  help  quit
(hbnb)
$

Final Product

Final Product 1

Final Product 2

Authors