Tinder-style restaurant swiping MVP (Expo + React Native + Firebase).
This repository now includes:
- MVP swipe UI in
App.js - Firestore schema docs in
docs/firestore-schema.md - Project roadmap in
docs/technical-roadmap.md
- Node.js 18+
- npm 9+
- Expo Go app on your phone (optional, easiest way to test)
- Firebase project (Auth + Firestore enabled)
- Google Places API key
npm installCreate a .env file in the repo root:
cp .env.example .envFill in all values:
EXPO_PUBLIC_FIREBASE_*EXPO_PUBLIC_GOOGLE_PLACES_API_KEY
In App.js, replace:
const [sessionId] = useState("REPLACE_WITH_SESSION_ID");with a valid Firestore session document ID.
Quick test path: manually create a
sessions/{sessionId}document matchingdocs/firestore-schema.md.
Start Expo:
npm run startThen choose one:
- Press
afor Android emulator - Press
ifor iOS simulator (macOS only) - Scan QR code with Expo Go on a phone
Some hosted branch editors/tools reject commits that contain binary files (for example PNG assets) and show "Binary files are not supported". This repo is configured to run without committed binary assets by default. If you want custom app icons/splash screens, add image files later and point app.json to them in your own branch/tooling.
- Blank cards / no restaurants: check location permissions and Google Places key restrictions.
- No matches appearing: ensure both users are writing likes to the same
sessions/{sessionId}document and both UIDs are inparticipants. - Firebase auth null UID: make sure you implement an auth bootstrap (e.g., anonymous sign-in) before swiping.
For a fully runnable flow, add:
- Session create/join screen to generate & enter a 4-digit code.
- Anonymous auth bootstrap on app launch.
- Persist fetched restaurants to
sessions.restaurantsso both users swipe the same list.