Skip to content

hughfm/soundshare

Repository files navigation

SoundShare

SoundShare is a Rails application primarily for exploring the uploading, playing and sharing of audio files.

Brief / Functionality

Users must sign up for an account before they can upload audio files.

When uploading a file, it can be set as public, enabling anyone to enjoy that file. If not set to public, the sound will only be available to the owner, and any users that the owner explicitly chooses to share with.

Tools & Technologies

The application was built with Ruby (2.2.2), Rails (4.2.3) and a PostgreSQL database.

The interface uses Bootstrap and the Flat UI theme.

File attachments and uploads were handled using the Refile gem, and AWS S3. When retrieving files, AWS Cloudfront is configured to optimise performance.

The playback of audio files and rendering of waveforms was implemented with the Wavesurfer.js javascript library.

Notes and Challenges

There were many challenges associated with streamlining the upload page. I have integrated the Refile uploader with Wavefurfer, so the following happens when an audio file is chosen, or dragged into the drop area:

  • presigned upload begins direct to S3, with progress displayed underneath the drop area
  • audio file is loaded locally, and can be previewed with Wavesurfer as the upload is taking place
  • file can be saved to the database once the upload is complete

The HTML file input was particularly challenging to style!

Comments/questions are welcome, email Hugh Middleton (hughfmiddleton@gmail.com).

About

Rails application for uploading, playing and sharing audio files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published