RecipEase is a full-stack application that helps users generate and categorize recipes using intelligent agents. Users can input preferences or constraints (like dietary needs), and the system will return tailored recipes along with explanations and saved queries. Those saved queries will run on a daily basis via a cron job, making the user able to find the best recipes over time.
-
Navigate to the backend directory:
cd backend -
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate -
Install dependencies:
pip install -r requirements.txt
-
Start the FastAPI server:
uvicorn api.main:app
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the development server:
npm run dev
- Visit the frontend (e.g.,
http://localhost:8080) to interact with the app. - Submit a query describing your food preferences and dietary needs ("Create New Query" button at the top).
- Follow background job status to see your query status.
- Access your queries and see their relevant content (new content for each query gets generated daily by a cron job).
- See a summary of all recipes ever created by different queries.
- “I want a pasta recipe that’s gluten-free.”
- “Show me vegetarian breakfast ideas that use oats.”
backend/
├── agent_flow/
│ ├── agents/
│ │ ├── categorize_agent.py
│ │ ├── db_saver.py
│ │ └── recipe_modifier_agent.py
│ ├── custom_types/
│ │ └── agent_types.py
│ ├── helpers/
│ │ └── db_utils.py
│ ├── agent_flow.py
│ └── setup.py
├── api/
│ ├── helpers/
│ │ ├── exports.py
│ │ └── utils.py
│ ├── routers/
│ │ ├── queries.py
│ │ └── recipes.py
│ └── main.py
├── shared/
│ ├── db.py
│ └── models.py
├── requirements.txt
frontend/
├── public/
├── src/
│ ├── api/
│ │ ├── api-functions.ts
│ │ └── endpoints.ts
│ ├── atoms/
│ │ └── bgJobAtom.ts
│ ├── components/
│ │ ├── context/
│ │ │ └── global-atom-store.ts
│ │ ├── Queries/
│ │ │ ├── CreateNewQueryModal.tsx
│ │ │ ├── QueriesPage.tsx
│ │ │ ├── QueryCard.tsx
│ │ │ └── QueryPage.tsx
│ │ ├── Recipe/
│ │ │ ├── RecipeCard.tsx
│ │ │ ├── RecipeList.tsx
│ │ │ ├── RecipeModal.tsx
│ │ │ └── RecipesPage.tsx
│ │ └── shared/
│ │ ├── InfoTag.tsx
│ │ └── TextBox.tsx
| | |__AboutPage.tsx
| │ ├── BgJobPanel.tsx
| │ ├── ErrorFallback.tsx
| │ ├── NotFoundPage.tsx
│ ├── constants/
│ │ └── routes.tsx
│ ├── context/
│ │ └── UserContext.tsx
│ ├── types/
│ │ ├── BackendTypes.ts
│ │ └── TableTypes.tsx
│ ├── utils/
│ │ └── dates.ts
│ ├── App.css
│ └── main.tsx
├── package.json
├── tsconfig.json
└── vite.config.ts
|__ biome.json
|__ .. other general react files