Skip to content

kevinburkhardt/mpx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MPX

Before writing code

# Make sure you're on main
git checkout main

# Download the latest version of main from GitHub
git pull origin main

# Create a new branch for your task
git checkout -b feature/your-task-name

# To check out an already created branch from GitHub use
git checkout -b feature/task-name origin/feature/task-name

While coding

  • Save and test your work locally.

  • Commit often with meaningful messages.

    Check status

    git status

    • Find filepaths you changed (e.g. lib/pages/home.dart)

    Stage changes

    git add path/to/file/changed

    • Do this for every file you have changed

    Check status before committing

    git status

    • Ensure you are only committing files that reflect your changes
    • If you didn't modify it, don't add it, this mainly applies to autogenerated files (build dir, macos, linux, etc.)

    Commit your work

    git commit -m "Describe your change here"


After coding your feature

# Make sure your branch is up to date with main
git checkout main
git pull origin main
git checkout feature/your-task-name
git merge main

# Push your branch to GitHub
git push origin feature/your-task-name

Submitting your work

  1. Go to GitHub.
  2. Open a Pull Request (PR) with:
    • Base branch: main
    • Compare branch: feature/your-task-name
  3. Request a review from teammates.
  4. Once approved, the PR will be merged into main.

Notes

  • Keep your feature branch small and focused — one task per branch.

Contributors:

  • Sherry Ren
  • Kevin Burkhardt
  • Yuou Xiong

Project Overview: MPX – Movie Picker

Movie Picker is a Flutter app that helps a group of friends quickly agree on a movie to watch. Users create or join a movie group, swipe through curated movie suggestions, and then see a ranked leaderboard of the group’s favorites. After watching, each group has a shared movie history with comments so that everyone can debrief together.

App pitch and UI overview

Movie Pick lets friend groups stop arguing about what to watch. Create a group, swipe through movies together, auto-rank the favorites, and keep a shared movie diary for every hangout.

Core flows

Authentication using google

alt text

  • Login, Sign Up, and Reset Password screens using Firebase Authentication.
  • Home Page alt text alt text

Create Group

alt text alt text alt text

  • Owner sets:
  • Group name and (optional) group profile picture.
  • Number of movies to review (movieCount).
  • Genres and language for movie suggestions.
  • Group metadata is written to Firestore; members are added by UID.
  • Owner then continues to the voting phase while other members wait.

Join Group

alt text alt text

  • A user enters an invitation code.
  • The app looks up the corresponding document in the movieGroups collection and adds the user as a member.

Voting (Swipe UI)

alt text

  • Users swipe right to “want to watch” and left to “dislike” each movie.
  • Tapping a card flips/reveals more details (overview, etc.).
  • After all movies are swiped, votes are stored per movie and per group in Firestore.

Leaderboard

alt text

  • Ranks movies from most liked to least liked based on group votes.
  • Each row has a button to mark “We will watch this movie,” which writes the chosen movie (with timestamp) to the - group’s watched history.

Movie History & Comments

alt text alt text alt text alt text

  • Each movie the group “watched” shows:
  • Watched date.
  • Short description/overview.
  • Shared comment thread where all group members can leave messages.
  • Comments are stored in a comments subcollection so everyone can see the conversation.

Build instructions and dependencies

  • Flutter SDK
  • Firebase (Authentication, Firestore)
  • Dart packages:
    • firebase_core
    • firebase_auth
    • cloud_firestore
    • provider
    • http
    • flutter_swipable
    • cached_network_image
    • uuid
  • To run the app:
    1. Clone the repository.
    2. Run flutter pub get to install dependencies.
    3. Set up Firebase for the project (add google-services.json or GoogleService-Info.plist).
    4. Run flutter run to launch the app on an android emulator and chrome.

About

mpx for CS1635

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors