A Ruby on Rails app to manage workshops

Branch Travis CI Code Analysis Heroku Deploy Errbit
master Build Status Coverage Status Code Climate Heroku [link] [link]
dev Build Status Coverage Status Heroku [link]

When all tests succeed on Travis CI, the application is deployed to Heroku. Click the badges for detailed info.
The uptime of the deployed applications can be tracked here.
Errors that occur while using the deployed master branch on Heroku are logged to the Errbit error catcher, you can sign in with your Github account.

Local Setup

  • bundle install Install the required Ruby gem dependencies defined in the Gemfile
  • cp database.sqlite.yml database.yml Select database config (for development we recommend SQLite)
  • rake db:create db:migrate db:seed Setup database, run migrations, seed the database with defaults
  • rails s Start the Rails development server (By default runs on localhost:3000)
  • rspec Run all the tests (using the RSpec test framework)

Setup using Vagrant (Virtual Machine)

If you want to use a VM to setup the project (e.g. when on Windows), we recommend Vagrant. Please keep in mind that this method may lead to a loss in performance, due to the added abstraction layer.

vagrant up # bring up the VM
vagrant ssh # login using SSH
cd hpi-swt2
echo "gem: --no-document" >> ~/.gemrc # disable docs for gems
bundle install # install dependencies
gem install pg # required for Postgres usage
cp config/database.psql.yml config/database.yml # in case you want to use Postgres
cp config/database.sqlite.yml config/database.yml # in case you want to user SQLite
exit # restart the session, required step
vagrant ssh # reconnect to the VM
cd hpi-swt2
rails s -b 0 # start the rails server
# the -b part is necessary since the app is running in a VM and would
# otherwise drop the requests coming from the host OS

Important Development Commands

  • bundle exec <command> Run command within the context of the current gemset
  • rspec spec/controller/expenses_controller_spec.rb Specify a folder or test file to run
  • rails c Run the Rails console
  • rails c --sandbox Test out some code without changing any data
  • rails g migration DoSomething Create migration db/migrate/*DoSomething.rb_.
  • rails dbconsole Starts the CLI of the database you're using
  • rake routes Show all the routes (and their names) of the application
  • rails assets:precompile Precompile the assets in app/assets to public/assets
  • rake about Show stats on current Rails installation, including version numbers
  • rspec --profile examine how much time individual tests take