Skip to content

jlowb/CSC207REAL

Repository files navigation

CSC207 Group 113

This project is organized as a monorepo. The folder "swiftify-frontend" contains the application itself, whereas "swiftify-backend" contains all miscellaneous code (such as the AWS Lambda functions) and is included for completeness. Both are separate Maven applications with their own dependencies.

The application is started by running Main.java inside "swiftify-frontend".

0. Problem Domain

After the brainstorming session in our tutorial, our team has tentatively decided to create a music player. This decision was motivated by the abundance of features that could be implemented, ensuring that the project would be interesting for every single group member.

1. Project Description

We hypothesize that the key features of a music player (that would need to be implemented) are:

  1. Login System
    1. User creation/management (probably via an API like Oauth)
    2. Login screen (needs a frontend)
    3. Routing/auth flow (probably via an API like Oauth)
  2. User Customization System
    1. Friends list (optional)
    2. Profile customization (optional)
    3. Personal music collection, i.e. playlists etc. (essential)
  3. Music Database
  4. Music Player
    1. Music Player Component (essential)
    2. Music Lyrics (optional)
    3. Music Queue/Recommender/Shuffle/History (essential)
    4. Discussion feature
  5. Front End

As this is quite ambitious, we may remove features depending on the rate of progress, but this is more or less the big picture.

2. Link to API documentation

The following API can be used to implement feature 4.ii above: https://developer.musixmatch.com/documentation

3. A screenshot of using a tool to try out the API

aasd

4. Example output of running your Java code

Java MusixMatch thing

6. A list of any technical problems blocking progress

  1. Since our project is a complex system that depends on many features working cohesively, we will need to use a myriad of APIs, which will be difficult to implement (Oauth in particular). In addition, we will almost certainly run into incompatibility issues or other esoteric bugs that will test our web development abilities.
  2. For example, in trying to implement the above API, we initially encountered issues with a 401 error, indicating that the URL was invalid (in our case, the API key was incorrectly entered). I found it quite useful to examine other examples of API calls. One that particularly aided me was studying JokeAPI and how the URL was constructed, along with how the various parameters were combined. After reviewing these examples, our team successfully obtained an output from the Musixmatch API, as shown in the image.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages