Skip to content

carterjswift/sharkjam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SharkJam

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.


Installation Instructions for Developers

  • 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

  • Clone this Repo to your local machine

    git clone https://github.com/carterjswift/sharkjam
    
  • Create a .env file in your sharkjam 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

System Architecture

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.

Sharkjam Architecture

How to Run the Application

With all of the installation steps done, the app can be run from VSCode by clicking Run then "Start Debugging".

Common Issues

  • 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.

Clearing the Database

To clear the database, uncomment line 18 in database_provider.dart and refresh the application.

Known Bugs

After conducting usability tests with 9 participants, some bugs are found.

Bug#1

The user needs to press Enter / Search twice to get the desired search result.

Cause

The search result screen is created before the API finishes loading all the search results ➡︎ Empty screen.

Solution

Make the buildResult await retrieving the search result.

Bug#2

The cover doesn’t appear for video-based thumbnails.

Cause

The cover only loads static image thumbnails

Solution

Our next step would be to have it load video files.

Bug#3

The YouTube API key reaches the daily quota after a few searches.

Cause

The YouTube API has different “costs” for different operations. The operations that the app performs are causing the “quota exceeded” error.

Solution

Switching between three different API keys or Paying YouTube for more quota when there is financial support.

Authors

  • Carter Swift
  • Shosuke Noma
  • James Yang

Acknowledgements

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.

About

Collaborative playlist creation app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •