Holbertonbnb is a full-stack web application that replicates the search and filter features of Airbnb. It incorporates a dynamic HTML5/CSS3/jQuery front-end with a MySQL database and Flask RESTful API.
It runs on three Amazon EC2 instances (1 load balancer, 2 applications servers with a replication/master database setup) It utilizes NGINX as a web server,
HAProxy for loadbalancing, and gunicorn as the application server.
As a first-year project at ALX, Holbertonbnb was developed over the course of two months and four versions, which are listed below:
The project involved working with pre-existing codebases and collaborating with different cohort mates on each iteration.
This repository is a duplicate of AirBnB_clone_v4. However, I have streamlined and organized it, removing extraneous code and improving the front-end. In addition, I created a new Fabric script to automate 90% of the program's deployment, and implemented a new feature - the web console.
- 
Models class system built in Python.
 - 
Python console to manage back-end models
 - 
Flask web application server rendering HTML templates with Jinja2
 - 
RESTful Flask API
- Source code
 - Documentation
 - Swagger documentation - miniairbnb.gq/apidocs
 
 - 
Automatic deployment script.
 - 
Test suit
 
Application:
| Tool/Library | Version | 
|---|---|
| Python | ^3.6.4 | 
| MySQL | ^5.6.0 | 
| Flask | ^1.0.3 | 
| flasgger | ^0.9.2 | 
| Flask-Cors | ^3.0.8 | 
| Flask-socketio | ^5.0.0 | 
| mysqlclient | ^1.3.10 | 
| SQLAlchemy | ^1.3.5 | 
View the complete list of app dependencies in the requirements.txt.
Deployment:
| Tool/Library | Version | 
|---|---|
| Python | ^3.7.3 | 
| gunicorn | ^19.9.0 | 
| Fabric | ^2.4.0 | 
Comprehensive documentation to assist with understanding and using the application can be found here
- Chigozirim Igweamaka - <iChigozirim>
 
This project is licensed under the MIT License - see the LICENSE file for details

