UW CSE 403 Spring 2022 Group Project
Please check out our user manual on our Wiki to get started!
Major Features for MVP (Minimum Viable Product)
- List of options to vote on for the activity
- Predefined set of options to select from and separated into categories
- Option selection system including voting, polling, or randomized selection
- Account system
Stretch Features
- Seeing and interacting with friends’ activity lists
- Shared music playlist for activity
- Map (either Google or Apple map) showing possible venues to choose from
If you are new to SwiftUI, you can follow UWAppDev's guide on getting started with SwiftUI.
- You should have a Mac computer
- Install Xcode from the Mac App Store if you don't have it installed already
- Install SwiftLint by following the official documentation
- Double click to open
Fun Gen.xcodeprojin Xcode
Fun Gen.xcodeproj: Xcode project file.Shared: The main SwiftUI codebase for Fun Gen.Model: data structure definitions.View: user interface.ViewModel: bindings and operations for model, interfacing with Firebase.
macOS: SwiftUI allows running code on macOS at the same time. Any macOS specific code or resources files will be in this directory.Fun GenTests: unit tests for Fun Gen backend. See XCTest documentation on how to use and create unit tests.Fun GenUITests: UI tests for Fun Gen frontend. See User Interface Tests and UI Testing in Xcode on how to use and create UI tests.reports: weekly reports for communicating with our TA/project manager.Configuration: to support building the project using different Apple IDs..github: configuration files for GitHub related settings.
All our tasks are automated there are no sanity checkcs that the developer has to perform.
Select build destination and run the app by following Apple's documentation on Running Your App in the Simulator or on a Device
Each pull request against main branch as well as each commit on the main branch will also be automatically build by Xcode Cloud,
and built artifact for the main branch commits will be automatically submitted to App Store Connect for release on TestFlight for external installation.
To resolve common compile time errors that happen after pulling a new branch:
- Make sure you have an iPhone simulator selected as the run destination
- If you are getting multiple errors, click on menu item File > Packages > Resolve Package Versions
After building the project by following the build instructions, make sure to select the scheme "Fun Gen (iOS)" and select a simulated device as the run destination.
You can also download and run the latest beta release version by following the installation instructions, and tap open the app on your own iPhone or iPad running iOS/iPadOS 15.
After building the project by following the build instructions, you can run all the tests by pressing the shortcut command + u or through menu options Product > Test.
You can see Running Tests and Viewing Results for more details,
or view the results of tests in the checks section of each open pull request against the main branch.
There are two folders for Unit testing and UI testing. For each test case, add a new function starting with the word test, such as testExample. For unit tests, one can directly construct instances of classes/structs and call methods inside the new test function, and use XCTAssert to assert the actual values match expected values.
For UITests, on Xcode, users can click the record button to record a series of actions and it will be turned to testing code automatically, and one can adjust the code if needed.
| Password | |
|---|---|
| test123@gmail.com | 123123 |
| test@test.test | testtest |
- Elena's Use Case: Sign up
- Angkana’s Use Case: Add/remove Options for an Activity
- Add options during activity creation
- Remove options during activity creation
- Add options during voting
- Remove options during voting
- Joon’s Use Case: Randomly pick an Option for an Activity
- Apollo’s Use Case: Top voted Option becomes selected Option for an Activity
- Finnigan’s Use Case: Tie breaking for top voted Options through random selection
- Julian’s Use Case: Anonymous voting
While the Allen School institutes an academic misconduct policy where
If you have CSE homeworks, including from previous quarters, publicly available (e.g., in a GitHub repository), this is a violation of our academic misconduct policy and you should make them private immediately
..., this is a public repository on GitHub per the assignment spec and the project description:
Create a public repository for your project on GitHub, make all team members contributors, and add a link to this repository to your living document.
We require that you use a public GitHub repository for version control, issue tracking, and continuous integration.