Skip to content

nomnom-heap/nomnom

Repository files navigation

Nomnom

Nomnom is a web app that helps you to decide what recipes to cook, based on the following problems and solutions:

Problem Solution
Unsure what to cook based on ingredients Search recipes by ingredients
Having to recall past cooked recipes Create your own recipes, view others' recipes and save them for future reference
Explore new recipes Chatbot to explore new recipes

Features

Recipe Search

Search by ingredients and recipe name

Recipe Management

Recipe recommendation

Recommends similar recipes based on the recipe ingredients

Recipe Recommendation

Nombot

Chat with data from recipes

Nombot

Recipe management

Customise your own recipe with a markdown editor that support embedding images and videos, to share with the community and save for your future reference

Recipe Management

Follow users

Follow users to see their recipes

Follow Users

Favouriting recipes

Favourite recipes to view later

Favourite Recipes

Technologies

Frontend

Backend

  • Neo4j Graphql - Automatic generation of Queries and Mutations for CRUD interactions to Neo4j
  • Neo4j - Graph database and support for vector embeddings for RAG (chatbot)

External Services

  • AWS Amplify - Library to provision, connect and use the AWS services
  • Langchain - Framework for building applications with LLMs for the chat feature
  • OpenAI - GPT 4-o for generating answers to questions and embedding model to generate vector embeddings from recipe text contents
  • Langsmith - Platform to monitor LLM runs

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Update the .env file with values from the .env.sample file.

Install dependencies

bun install

Start the development server

bun dev

Use a personal cloud sandbox environment that provides an isolated development space to rapidly build, test, and iterate on a fullstack app. Each developer on your team can use their own disposable sandbox environment connected to cloud resources.

Deploy to cloud sandbox

npx ampx sandbox

Setting cloud sandbox secret

npx ampx sandbox secret set <secret-name>

Secrets to set

npx ampx sandbox secret set GOOGLE_CLIENT_ID
npx ampx sandbox secret set GOOGLE_CLIENT_SECRET

npx ampx sandbox secret set NEO4J_URI
npx ampx sandbox secret set NEO4J_USER
npx ampx sandbox secret set NEO4J_PASSWORD