Skip to content

Repository files navigation

logo

Recipe Remix 👨‍🍳🥗

A full-stack recipe recommendation app that helps you turn what you already have into meals reducing leftovers and potential food waste.
Track pantry ingredients, discover recipes with dietary filters, save favorites, build shopping lists, share your recipes, and connect with a community.

🚀 Quick start: Run with Docker · Manual setup

📄 Project documentation: Agile/Scrum (backlog, charter, and design document) live in docs/:


🛠 Tech stack

  • Frontend: React, React Router, Redux Toolkit (redux-persist), MUI
  • Backend: Node.js, Express, MongoDB (Mongoose), JWT + bcrypt, Nodemailer, node-cron
  • APIs: Suggestic (GraphQL), Google Maps (JS API), Google Sign-In
  • Dev/Infra: Docker Compose

Key features

  • Google Sign-In: optional OAuth login alongside email/password.
  • 2FA (email code): optional two-factor auth for additional account security.
  • Pantry-first recipe discovery: search recipes by ingredients you already have.
  • Saved recipes & folders: bookmark recipes and organize them into custom folders.
  • Shopping list: turn recipes into an actionable grocery list.
  • Grocery store finder: map view powered by Google Maps + Places.
  • Community: create posts, comment/reply, and interact with other users.
  • Auth flows: JWT auth + email confirmation + password reset (email provider required).
  • Dietary preferences: filter results with common dietary restrictions/preferences (e.g., gluten-free, vegan, etc.).
  • Direct messaging: one-to-one conversations inside the app.
  • Automated reminders: optional scheduled email reminders (cron + email provider required).

Demo

preview.mov

Shopping List + Nearby Grocery Store Map

shopping_list

Profile

profile

Community

community

Register

register

Login

login

Run locally

Option A (Recommended): Run with Docker

Prereqs: Docker Desktop

  1. Clone the repository and enter into the new directory:
git clone https://github.com/kraisr/Recipe-Remix && cd Recipe-Remix
  1. Create backend/.env:
  • Get Suggestic API token here
MONGO_URL=your_mongo_url

JWT_SECRET=replace-with-a-long-random-string

GOOGLE_CLIENT_ID=your_google_oauth_client_id
GOOGLE_CLIENT_SECRET=your_google_oauth_client_secret
GOOGLE_REFRESH_TOKEN=your_google_oauth_refresh_token

SUGGESTIC_TOKEN=your_suggestic_token
SUGGESTIC_USER_ID=your_suggestic_user_id

GIPHY_TOKEN=your_giphy_token
  1. Start the full stack (frontend + backend + local MongoDB):
docker compose up --build
  • or if using Atlas:
docker compose -f docker-compose.atlas.yml up --build
  1. Open:
  1. Stop containers (keeps DB data):
docker compose down
  • Reset everything including local DB data:
docker compose down -v

Option B: Manual setup (install dependencies locally)

  1. Clone the repository and enter into the new directory:
git clone https://github.com/kraisr/Recipe-Remix && cd Recipe-Remix
  • Enter the backend directory and install dependencies:
cd backend && npm ci
  • Enter the frontend directory and install dependencies:
cd ../frontend && npm ci
  1. Set environment variables:
  • Create backend/.env (see template above)
  1. Start the apps:
  • Terminal 1 (backend):
cd backend && npm start
  • Terminal 2 (frontend):
cd frontend && npm start
  1. Open:

About

Recipe Remix allows users to quickly find any recipes using available ingredients.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages