A dynamic web app that creates curated playlists based on multiple user's music preferences using Spotify.
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.
You should install/setup the following before attempting to run the application
- 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
- 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
- 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
- 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.
The following are steps required to compile the source code for this application.
-
Via SSH
git clone [email protected]: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/
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.
A collection of resources used when developing the project can be found below