Chime is a web application inspired by SoundCloud, built on Rails and React.js.
Chime allows users to:
- Create and update a user account
- Sign In / Sign Out
- Search other users
- Upload and delete audio files
- Stream tracks without interruption
- Add tracks to the audio playback queue
- Search for tracks by title
- Create, edit, or delete playlists
- Add tracks to or remove tracks from playlists
I will begin by implementing user signup and authentication (via BCrypt). There will be a basic landing page after signup that will contain the container for the application's root React component.
I will set up Flux, the React Router, and the React view structure for the main application. The music tracks will live in a Tracks Store.
Using an API for track uploads, I will add API routes to serve track URLs as JSON. I will add Playlist and Playlisting to allow users to create playlists and add tracks to playlists.
I will use the native HTML5 audio to stream the tracks. To test the audio stream, I will create a stream bar in the UI, which persists at the bottom of the page.
I will add new Comment and Like models for tracks. Corresponding routes, controllers, and views will be set up.
I will add the main page that the user will see after logging in. This feed will contain followed users' tracks. The nav and sidebar views will be created.
Devote time to perfecting the UI.
- Popular tracks in feed
- User account email activation
- Playlist likes (polymorphic Like model)
- Equalizer UI
- Fancy animations