RecipeFind helps you discover delicious recipes that match your dietary restrictions while using ingredients that are currently on sale at nearby Canadian grocery stores. Built with AI agents to make eating affordable, healthy, and enjoyable.
Eating food that is affordable, healthy, and enjoyable can be challenging. As students, it is especially hard to find meals that keep both you and your wallet healthy. RecipeFind was inspired by this problem. It helps users select nearby grocery stores and discover recipes that match their dietary restrictions while using ingredients that are currently on sale.
RecipeFind parses weekly flyers from many Canadian grocery stores to find deals on a wide variety of ingredients. It then leverages AI to generate recipes that use these discounted items while respecting the user's dietary restrictions.
RecipeFind uses Yellowcake to parse multiple grocery store websites and extract weekly deals. This data is exposed as a tool to Solace's Agent Mesh, which coordinates several agents responsible for generating recipes and filtering them based on dietary needs.
- Frontend: React, Vite, TailwindCSS
- Backend: Solace Agent Mesh (SAM), Python
- Data Parsing: Yellowcake
- Caching: Redis
- Containerization: Docker, Docker Compose
- Docker and Docker Compose
- Node.js and npm (for local frontend development)
- Yellowcake API key
-
Navigate to the backend directory:
cd backend -
Copy the example environment file and configure it:
cp .env.example .env
-
Edit the
.envfile and add your Yellowcake API key:YELLOW_CAKE_KEY=your_api_key_here
-
Start the backend services (Solace Agent Mesh and Redis):
docker compose up --build
This will start:
- Redis cache on port 6379
- Solace Agent Mesh on ports 8000 (HTTP), 8001 (Platform API), 5002 (Web UI), and 8080 (REST API)
-
Open a new terminal and navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Copy the example environment file:
cp .env.example .env
-
Start the development server:
npm run dev
The frontend will be available at
http://localhost:5173
- Open your browser and navigate to
http://localhost:5173 - Select your preferred Canadian grocery stores
- Specify any dietary restrictions (vegetarian, vegan, gluten-free, etc.)
- Click "Find Recipes" to discover recipes that use ingredients currently on sale
- Browse AI-generated recipes that match your preferences and budget
Using agents throughout the entire stack, from website parsing to recipe generation, introduced significant latency. We were able to reduce processing time by about 50 percent by caching parsed flyer data in a Redis database, which greatly improved the speed of finding items on sale.
We built a very usable application that could genuinely help people like ourselves make better food choices on a budget.
During the hackathon, we became more familiar with new offerings from Solace and Yellowcake. We also gained additional experience working with Docker Compose, including running both the Solace Agent Mesh and a Redis container together.
.
├── backend/ # Solace Agent Mesh backend
│ ├── src/ # Agent plugins
│ ├── configs/ # Agent configurations
│ ├── Dockerfile # Backend container
│ └── compose.yaml # Docker Compose configuration
└── frontend/ # React frontend
├── src/ # Frontend source code
└── package.json # Frontend dependencies
Built at uOttaHack8
