An app to help you discover and choose movies with friends. When you and your friends like the same movie, it's a match!
I am a student at Codaisseur from a far away land of Crocodiles and kangaroos. I started coding in 2020 this is my portfolio assignment to build an MVP over a period of 2 weeks
My idea with this app was to make a fun game to help friends and partners decide what movies to watch.
app stack:
- React Native - A framework for building native react apps.
- Socket.IO () - A solution for real time bi-directional communcation (server <=> client) using the WebSocket protocol. This allows user clients to interact with each other without needing the client to constantly check for updates.
- Redux - A predictable & robust global state management system
- clone the app Repo
git clone https://github.com/Mr0cket/moviematch-app.git
- Install expo command line tools
npm install --global expo-cli
- Install all dependencies
npm init
- clone & install dependencies for backend repo
- Install the expo client app on your device (android or ios
- start the project through expo with either
npm start
orexpo start
- using your expo-client app on your
Android
orIOS
device, check you and the computer are on the same network, scan the QR code generated in the terminal/browser.
- you can scan the QR code through the expo client app for
android
, or your camera forios
- Expo will load and open the App
- in the backend repo, start the server
npm start
& copy the local area network address of the BE - in FE repo navigate to
/src/config/constants.js
replace the address in line 4 with the address for your own backend.
- Improved Discover Movies page
- Ability to use touch gestures (swiping) to like/dislike a movie
- Dynamic Animations for like & dislike events
- Improved UI/UX for signup, My Account screen, My Party screen & Match popup modal
- Better interface to manage parties
- mechanism for user to accept or decline a party invitation when invited
- ability to remove a user from your party, or join another party
- user/join - an event which the client sends on successful connection with the server containing user authentication details
- user/likedMovie - event emitted by client when the user likes a movie
- user/dislikedMovie - event emitted by client when the user likes a movie
- party/match - event emitted by server when it detects a party match.
Most endpoints are OAuth 2.0 Bearer Token Authenticated (auth)
- POST /login
- POST /signup
- GET /me - (auth)
- GET /movies/liked (auth) - fetches the user's list of liked movies
- GET /movies/matches - (auth) - fetches the user's list of party matched movies
- GET /party (auth) - fetches the user's party members
- POST /party/invite (auth) -
uses an algorithm which weights:
- movies liked by other users in the party,
- movies previously the user has already interacted with
- etc...