This project is an AI chatbot application for Chick-fil-A restaurants, developed as a senior design project (CS 4485) for Computer Science majors at The University of Texas at Dallas. The following members contributed to this project:
The project is organized into two main subdirectories:
backend: Contains the Flask API, NLP scripts, and database scriptsfrontend: Contains the React application
Both subdirectories have their own Dockerfiles for containerization.
Before running the application, ensure you have the following:
- Docker and Docker Compose installed on your system
- Required API keys and secrets:
- Google Dialogflow credentials
- MongoDB URI
To run the application:
- Clone this repository
- Navigate to the project's root directory
- Set up the required environment variables (see "Environment Variables" section below)
- Run the following command:
docker compose up --buildThis command will build and start both the backend and frontend containers.
Create a .env file in the project root directory with the following variables:
URI-MONGODB="your MongoDB URI"
GOOGLE_APPLICATION_CREDENTIALS="path to your Dialogflow credentials json file"
SESSION_ID="your randomly generated session ID"
Replace the placeholder values with your actual API keys and secrets.
The backend is built using Flask and serves as the API for the chatbot. It interacts with:
- Google Dialogflow for natural language processing
- MongoDB to store and query the restaurant menu
The frontend is a React application that provides the user interface for interacting with the chatbot.
The restaurant menu is stored in a MongoDB table, which is queried by the backend during the runtime of the application.
This project is part of UTD's senior design course for computer science and software engineering majors. No external contributions will be accepted.
