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