Skip to content

A dynamic web app that creates curated playlists based on multiple user's music preferences using Spotify.

Notifications You must be signed in to change notification settings

WePickOrganization/WePick

Repository files navigation


A dynamic web app that creates curated playlists based on multiple user's music preferences using Spotify.

BuildStatus

Build Status Website shields.io GitHub license

WhatIsWePick

WePick is an application that works in parallel with Spotify to help solve the age old problem of deciding what to listen to when you are with a group of friends. It accomplishes this by creating curated Spotify playlists that are generated using each user's favorite artists and a selected mood.

Pre

You should install/setup the following before attempting to run the application

Feature

Front-End

  • The front-end of the application was built using React.
  • Single page application with dynamically rendered components
  • Responsive and designed with a modern look and feel
  • Design promotes re-use and abstraction of implemented components

Back-End

  • Python/Flask Server Backend
  • RESTful Web API with Javascript Web Token Secured Endpoints
  • Works in parallel with Spotify using our own version of the Spotipy Python library
  • Includes JSON Schema Validation for all incoming HTTP request methods
  • Use of Object-Orientated Python programming throughout

Database

  • Account register/login integrated with remote MongoDB Database hosted on Amazon Web Services Virtual Machine
  • Securely stored passwords using SHA256 Hashing Algorithm
  • Secure database connection, authentication required before use

Version Control/Deployment

  • The application's version control is managed by Git
  • Utilizes MochaJS, Travis and Amazon Web Services to deliver a fully automatated delivery pipeline
  • Committed code is ran against tests and if it passes, is subsequently deployed to our AWS Elastic Beanstalk Enviroment
  • You can find the application hosted here.

Running

The following are steps required to compile the source code for this application.

  • 1. Download Source Code
    Via SSH
    git clone git@github.com:WePickOrganization/WePick.git
    

    Via HTTPS

    git clone https://github.com/WePickOrganization/WePick.git
    
  • 2. Setup React front-end

    Navigate to react-frontend folder

    cd react-frontend
    

    Install required Node modules

    npm install
    

    Compile the JavaScript - Standard

    npm run dev
    

    Compile the JavaScript - Development

    npm run start
    
  • 3. Setup Flask Server

    Install required Python packages

    pip install -r requirements.txt
    

    Start the server

    python application.py
    

    Navigate to

    http://127.0.0.1:5000/ 
    

Doc

A comprehensive writeup on the development process can be found in the docs folder of the project.

You can read our dissertation on this project here..

If you think the documentation is lacking and/or you have any issues with the project, please open an Issue using GitHub's Issues tab. You can do that here.

Video

Technology

Resources

A collection of resources used when developing the project can be found below

Devs

Acknowledge

About

A dynamic web app that creates curated playlists based on multiple user's music preferences using Spotify.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published