Skip to content

[Web] A discography website built on Spotify's API using Angular, TypeScript & the Redux framework NgRx

Notifications You must be signed in to change notification settings

joelbengs/spotify_application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Lund's Academic Music Ensycliopedia

Welcome to Lund's nr. 1 discography website!

Here you can discover the discography of artsts, using Spotify's web API. The website is built in Angular using Angular Materials for styling and NgRX for state management.

Demo

On LAME, the user can search for an Artist available at Spotify's huge library of music.

Welcome Screenshot

The system will suggests artists based on what the user start to type

Search for an artist

When selecting an artist, the discography of that artist is presented.

Discography1

Find some more artists of your liking!

Discography2

Discography3

Press any album to view its details. Any song can be added to the users playlist.

Album1 Album2

Browse your favorite artists and build your own customized playlist!

Playlist

How to get started

  1. Clone the GitHub repository of the Angular project to the local machine.
  2. Install Node.js and npm on the local machine if they are not already installed as they are required to run an Angular project.
  3. Navigate to the folder with the 'cd' command in a CMD. Install the dependencies required by executing 'npm intsall'.
  4. Start the local server by executing 'ng serve'. The server is now listening at http://localhost:4200/.
  5. Visit http://localhost:4200/ and go discover some new artists!

Backend design

The state management of this project was implemented using NgRx, a store that provides reactive state management for Angular apps inspired by Redux. Below is an outline for how the this was done

State management

Project Reflection

This website was created as a group project in the course web programing, EDAF90, at Lund University. None of the four group members had any prior experience with Angular. The contributing group members were, in no particular order: Ashley Lu, Ludvig Thornberg, Hendrik Shadman & Joel Bengs.

Time budget

The project was completed under the budgeted time of 160 hours (40h/student).

budget

Outcome

Our initial goal was to create a fairly simple but functional version of the Spotify app, with focus on backend functionality. The webpage was supposed to include a search function, a discography view, a tracklist for the selected album and a playlist where the viewer can add and remove tracks. The app uses the public spotify API to attain information about artists, albums and tracks. We opted out of letting the user sign in to spotify and instead used an access token generated from one of our accounts, to simplify. We also thought of implementing a function that would allow the viewer to play the songs in the playlist but as we progressed we realized that this was out of scope for the project. There are some minor functionalities that did not turn out as expected, such as adaptive height on angular material elements (now the tracklist and playlist can overflow their respective containers), and several non-fatal error messages in the console (often related to the API calls).

Apart from the above mentioned flaws, the functionality that we initially wanted was successfully implemented.

About

[Web] A discography website built on Spotify's API using Angular, TypeScript & the Redux framework NgRx

Topics

Resources

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •