Quadbase.org - Question Banking Made Easy
Ruby HTML JavaScript CSS
Latest commit ea5ff36 May 3, 2016 @jpslav jpslav Merge pull request #240 from Dantemss/dont_export_parts_of_multiparts
Don't export parts of multiparts
Failed to load latest commit information.
app Keep question search disabled Apr 21, 2016
config Merge branch 'master' into practice_widget_api Sep 25, 2013
db Removed linkifier table Sep 30, 2013
public Merge remote-tracking branch 'upstream/master' Jun 14, 2012
script initial import of baseline Aug 26, 2011
test Updated tests to reflect changes in controllers Oct 25, 2013
vendor cleaned out OBE practice widget code Mar 13, 2013
.gitignore ignore data.yml files Mar 8, 2013
.gitmodules initial import of baseline Aug 26, 2011
.ruby-version When a user_id is specified in the export, also export the lists that… Mar 21, 2016
.rvmrc reintroduced bullring, fixed logic attr_accessible problem Jun 19, 2012
.travis.yml fixed a few renaming exceptions Jul 26, 2012
COPYRIGHT top level license copyright file stuff Feb 7, 2012
Capfile initial import of baseline Aug 26, 2011
GNU-AGPL-3.0 top level license copyright file stuff Feb 7, 2012
Gemfile Added xlsx export; Organized import/export tasks into folders Jan 30, 2015
Gemfile.lock Added xlsx export; Organized import/export tasks into folders Jan 30, 2015
LICENSING top level license copyright file stuff Feb 7, 2012
README.md Put dependencies in the proper place Jun 20, 2012
Rakefile got rid of single_test Mar 8, 2013
Vagrantfile updated vagrant file May 4, 2012
config.ru updated files to reflect AGPL licensing Feb 7, 2012
notes.txt changed the logger.new {} to logger.new()" May 24, 2012
plans.txt initial import of baseline Aug 26, 2011



Build Status

Quadbase is an open homework and test question bank, where questions are written by the community and access is free.

Check it out at http://quadbase.org


To run Quadbase, you must have the following dependencies installed:

  • Ruby 1.9.3

  • JRuby (for questions with logic) -- Needs to be installed through RVM

  • ImageMagick (for image uploads) -- Additionally, you'll need to set paths in config/initializers/paperclip.rb as well as in config/developer_settings.yml.


See the COPYRIGHT and LICENSING files.


Contributions to Quadbase are definitely welcome.

Note that like a bunch of other orgs (Apache, Sun, etc), we require contributors to sign and submit a Contributor Agreement. The Rice University Contributor Agreement (RCA) gives Rice and you the contributor joint copyright interests in the code or other contribution. The contributor retains copyrights while also granting those rights to Rice as the project sponsor.

The RCA can be submitted for acceptance by emailing a scanned, completed, signed copy to info@[the quadbase domain]. Only scans of physically signed documents will be accepted. No electronically generated 'signatures' will be accepted.

Here's how to contribute to Quadbase:

  1. Send us a completed Rice Contributor Agreement
  2. Fork the code from github (https://github.com/lml/quadbase)
  3. Create a thoughtfully named topic branch to contain your change
  4. Make your changes
  5. Add tests and make sure everything still passes
  6. If necessary, rebase your commits into logical chunks, without errors
  7. Push the branch up to GitHub
  8. Send a pull request for your branch

Quick Development How-To

Use Vagrant

We provide a Vagrant box that you can use for development. It has everything you need to get going

  1. Install vagrant (gem install vagrant)
  2. vagrant box add quadbase http://dsp.rice.edu/public/quadbase/quadbase.box
  3. Clone your fork of quadbase, and cd into that directory
  4. Run vagrant up
  5. vagrant ssh
  6. At the vagrant VM prompt, cd /vagrant
  7. bundle exec rails server or be rails s

Bring up http://localhost:3000 in a web browser to see the site. Do development with your native tools.

Install everything yourself

The best way to go is to install RVM on your machine. Install Ruby 1.9.3 (e.g. rvm install 1.9.3-p194) and install the bundler gem. You may run into some issues where you need to install some supplemental libraries first. The question logic capability uses jruby under the covers, so you should also install jruby through rvm (rvm install jruby).

When you have RVM and bundler, fork the code and change into the quadbase directory. We have a .rvmrc file in the top-level directory so RVM should setup things to use Ruby 1.9.3 and the quadbase gemset.

bundle --without production
bundle exec rake db:migrate
bundle exec rails server

To upload images to questions, you'll need to have ImageMagick installed and set the parameters appropriately in config/developer_settings.yml. Check out the developer_settings.yml.example file for help.

That's it. You should then be able to point a web browser to http://localhost:3000.