Skip to content

kevingcm/recipeSZ

Repository files navigation

RecipeSZ

A recipe discovery and cooking companion app built with Flutter and Firebase. Browse thousands of recipes, save your favorites, plan your shopping, and keep a personal cook journal.

Features

Recipe browsing

  • Browse recipes by category with thumbnails and descriptions
  • Full recipe detail with ingredients, measurements, and step-by-step instructions
  • Search recipes by name, category, or ingredients
  • Random recipe picker ("Surprise me")
  • Recently viewed history

Pantry matching

  • Check off ingredients you have on hand
  • Find recipes you can cook with what's in your pantry
  • Exact matches (you have everything) and loose matches (partial ingredient overlap)

Favorites

  • Save recipes to your favorites with a single tap
  • Synced across devices via Firebase

Shopping list

  • Add individual ingredients or all ingredients from a recipe
  • Check off items as you shop
  • Clear checked or clear all
  • Cloud-synced per account

Reviews and ratings

  • Write reviews with text, star ratings (1-5), and up to 3 photos
  • Reviews go through admin moderation before appearing publicly
  • Report inappropriate reviews
  • Per-recipe average rating and review count
  • Paginated review loading

Private notes

  • Write personal notes on any recipe (what you changed, what worked, what to try next)
  • One editable note per recipe, fully private to your account
  • View and manage all your notes from the profile screen
  • Long notes collapse with "Show more" on the recipe page

User profiles

  • Google Sign-In authentication
  • Customizable display name, avatar (via Cloudinary), and bio
  • Public profile page showing approved reviews
  • Profile tab view switching between reviews and notes
  • Verified badge for admin users
  • Live profile updates reflected across all review cards in real time

Account switching

  • Switch between multiple Google accounts without signing out
  • Per-account data isolation (favorites, shopping list, pantry, notes)
  • Same-account detection with feedback

Admin moderation

  • Dedicated review queue for pending and reported reviews
  • Approve, reject, or delete reviews
  • Dismiss reports
  • Notification system for review status updates

Notifications

  • In-app notifications when your review is approved or rejected
  • Unseen badge count
  • Mark as seen

Tech stack

  • Framework: Flutter (Dart)
  • Auth: Firebase Authentication + Google Sign-In
  • Database: Cloud Firestore with schema-validated security rules
  • Image hosting: Cloudinary
  • State management: Riverpod
  • Routing: go_router
  • Analytics: Firebase Analytics
  • Crash reporting: Firebase Crashlytics
  • App security: Firebase App Check

Platforms

Android, iOS, Web, Windows, macOS, Linux

Data architecture

  • User data (favorites, shopping list, pantry, notes, recently viewed) stored in private Firestore subcollections under users/{uid}/
  • Reviews stored in a global reviews collection with server-side moderation workflow
  • All subcollections have schema-validated Firestore security rules enforcing field types, size limits, and ownership
  • Local SharedPreferences caching with UID-namespaced keys for offline support

Getting started

  1. Clone the repo
  2. Run flutter pub get
  3. Set up Firebase (flutterfire configure) and Cloudinary credentials
  4. Run flutter run

Powered by

TheMealDB for recipe data.

About

A cross-platform cooking companion app built with Flutter and Firebase. Features recipe browsing, smart pantry matching, and cloud-synced shopping lists.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors