Food Chatbot UI Screenshot

Food Ordering Chatbot

Conversational interface using Dialogflow, FastAPI, and MySQL

Try Live Demo

Project Objective

Many hotel websites offer static menus and basic forms. This project replaces that with a smart chatbot that allows users to place, modify, and track food orders using natural language. It eliminates the need for manual browsing or calling support.

Problem Statement

Static food ordering systems come with three key limitations:

  • Users must browse menus manually, often leading to drop-offs
  • Every menu update needs developer involvement
  • Order tracking or cancellation requires staff support

This increases friction for users and overhead for businesses. A scalable and intuitive solution was needed.

Solution Breakdown

Dialogflow (NLP)

Detects user intent and manages conversational context. Triggers webhook calls to FastAPI.

FastAPI Backend

Acts as middleware. Handles logic for menu items, cart session, order status, and cancellation.

MySQL Database

Stores menu and order data. Uses stored procedures to ensure atomic transactions and rollback safety.

Core Features

Natural Language Orders

Users place, edit, and cancel food orders with plain English commands.

Dynamic Menu from DB

Menus are loaded directly from the database. No frontend deployment needed for changes.

Order Tracking

Users can check order status with a unique order ID.

Session-Based Cart

Temporary cart lets users build an order over multiple messages.

Architecture Overview

Dialogflow captures user intent → FastAPI processes logic → MySQL stores and retrieves order data. The entire flow is stateless and scalable for future features like payments or voice input.

System Architecture Diagram

CI/CD & Deployment

Local development is done with `uvicorn main:app` tunneled through Cloudflare. The full app is deployed on Render with SSL, and GitHub Actions handles test and deployment automation.

Links & Resources

GitHub Repository Live Chatbot Demo