Skip to content

Danton1/FallHacks2025

Repository files navigation

🍽️💘 CraveCrush

Swipe. Match. Cook.

CraveCrush is a cross-platform recipe discovery app that makes finding your next meal as fun as swiping on your favourite dating app. By combining swipe-based interactions with curated recipes and music pairings, CraveCrush transforms meal planning from a chore into an engaging, playful experience.


🚀 Elevator Pitch

CraveCrush reimagines recipe discovery by applying the addictive swipe mechanics popularized by dating apps to food exploration. Users swipe left to skip, swipe right to “crush” recipes they love, and instantly build a personalized collection of dishes, each paired with music to set the mood while cooking.


✨ Features

  • 🔥 Swipe-based recipe discovery (left to pass, right to like)
  • 💖 Matches collection for saved recipes
  • 🎵 Music pairing to enhance the cooking experience
  • 📱 Cross-platform support (Web + Mobile)
  • Smooth gesture animations and responsive UI
  • 💾 Persistent state across sessions

🛠️ Tech Stack

Frontend

  • Expo
  • React Native
  • TypeScript
  • expo-router
  • React Native Animated API

State Management

  • React Context + Reducer (web-safe, persistent storage)

Storage

  • Web: localStorage
  • Mobile: AsyncStorage

Media

  • YouTube embed for music pairing

🧠 Architecture Highlights

  • Platform-agnostic state layer: We designed a custom global store that works reliably on both web and native platforms.
  • Gesture-driven UI: We implemented swipe mechanics using low-level animation APIs for performance and control.
  • Separation of concerns: We kept a clean split between UI components, navigation, and business logic.
  • Scalable foundation: The app is built with extensibility in mind (recommendations, accounts, social features).

⚙️ Getting Started

Prerequisites

  • Node.js (LTS recommended)
  • Expo CLI

Installation

git clone https://github.com/your-username/cravecrush.git
cd cravecrush
npm install

Run the app

# Web
npm run web

# Mobile (iOS / Android)
npm start

🧩 Challenges & Solutions

  • Cross-platform compatibility: We resolved Expo + React version conflicts to support web and mobile seamlessly.
  • State persistence: We built a custom storage abstraction to avoid platform-specific crashes.
  • Gesture correctness: We eliminated stale closures by passing swipe payloads directly from animated components.

These challenges significantly improved the app’s reliability and architecture.


🏆 Accomplishments We’re Proud Of

  • Delivering a polished, interactive UX under hackathon time constraints.
  • Solving non-trivial cross-platform state and animation bugs.
  • Building a product that balances technical depth with strong product intuition.
  • Collaborating effectively to ship a complete, working application.

📈 What’s Next for CraveCrush

  • 🤖 Personalized recommendations based on swipe history
  • 👥 Social features (shared matches, cooking challenges)
  • ☁️ User accounts & cloud sync
  • 🎶 Playlists instead of single tracks
  • 🎨 UI polish and App Store deployment

👥 Team

CraveCrush was built by:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors