Foodie is a meal planning app designed to expand the cultural bounds of cuisine.
Users can spin a globe to randomly discover authentic recipes from around the world, or select recipes from a region of their own choosing.
Foodie then generates a categorized shopping list based on the selected recipe, recommends nearby specialty stores, and tracks pantry items to reduce food waste.
- Tsang Aaron
- Kadam Kavin
- Fung Samuel
- Mei Meiko
- Bui Son
├───public
│ ├───css
│ │ globe.css
│ │ styles.css
│ ├───images
│ │ breadLogo.png
│ │ favicon.ico
│ │ favourite.svg
│ │ food-fact.svg
│ │ foodieBlack.png
│ │ foodieCream.png
│ │ foodieWhite.png
│ │ foodie_index.png
│ │ globe.svg
│ │ ingredients.svg
│ │ pantry.svg
│ │ recipe.svg
│ │ stores.svg
│ └───js
│ addPantry.js
│ foodfact.js
│ globe.js
│ greetingTime.js
│ location.js
│ viewPantry.js
├───routes
│ areas.js
│ authRoutes.js
│ availableRecipes.js
│ favourites.js
│ foodfact.js
│ ingredients.js
│ pantry.js
│ profile.js
├───src
│ auth.js
└───views
404.ejs
about.ejs
addPantry.ejs
availableRecipes.ejs
favourites.ejs
globe.ejs
home.ejs
index.ejs
ingredients.ejs
login.ejs
meal.ejs
pantry.ejs
profile.ejs
recipeDetail.ejs
seemore.ejs
signup.ejs
stores.ejs
└───templates
footer.ejs
header.ejs
Clone the repo, install dependencies and create your .env file.
This is an example of how to list things you need to use the software and how to install them.
-
npm
npm install npm@latest -g
or
-
yarn
yarn install
-
Get free API keys from:
-
Create a
.envfile in your project root and add your environment variables:MONGODB_USER=your_mongodb_user MONGODB_PASSWORD=your_mongodb_password MONGODB_HOST=your_mongodb_host MONGODB_DATABASE=your_database_name NODE_SESSION_SECRET=your_session_secret WEATHER_API_KEY=your_weatherapi_key OPENROUTER_API_KEY=your_openrouter_api_key OPENROUTER_API_KEY_TWO=your_secondary_openrouter_api_key OPENAI_API_KEY=your_openai_api_key OPENAI_API_KEY_TWO=your_secondary_openai_api_key SITE_URL=localhost SITE_TITLE=Foodie
Check out our Testing Plan.
-
Pantry
Manage your pantry items easily — add, update, or remove ingredients you have on hand. -
Stores
Find specialty grocery stores and supermarkets nearby based on your location. -
Globe
Explore global cuisines interactively by spinning a globe and discovering new recipes. -
Pantry Recipes
Get recipe suggestions based on what’s currently in your pantry. -
Food Fact
Discover fun and interesting food trivia powered by AI to enhance your cooking experience. -
Ingredient Search
Search recipes by entering specific ingredients you want to use. -
Favourites
Save and access your favorite recipes quickly for easy reference. -
Profile Management
Update your email and password, and view your grocery list to keep everything organized.
- Model:
qwen/qwen3-8b:free(conversational model) - Use cases:
- Generating appetizing recipe descriptions and summaries based on ingredients and instructions.
- Creating short, enticing descriptions of various cuisine areas (e.g., Italian, Japanese).
- Model:
anthropic/claude-3-haiku(conversational model) - Use cases:
- Fetching random, engaging food trivia as fun facts.
- Use cases:
- Looking up nearby grocery stores based on user-provided latitude and longitude.
- Searching for stores tagged as supermarkets or grocery shops within a 25 km radius.
- Providing store data to the front-end for rendering store lists.
- Use cases:
- Fetching real-time weather information for user-specified locations.
Parts of this project's codebase were generated using ChatGPT to enhance productivity and accelerate development.
