Skip to content

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.

License

Notifications You must be signed in to change notification settings

ArpitKadam/Zomato-Delivery-Time-Prediction

Repository files navigation

🍽️ Zomato Delivery Time Prediction


📋 Overview

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.


📑 Table of Contents

  • 🚀 Installation
  • 🛠️ Environment Setup
  • 📊 Dagshub & MLflow Setup
  • 💾 DVC Pipeline
  • 🤖 Model Training and Prediction
  • 🐳 Docker Deployment

📁 Project Structure

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/

🚀 Installation

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

🤝 Contributions

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Submit a pull request

📄 License

This project is licensed under the GPL-3.0 license.


📬 Contact


Made with ❤️ by ArpitKadam

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published