Try before I am out of AWS credits: Hotel Reservation Prediction
This project demonstrates an end-to-end MLOps pipeline for predicting hotel reservations. It includes data ingestion, preprocessing, model training, and deployment. The application is deployed on AWS using EKS and Load Balancer, and it features a Flask-based web interface for user interaction.
- MLOps Pipeline: Automates machine learning workflows.
- Flask Web Application: User-friendly interface for predictions.
- AWS Deployment: Hosted on AWS using EKS and Load Balancer.
- Dockerized Application: Fully containerized for portability.
- CI/CD Pipeline: Seamless integration and deployment with Jenkins and GitHub Actions.
- LightGBM Model: Efficient and accurate predictions.
- Python: Core programming language.
- Flask: Web framework for the application.
- Docker: Containerization for consistent environments.
- AWS: Cloud platform for deployment.
- Jenkins: CI/CD pipeline for automation.
- GitHub Actions: For continuous integration and deployment.
- LightGBM: Machine learning model for predictions.
- Python 3.9+
- Docker
- AWS CLI
- kubectl
- Jenkins (optional for CI/CD)
-
Clone the repository:
git clone https://github.com/your-repo/hotel-reservation-prediction.git cd hotel-reservation-prediction
-
Install dependencies:
pip install -r requirements.txt
-
Build the Docker image:
docker build -t flask-app .
-
Run the Docker container:
docker run -p 5000:5000 flask-app
-
Access the application: Open your browser and navigate to
http://localhost:5000
.
- Push the Docker image to Amazon ECR.
- Deploy the application to an EKS cluster.
- Access the application via the Load Balancer URL.
- DinD Deployment: Used Docker-in-Docker for building and testing the application.
- GitHub Actions: Automated CI/CD pipeline for testing and deployment.
- EKS AWS Deployment: Deployed the Docker image to an AWS EKS cluster for scalability and reliability.
We welcome contributions! To contribute:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Commit your changes and push the branch.
- Open a pull request.
This project is licensed under the MIT License.