Skip to content

Instantly share code, notes, and snippets.

@hjoseph96
Last active March 31, 2016 17:18
Show Gist options
  • Save hjoseph96/29be4f8fe56ffc1432335efadd51efd8 to your computer and use it in GitHub Desktop.
Save hjoseph96/29be4f8fe56ffc1432335efadd51efd8 to your computer and use it in GitHub Desktop.
Notifications & At-Mentions
====
### Relevant Tech
1. [message_bus](https://github.com/SamSaffron/message_bus)
### Tasks
1. GoRails [1](https://gorails.com/episodes/in-app-navbar-notifications?autoplay=1), [2](https://gorails.com/episodes/at-mentions?autoplay=1)
Messaging
====
### Relevant Tech
1. [message_bus](https://github.com/SamSaffron/message_bus)
1. [mailboxer gem](https://github.com/mailboxer/mailboxer)
1. GoRails [1](https://gorails.com/episodes/mailboxer-mark-as-read?autoplay=1), [2](https://gorails.com/episodes/in-app-messaging-between-users?autoplay=1)
### Tasks
1. Implement Mailboxer for out of box messaging for users
1. Add redis pub/sub w/ message_bus
1. Realtime user is typing notification
1. Realtime message update (w/o refresh onmessage)
1. Tie into notification pub/sub system (new message notif)
**Time: 40 hours**
Admin Panel
====
### Relevant Tech
1. [Filterrific](https://github.com/jhund/filterrific) ([example](http://filterrific-demo.herokuapp.com/students))
1. [kaminari pagination](https://github.com/amatsuda/kaminari) (seems to already be done 👍)
### Tasks
1. Develop admin panel
1. Add admin route and namespace users and critiques (all other admin resources)
1. Add admin folder to /controllers, and create AdminController (which all controllers in /admin will inherit from)
1. Add admin boolean column, or roles array column (i’d prefer roles, users can have many roles and would rather not add a column every time).
1. Add before_filter for all admin controllers that User.admin? or User.roles.include? :admin
1. User filters
1. create Admin::UsersController
1. Add filterrific scopes to User model (by verification stage, date joined, etc.)
1. create index action using filterrific scopes & pagination
1. Critique filters
1. create Admin::CritiqueController
1. Add filterrific scopes to Critique model (in progress, available for editing, etc.)
1. create index action using filterrific scopes & pagination
**Time: 20 hours**
Native Upload System
====
Another typebeast parallel, was shooting for SoundCloud, Dropbox, and google drive support
### Relevant Tech
1. [unproven gem that’s worth a shot](https://github.com/projecthydra/browse-everything)
1. [google_drive](https://github.com/gimite/google-drive-ruby)
1. [dropbox](https://github.com/futuresimple/dropbox-api)
1. [soundcloud](https://github.com/soundcloud/soundcloud-ruby)
1. [audio file details](https://github.com/robinst/taglib-ruby)
1. [not so native uploader](https://uploadcare.com/) + [rails gem](https://github.com/uploadcare/uploadcare-rails)
1. [carrierwave](https://github.com/carrierwaveuploader/carrierwave)
### Tasks
1. Develop Main BT Upload Microservice (central destination for files from all sources) which handles migration from external sources to user accounts and AWS
1. Develop microservice for each file source to pipe into main uploader (ex SoundcloudUploader, DropboxUploader, FileUploader, etc.)
**Time: 8 hours + (5 hours per file source) OR 10hrs with uploadcare**
Artist Page
====
The artist page is the producer's personal page. It has all their songs/albums, link to external accounts, and bio/contact page.
https://zpl.io/ZbEJBh
https://zpl.io/1caH1U
Charts
====
Charts are based on the most popular tracks on BeatThread. We need to develop an algorithm based on rating (likes/dislikes) and social shares to determine the most popular tracks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment