A cross-platform mobile app that lets two users swipe right (yes) or left (no) on movie and food cards (like Tinder), then matches the items they both liked.
Try the live demo: https://your-site-name.netlify.app
- React Native (Expo) - Mobile app framework
- Firebase - Authentication and Firestore database
- TMDB API - Movie data
- Spoonacular API - Food data
- react-native-deck-swiper - Card swipe interface
- Netlify - Web hosting and deployment
This app is configured for deployment to Netlify. To deploy your own instance:
-
Clone the repository
git clone https://github.com/yourusername/match-and-munch.git cd match-and-munch -
Install dependencies
npm install
-
Deploy to Netlify
- Push your code to a GitHub/GitLab/Bitbucket repository
- Sign in to Netlify
- Click "New site from Git"
- Select your repository
- Configure the build settings:
- Build command:
npm run build:web - Publish directory:
web-build
- Build command:
- Click "Deploy site"
-
Set up environment variables
- In Netlify, go to Site settings > Build & deploy > Environment
- Add the following environment variables:
REACT_APP_FIREBASE_API_KEYREACT_APP_FIREBASE_AUTH_DOMAINREACT_APP_FIREBASE_PROJECT_IDREACT_APP_FIREBASE_STORAGE_BUCKETREACT_APP_FIREBASE_MESSAGING_SENDER_IDREACT_APP_FIREBASE_APP_IDREACT_APP_TMDB_API_KEYREACT_APP_SPOONACULAR_API_KEY
-
Trigger a new deploy
- Any push to your repository will trigger a new deploy
- You can also manually trigger a deploy from the Netlify dashboard
- Anonymous sign-in using Firebase Auth
- Create a session with a unique 6-character code
- Join a session using the code
- Store session data in Firestore
- Swipe through movies (TMDB API)
- Swipe through food options (Spoonacular API)
- Store responses in Firestore
- Compare "yes" responses from both users
- Find overlapping items in both categories
- Display all matched pairs
- Card-style layout showing (movie, food) matches
- Share results with friends
- Start a new session
- Home Screen: Create or join a session
- Swipe Screen: Swipe through movies, then foods
- Results Screen: View matched movie and food combinations
- Node.js
- Expo CLI
- Firebase account
- TMDB API key
- Spoonacular API key
- Clone the repository
- Install dependencies:
npm install - Set up your environment variables in
.env:TMDB_API_KEY=your_tmdb_key_here SPOONACULAR_API_KEY=your_spoonacular_key_here FIREBASE_API_KEY=your_firebase_key_here FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain_here FIREBASE_PROJECT_ID=your_firebase_project_id_here FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket_here FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id_here FIREBASE_APP_ID=your_firebase_app_id_here - Start the development server:
npm start
- Create a new Firebase project
- Enable Anonymous Authentication
- Create Firestore database with the following collections:
/sessions/sessions/{code}/responses/{userId}
- The app includes fallback food data in case the Spoonacular API is unavailable
- Both users must complete swiping before matches are calculated
- Only mutual "yes" votes are considered matches