Skip to content

Full stack project. Open AIr Feast uses AI to generate camping stove-friendly recipes. The recipes are based upon the user's input of 1-3 ingredients. Created with Emmy Dieden.

Notifications You must be signed in to change notification settings

IdahCollin/open-air-feast

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo


As part of the Technigo Web Dev Bootcamp, this project was created as the Final Project by Emmy Dieden and Idah Collin. Open AIr Feast generates camping stove-friendly recipes by integrating with the OpenAI API. Recipe generation is based on user prompts of one to three ingredients and dietary requirements. Our hope by building this website is to make it easier for people to connect with nature and enjoy delicious meals outdoors.

Technologies used

Frontend

  • React
  • Vite
  • Zustand
  • React Router
  • React Icons

Backend

  • Node.js
  • Express
  • MongoDB
  • Mongoose
  • OpenAI
  • Nodemon

Other

  • GitHub
  • Figma
  • VScode
  • Squoosh
  • Affinity Designer


Database Operations

  • RecipeModel: Represents the data structure for recipes, including user input, search words, title, description, ingredients, instructions, and creation timestamp.
  • MongoDBOperations: Implements CRUD operations for managing recipes in the MongoDB database.

AI integration

OpenAI: The backend integrates with the OpenAI API to generate text-based recipes based on user prompts.

Endpoint: Provides an /openai/generateText endpoint to handle AI-driven recipe generation.

API Endpoints

External APIs

OpenAI API:

  • Description: Utilized to generate text-based recipes based on user prompts.
  • Endpoint: POST /openai/generateText
  • Usage: This API is integrated into the backend to dynamically create recipes using the OpenAI GPT-3 model.

Internal APIs

MongoDB API:

  • Description: The backend acts as an API to interact with the MongoDB database.
  • Endpoints:
    • GET /: Lists all available API endpoints for reference.
    • GET /recipes: Retrieves all stored recipes.
    • GET /recipes/search/:query: Searches for recipes based on a specified query.

How to Run the Project

Backend

  1. Clone the Repository:
git clone open-air-feast
  1. Navigate to the Backend Directory
cd backend
  1. Install Dependencies
npm install
  1. Set Environment Variables Create a .env file in the backend directory and add necessary environment variables, including PORT, MongoDB connection details, and OpenAI API key.

Example .env:

PORT=3001
MONGO_URL=[your-mongodb-url]
OPENAI_API_KEY=[your-openai-api-key]
  1. Start the Backend Server
npm start

Frontend

  1. Navigate to the Frontend Directory
cd frontend
  1. Install Dependencies
npm install
  1. Set Environment Variables Create a .env file in the frontend directory and add an environment variables for the backend localhost.

Example .env:

VITE_BACKEND_API=[backend-localhost]
  1. Start the Frontend Development Server
npm run dev

Challenges

It was a challenge connecting to the OpenAI API as this was completely new to us, and we realised that many of the explanatory videos and similar repos on GitHub already were outdated as the openAI technology develops very fast. But reading the documentation on OpenAIs website very thouroughly, in combination with studying similar projects, we got it to work.

We are exploring the subject of prompt engineering and learning how to structure texts in a way so they are intepreted and understood by AI models as intended.

Project Process

The starting point was to create a MVP and to set up a basic structure of the frontend and backend. An API was built for connecting with MongoDB database, and connection was made to the OpenAI API. Next up was basic styling and responsiveness (mobile first). Final stage was focusing on prompt engineering to make the openAI model work better and also improving functions as error handling and solving minor bugs. Ended of with final styling.

Moving forward: The project is prepared for further development, such as using authentication for building a login function. There is a prepared endpoint for searching for recipes, which only needs to be implemented in the frontend. To extend the project further, next step would be to build an endpoint for saving recipes to the database, and also fine-tune the model for even better responses.

Google Lighthouse and cross-browser testing show satisfactory results.

View it live

Frontend: https://openair-feast.netlify.app/

Backend: https://ai-recipes-collin-dieden.onrender.com

Connect with us

Emmy Dieden:

LinkedIn

GitHub

Emmy's portfolio

Idah Collin:

LinkedIn

GitHub

Idah's portfolio

About

Full stack project. Open AIr Feast uses AI to generate camping stove-friendly recipes. The recipes are based upon the user's input of 1-3 ingredients. Created with Emmy Dieden.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 75.6%
  • CSS 23.4%
  • HTML 1.0%