jharrisong830 / cs554-team10

MIT License
2 stars 0 forks source link

Spotify Battle Ranker (cooler name tbd)

Group: Team 10 (in reference to the late 2010's content creator group by the same name)

Source Code: https://github.com/jharrisong830/cs554-team10

Members:

Project Overview

People including many in this group are obsessed with ranking literally anything. Whether it be food, athletes, or music. One way that this is frequenetly done is using what is called a battle ranker. Essentially doing this or that battles to fully sort a list based on your preferences. What our project is creating a Battle Ranker for Music. Using Spotify's API we can gather an artist(s)'s discography to rank them against each-other. Allowing our users to then fully rank it based on the user's criteria. We will allow them to then customize what they are ranking in the artists discography by filtering albums or songs.

Course Technologies

We intend to use the following technologies (which we have studied this semester) throughout our project:

React

React will be used to compose the user interface of our application. The application will be "single-paged", with React components being used to create an interactive user interface.

Typescript

Typescript adds additional syntax options to Javascript to enable more robust typechecking. The Typescript compiler will "translate" our code to native Javascript, and throw compile-time errors for typing errors. Typescript will aid us in validation and preventing runtime errors.

Redis

Redis will be used to cache results from the Spotify API, to avoid continually making requests for frequently used data.

Independent Technologies

Additionally, we will use the following independent technologies (not covered by our course) during development:

ImageMagick

ImageMagick will be used to progamatically create images of user-created matchups. These images can then be downloaded by the user and shared to social media platforms.

Vercel

We will use Vercel to deploy and host our application. Free-tier Vercel projects allow you to host a dynamic web application, store secrets and environment variables, and also to store a small amount of data in a relational DBMS.