This project predicts food delivery time using machine learning techniques based on customer location, restaurant distance, weather, and order details. It employs a full ML pipeline including DVC for data versioning, MLflow for experiment tracking, Docker for containerization, and deployment-ready Flask endpoints.
- 🚀 Installation
- 🛠️ Environment Setup
- 📊 Dagshub & MLflow Setup
- 💾 DVC Pipeline
- 🤖 Model Training and Prediction
- 🐳 Docker Deployment
Click to expand/collapse
Zomato-Delivery-Time-Prediction/
├── README.md
├── LICENSE
├── Dockerfile
├── .dockerignore
├── .dvcignore
├── app.py
├── main.py
├── requirements.txt
├── setup.py
├── template.py
├── init.py
│
├── Artifacts/
│ ├── Data_Ingestion/
│ ├── Data_Transformation/
│ └── Model_Training/
│
├── batch_prediction/
│ ├── raw_input/
│ ├── feature_eng/
│ ├── transformed/
│ ├── prediction_csv/
│ └── uploaded_csv/
│
├── Research/
│ └── research.ipynb
│
├── templates/
│ └── *.html
│
├── src/
│ ├── components/
│ ├── configuration/
│ ├── constants/
│ ├── exception/
│ ├── logger/
│ ├── pipeline/
│ └── utils/
git clone https://github.com/ArpitKadam/Zomato-Delivery-Time-Prediction.git
cd Zomato-Delivery-Time-Prediction
python -m venv venv
venv\Scripts\activate # or source venv/bin/activate (Linux/Mac)
pip install -r requirements.txt
📊 Dagshub & MLflow Setup
# init dagshub tracking
from dagshub import dagshub_logger
dagshub_logger.init("Zomato-Delivery-Time-Prediction", "ArpitKadam", mlflow=True)
# set tracking URI for MLflow
import os
os.environ["MLFLOW_TRACKING_URI"] = "https://dagshub.com/ArpitKadam/Zomato-Delivery-Time-Prediction.mlflow"
os.environ["MLFLOW_TRACKING_USERNAME"] = "ArpitKadam"
os.environ["MLFLOW_TRACKING_PASSWORD"] = "<your_token>"
💾 DVC Pipeline Run Stages
dvc repro
Push to Remote
dvc remote add -d dagshub https://dagshub.com/ArpitKadam/Zomato-Delivery-Time-Prediction.dvc
dvc remote modify dagshub user ArpitKadam
dvc remote modify dagshub password <your_token>
dvc push
🤖 Model Training & Prediction
python main.py # for training pipeline
python src/pipeline/batch.py # for batch prediction
python app.py # Flask web interface
🐳 Docker Deployment Build & Run Locally
docker build -t zomato-delivery-app .
docker run -p 5000:5000 zomato-delivery-app
Docker Hub
docker tag zomato-delivery-app <your-username>/zomato-delivery-app
docker push <your-username>/zomato-delivery-app
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Submit a pull request
This project is licensed under the GPL-3.0 license.
- Email: [email protected]
- GitHub: ArpitKadam
- Personal: ArpitKadam