Skip to content

dixitpriyanshu/pourfect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿธ Pourfect

Pourfect is a beautifully crafted, cross-platform mobile app built with Expo React Native for discovering, exploring, and learning about cocktails. Whether you're a mixology enthusiast or a casual sipper, Pourfect helps you dive into a curated world of drinks โ€” with offline support, fun interactions, and a personalized experience.

๐Ÿ“ธ Screenshots

Home Screen Cocktail Detail Alcohol List
Favorites Screen Tip of the Day

๐Ÿš€ Features

  • ๐Ÿงญ Explore Cocktails โ€“ Browse from a collection of handcrafted cocktails with ingredients, glass types, and instructions.
  • ๐Ÿ’พ Offline Mode โ€“ Cache cocktail and alcohol data locally using MMKV for seamless access even without internet.
  • ๐ŸŒŸ Favorites โ€“ Save your go-to cocktails using persistent local storage powered by Zustand + MMKV.
  • ๐Ÿ“ณ Shake to Discover โ€“ Shake your phone to discover a random cocktail using expo-sensors.
  • ๐Ÿ’ก Daily Tip Toast โ€“ Receive a fun tip or fact every day when you open the app.
  • ๐Ÿงช Personalized Themes โ€“ Coming soon via nativewind for customizable looks and feel.

๐Ÿ› ๏ธ Built With

  • React Native + Expo Router
  • Zustand for state management
  • react-native-mmkv for ultra-fast local storage
  • Supabase โ€“ PostgreSQL + Realtime backend with SQL RPCs
  • expo-sensors for motion detection
  • TypeScript throughout
  • Tailwind/NW (nativewind) for styling (in progress)

๐Ÿงฑ Database Schema

Built on a normalized schema using PostgreSQL in Supabase, including:

  • cocktails ๐Ÿน
  • alcohols ๐Ÿฅƒ
  • ingredients ๐ŸŒฟ
  • cocktail_ingredients
  • cocktail_alcohols

Includes custom RPC functions like get_random_cocktail() for optimized backend querying.


๐Ÿ“ฆ Installation

git clone https://github.com/dixitpriyanshu/pourfect.git
cd pourfect
bun install
npx expo start

Create a Development Build

โš ๏ธ Since Pourfect uses native libraries like react-native-mmkv and expo-sensors, you'll need to create a development build using Expo Dev Client before running the app.

There is a pourfect_mock.sql for tables creation and entering the mock data, make sure you replace the images link to your images.

You can store images in Supabase storage bucket or your prefered storage option.

Make sure to:

  1. Add your Supabase project keys in .env

  2. Run Supabase migrations (or use the SQL insert seed provided)

  3. Enable device permissions if testing on physical phone

๐Ÿ“ฒ APK Download You can try the app instantly by downloading the latest APK below:

๐Ÿ”— Download Pourfect.apk

(Built using EAS Build + Expo Dev Client)

๐Ÿง‘โ€๐Ÿ’ป Contributing This is a personal/portfolio project, but open to suggestions and ideas. Feel free to fork or submit issues!

๐Ÿง  Lessons Learned

  • Implemented complex state handling and offline-first UX with Zustand + MMKV

  • Leveraged custom RPCs and relational queries in Supabase for performant backend

  • Developed fun interactive features (like shake-to-discover) to improve user engagement

  • Learned to handle network resilience, caching, and async data fetching gracefully

๐Ÿ“ฎ Contact Feel free to reach out if you're interested in the project or want to collaborate!


Made with โ˜•, ๐Ÿ’ป, and a splash of ๐Ÿธ