WeTube is an open source project for gSchool, built by Geoff Schorkopf, Paul Blackwell, Logan Sears, and Kyle Suss. The app implements service-oriented design; this repository contains three services (a frontend, playlist API, and chat API), a gem directory, and several rake commands, capistrano files, and spec files.
The product is a way to watch YouTube videos simultaneously with friends. Think of it as turntable.fm for video playlists. You can enter "theaters" (the seed data contains three - a theater for music videos, adorable animals, and sports plays) and chat with friends, add new videos, and play and pause videos as a group. Note: yes, we know that right now that things can get pretty trolly. Please be kind to your neighbor. We're working on a feature to solve that.
The graph below depicts our multi-app platform, and how the pieces intersect:
Production server is available at www.we-tube.us.
To install and deploy:
- Pull down repository
gem install god
gem install postgres
postgres start
(or your system's equivalent)ruby bundle.rb
god -c services.god -D
The last command will run a procfile/god command, starting several local servers and faye through private pub. In the change that you run into an error with bundle.rb, you may then have to enter chat, frontend, and playlist individually and run a 'rake db:migrate' to migrate the development databases.
Finally, enter frontend and run rake db:seed
to set up some initial theaters.
To run tests, run ruby rspec.rb
from the root directory. This will run a db:test:prepare on all relevant subdirectories and run the spec files.
To debug individual services, cd into the app's directory and run tail -f log/development.log
to keep watch of the log file as events come in. It will output all raises and puts statements.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
We all use twitter, so feel free to contact us there: