โ† Back to Projects

RecipeHub

Livesocial

A full-featured recipe platform where users can search, save, and interact with recipes. Includes user dashboards, admin moderation, and review/commenting โ€” all backed by Firebase.

๐ŸŒ Live Site๐Ÿ“ GitHub RepoBy Kyle Parsotan ยท 2025

Problem

Home cooks and food enthusiasts struggle to find, organize, and share recipes in a single platform that combines discovery, personalization, and community interaction.

Solution

Built a role-based web app with authentication, a recipe search API, favorites system, and review engine. Admins can moderate content through a dedicated dashboard, while users manage their saved recipes and reviews in their own portal.

Tech Stack

Frontend
Next.jsTailwindCSSshadcn/ui
Backend
Firebase (Auth, Firestore)
Database
Firebase FirestoreLocalStorage (interim caching)redis caching
DevOps
Vercel
Other
Custom Recipe APIStripe API (for future subscription features)

Architecture

Frontend

Next.js pages with shadcn/ui components for a consistent design system. TailwindCSS handles all layout and responsive styling. Client-side state manages the current user session, favorites list, and search filters. LocalStorage is used as an interim cache for saved recipes until full Firestore persistence is implemented.

Backend

Firebase Authentication handles user sign-in. Firestore stores user profiles, saved favorites, reviews, and admin flags. Role-based access control separates admin and user views โ€” admin routes check a `role` field on the user's Firestore document before rendering the dashboard.

Database

Firestore collections: users (profile + role), favorites (user-to-recipe mapping), reviews (linked to recipe ID). Recipe content is fetched from a public Recipe API and not stored โ€” only user interactions (saves, reviews) persist in Firestore.

Features

Future Improvements

By Kyle Parsotan ยท 2025

Get to Work

Contact me for freelance work, full-time opportunities! I'm always open to discussing new projects, creative ideas, or opportunities to be part of your visions.