Project Overview

FoodPal was a class project exploring recipe-to-grocery automation: take any recipe, match ingredients to nearby grocery stores, and orchestrate a delivery through DoorDash. The application integrates Spoonacular (recipes), DoorDash (fulfillment), and Google Maps (location matching) to demonstrate multi-API coordination and full-stack web development.

Demo Video

Key Features

  • Unlimited Choice: With access to Spoonacular's extensive database of recipes, you're no longer limited to a fixed set of meals. Find recipes from across the web and bring them to life with ease.
  • Personalized for You: From gluten-free to vegan, the app ensures your dietary restrictions and preferences are always honored.
  • One-Click Grocery Shopping: Select a recipe, and the app takes care of everything—from finding the nearest grocery store to matching ingredients for accurate ordering.
  • Streamlined Delivery: Using advanced APIs and automation, the app not only finds what you need but places the order for you, with real-time tracking of your groceries.

How It Works

The app starts by letting you choose your desired cuisines and dietary preferences. Once selected, the backend uses the Spoonacular API to find recipes tailored to your needs. Browse recipes, select the one you like, and let the app handle the rest:

  1. Fetches detailed instructions and ingredients for your chosen recipe
  2. Uses a DoorDash integration to find nearby grocery stores with your items in stock
  3. Matches each ingredient to the correct category (like "produce" or "meat") for seamless ordering
  4. Uses Google Maps to ensure the closest, most convenient store is selected
  5. Places the order and sends you a tracking link for real-time updates

No subscriptions. No rigid meal plans. Just complete control over what you want to eat, when you want it, with the ultimate convenience of delivery.

Technical Implementation

Flask Spoonacular API DoorDash API Google Maps API WebDriver Python HTML/CSS

Current Status

Live demo is no longer available because the DoorDash integration was only for a test account tied to my personal credentials. Turning this into a production-grade project would require a DoorDash contract and proper authentication flow.

Despite the demo limitations, the technical work demonstrated full-stack capabilities. Here's what went into building the system:

1. Rebuilding the Backend

I had to create a Flask-based backend from scratch to handle requests, process user input, and communicate with the automation system. This includes managing store selections, grocery lists, and formatting data for the frontend.

2. Hosting My Own WebDriver Server

Since external hosting services don't support running WebDriver scripts, I had to turn my old computer into a dedicated server to handle automation. This setup allows FoodPal to process requests dynamically, but I'm still fine-tuning stability and performance to make it more reliable.

3. Overcoming CORS, SSL, and Hosting Challenges

To integrate FoodPal into my website, I had to configure:

  • CORS (Cross-Origin Resource Sharing): Allows secure communication between the frontend and backend
  • SSL Certificates: Supports HTTPS and prevents security warnings
  • Hosting Adjustments: Keeps the system online while managing resource limitations