# 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
-
Save and test your work locally.
-
Commit often with meaningful messages.
git status- Find filepaths you changed (e.g. lib/pages/home.dart)
git add path/to/file/changed- Do this for every file you have changed
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.)
git commit -m "Describe your change here"
# 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
- Go to GitHub.
- Open a Pull Request (PR) with:
- Base branch: main
- Compare branch: feature/your-task-name
- Request a review from teammates.
- Once approved, the PR will be merged into main.
- Keep your feature branch small and focused — one task per branch.
- Sherry Ren
- Kevin Burkhardt
- Yuou Xiong
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.
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.
- 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.
- A user enters an invitation code.
- The app looks up the corresponding document in the movieGroups collection and adds the user as a member.
- 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.
- 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.
- 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.
- 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:
- Clone the repository.
- Run
flutter pub getto install dependencies. - Set up Firebase for the project (add google-services.json or GoogleService-Info.plist).
- Run
flutter runto launch the app on an android emulator and chrome.













