Skip to content

hpi-swt2/workshop-portal

Repository files navigation

workshop-portal

A Ruby on Rails app to manage workshops

Branch Travis CI Code Analysis Heroku Deploy
production Build Status Coverage Status Heroku
dev Build Status Coverage Status Code Climate Heroku

When all tests succeed on Travis CI, the application is deployed to Heroku. Click the badges for detailed info.

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
bundle install # install dependencies
rbenv rehash # reload newly installed binaries
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