SharkJam is a cross-platform mobile app made using Flutter that provides an easy interface for gathered friends to build a playlist that everyone will enjoy. Just fire up SharkJam and pass around the phone to let everyone add their favorite songs, and you'll have a mutually agreeable playlist in no time.
-
Install VSCode (or preferred IDE) [macOS] [Linux] [Windows]
- In our experience VSCode is very easy to work with for flutter development, but other major IDEs, such as IntelliJ IDEA will work as well.
-
Install Flutter [macOS] [Linux] [Windows]
- Ensure you install either the iOS or Android Simulators in order to be able to run the code.
-
Install Flutter and Dart Plugins for your IDE
- [VSCode]
- [IntelliJ IDEA]
-
Clone this Repo to your local machine
git clone https://github.com/carterjswift/sharkjam
-
Create a
.env
file in yoursharkjam
directory and paste in a Youtube Data API key- You can get an API key on the Google API Console
- Syntax for
.env
:KEY=Paste_API_key_here
Below is a diagram of how the main components of the app interact with eachother. Red arrows represent operations that require network connectivity, blue arrows represent flow of data, and orange arrows represent UI relationships.
With all of the installation steps done, the app can be run from VSCode by clicking Run then "Start Debugging".
-
Performing many searches on the app will cause the API call quota to be reached. The only way around this currently is to wait for the next day or generate a new API key.
-
If you get errors relating to import statements, it's likely that not all necessary packages were installed. Running
flutter pub get
should resolve this.
To clear the database, uncomment line 18 in database_provider.dart
and refresh
the application.
After conducting usability tests with 9 participants, some bugs are found.
The user needs to press Enter / Search twice to get the desired search result.
The search result screen is created before the API finishes loading all the search results ➡︎ Empty screen.
Make the buildResult await retrieving the search result.
The cover doesn’t appear for video-based thumbnails.
The cover only loads static image thumbnails
Our next step would be to have it load video files.
The YouTube API key reaches the daily quota after a few searches.
The YouTube API has different “costs” for different operations. The operations that the app performs are causing the “quota exceeded” error.
Switching between three different API keys or Paying YouTube for more quota when there is financial support.
- Carter Swift
- Shosuke Noma
- James Yang
Massive thanks to Professor Shilad Sen, Preceptor Richard Tian, the Software Design and Development class (COMP 225-01) and usability-test participants for all their insight, support, and camaraderie.