Giter Club home page Giter Club logo

soundpile's Introduction

SoundPile

Heroku link

Minimum Viable Product

SoundPile is a clone of SoundCloud built on Rails and Backbone. Users can:

  • Create accounts
  • Create sessions (log in)
  • View songs individually
  • Play songs (with ajax player)
  • Make song listing into a player that syncs with persistent player
  • View index of all songs
  • Post songs
  • View another user's posted songs
  • Like songs
  • View liked songs

Design Docs

Implementation Timeline

Phase 1: User Authentication (~1 day)

I will implement user authentication in Rails based on the practices learned at App Academy. By the end of this phase, users will be able to log in, but will not yet be able to interact with songs. I will include a basic navbar header. The most important part of this phase will be pushing the app to Heroku and ensuring that everything works before moving on to phase 2.

Details

Phase 2: Viewing Songs and Profiles (~2 days)

I will add API routes to serve profile and song data as JSON, then add Backbone models and collections that fetch data from those routes. By the end of this phase, users will be able to view songs alone or on a user's profile page, and play them with a barebones embedded mp3. I will use Amazon S3 to store the audio files.

Details

Phase 3: Persistent Player (~2 days)

I plan on creating a persistent player view which will remain on the page even when clicking any links, without interrupting playback. At this stage the player will have only play and pause functionality. I will be using SoundManager2 for audio playback.

Details

Phase 4: Liking and Reblogging Songs (~1 day)

I plan on adding 'like' and 'reblog' buttons to the player, as well as add a page to list songs that a user has liked. This will be similar to viewing a user's profile to view their reblogged songs.

Details

Phase 5: Fancy Player (~2 days)

I will add playlist functionality to the player -- If you start playing a song from a page with multiple songs, it will automatically load the next song from that list when the previous song ends. I also plan on adding a link in the persistent player to zoom to the part of the page where you started playing music.

Details

Bonus Features (TBD)

  • Typeahead search bar
  • Keyboard controls
  • Follow users to see their posted songs in your stream
  • Like/reblog/play counts on song listings
  • Multiple sessions/session management
  • User avatars, album art
  • Song/artist search

soundpile's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

soundpile's Issues

fancy player

because the fancy player is the more impressive part of soundcloud, I'd probably swap phase 4 and phase 5. I think liking and reblogging will be good features, but not as impressive from an employers perspective as the player staying on the page and doing fancy things.

zombie code

is this zombie code with no setup or build instructions for nginx or apache2?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.