Skip to content

TeamT-T/Greenfield

Repository files navigation

Track Filter

Want to get your SoundCloud feed, but want to filter out some of the noise? The Track Filter web app allows you to specify which posts from your SoundCloud feed you want to see. You can search for different artists in your feed, or tracks by duration and genre. You can also create your custom filters based on the people you are following, and save those filters. Loading a filter will automatically show you posts based on the filter you have selected.

While we have implemented this solution for SoundCloud, we can see this being extensible to other social platforms like Facebook and Twitter as well.

Your feed, your way, no noise!

Team

  • Aaron Xavier
  • Jennifer Hwa
  • Rishi Raje

Table of Contents

  1. Usage
  2. Requirements
  3. Development
    1. Installing Dependencies
    2. Tasks
  4. Roadmap
  5. Contributing

Usage

Try it out

You can check out what the app does by visiting http://track-filter.herokuapp.com/. The music tracks might take a while to load depending on the delay from SoundCloud in sending over the embed information for all tracks.

The site loads with a current user logged in - Aaron Xavier. The default tracks you see when you visit the webpage, represent an unfiltered sample of Aaron's feed from Sound Cloud.

You can try out the following functionality -

  1. Search for specific artists, genres and durations
  2. Create a filter of the people you are following - you can add multiple people to a single filter
  3. Load previously created filters and see feed results based on those filters

Run it locally

After installing all dev dependencies (see section below), you can run the command

npm start

to start the client and server. If you want to individually start and stop the server, nodemon and webpack will be installed as part of the dependencies.

User accounts

As mentioned above, the app currently uses a single user account to display the feed. If you want to test this for other SC user accounts, you will need to programatically get a non-expiring token from SoundCloud for the user in question and save it locally in a DB.

Ping any of the team members if you want to create another user

Requirements

  • Node 7.8.x

Development

  • React for the client
  • Express and Node for the server
  • ClearDB hosted on Heroku for the database

SoundCloud API

The reference for the SoundCloud API as well as other helpful guides can be found here - https://developers.soundcloud.com/. Registering an app with SoundCloud can take up to 3 weeks. Reach out to one of the original team members for information on how to get an app key and secret that you can use for development and testing purposes.

Database

Instead of a local DB, the project uses the CLearDB mysql DB that is hosted on Heroku. This might lead to difficulties in trying to access the data from a CLI. Sequel PRO will help you connect to this remote DB and view all the schema, data, as well as run queries and manipulate the data.

Testing

To run all the test suites, run npm test from the command line.

Client tests

We have used JEST for client side testing. All client tests can be found in ./spec/client/components.

Server tests

Server tests use mocha, chai and supertest. All server tests can be found in ./test

Continuous integration

Circle CI provides continuous integration support. A new PR will automatically trigger a run of all the tests in the test suites. No additional integration should be required.

The result of the tests will be displayed on Github before merging the PR. This can give the reviewer more confidence in merging the changes.

Currently the option to deploy the changed instantly to Heroku through Circle CI have been disabled. See the deployment section for more information on deploying.

Installing Dependencies

From within the root directory:

npm install

Environment variables and keys

If you plan on adding to this project you will need the following information -

  1. Credentials to connect to the clearDB on Heroku.
  2. The API key and secret from SoundCloud

Please reach out to one of the team members for details on these.

Deployment

The app is currently deployed on Heroku and uses a deployment pipeline.

  • A review app will automatically be created when a PR is created
  • A staging version of the app will be created when the PR is merged
  • Promotion from staging to production is a manual through Heroku.

All of the intermediate apps can be accessed through Heroku, while the production app will live on http://track-filter.herokuapp.com/

Roadmap

View the project roadmap here

Contributing

See CONTRIBUTING.md for contribution guidelines.

About

SoundCloud Feed Filter

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •