/my_stream

Upload, organize, and stream back your music collection

Primary LanguageCSS

Description

An application to store your personal music library in the cloud. This application allows:

  • Batch uploading

  • Automatic cataloging by track metadata

  • Playlist creation

  • Muiltiple users

You can think of it as a BYOM (bring your own music) version of Spotify

Requirements

  • Ruby 2.2

  • Rails 4.2.4

  • Postgresql

Clone

$ git clone https://github.com/gathergoose/my_stream && cd my_stream

Install gems

$ bundle install

Create, seed, and migrate the database

$ rake db:setup

This will create a user with the credentials email: user@my-stream.io password: password.

To launch the application in development mode, run

$ rails server

Then visit localhost:3000 and login with the above credentials.

Configuration

Currently, all new users need to be made from the rails console. The ability for an “admin” to “invite” users has yet to be built into the front-end of the application. *For example:*

$ rails console

irb(main):001:0> bob =  User.new(email: "bob@gmail.com", password: "b389CV20n") 
=> #<User id: nil, username: "", admin: false, email: "bob@gmail.com", encrypted_password: "$2a$10$nWVAPj.ZuDeCmuopeupIg.DYq3WYeGMx9klhU0jQbeI...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: nil, updated_at: nil>
irb(main):002:0> bob.save
  (0.3ms)  BEGIN
  User Exists (0.6ms)  SELECT  1 AS one FROM "users" WHERE "users"."email" = 'bob@gmail.com' LIMIT 1
  SQL (0.8ms)  INSERT INTO "users" ("email", "encrypted_password", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"  [["email", "bob@gmail.com"], ["encrypted_password", "$2a$10$nWVAPj.ZuDeCmuopeupIg.DYq3WYeGMx9klhU0jQbeIQTJEEqDkqi"], ["created_at", "2016-07-13 21:21:04.535939"], ["updated_at", "2016-07-13 21:21:04.535939"]]
  (0.9ms)  COMMIT
=> true
irb(main):003:0>

Now you can login as bob@gmail.com using the password b389C V20n

Testing

This application is tested using Rspec. To run the test suite just:

$ bundle exec rspec