Rails 5 re-write of Coursemology
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
app Removed course argument from Course::Mailer's methods Sep 13, 2018
bin Add webpack-dev-server back into repo Apr 4, 2018
client Rename frontend allCorrect Sep 12, 2018
config Display summary of booleans on assessment/show Sep 12, 2018
db Add toggles to choose autograding test cases and allow finalising Sep 12, 2018
lib Add safe navigation operator for method Aug 15, 2018
log rails new Aug 12, 2014
public Rescue ActionController::InvalidAuthenticityToken error Feb 1, 2018
spec Removed course argument from Course::Mailer's methods Sep 13, 2018
vendor/assets Remove jquery-shorten Sep 9, 2017
.codecov.yml Update README and codecov config Mar 16, 2017
.coveralls.yml Fix Travis integration config option in .coveralls.yml. Dec 10, 2014
.foreman Set default procfile for dev enviroment Nov 10, 2016
.gitignore Fix duplicate hamburger button Sep 10, 2018
.gitmodules voice response question react components Oct 3, 2017
.hound.yml Do not use JSHint for client code Nov 8, 2016
.jshintignore Do not use JSHint for client code Nov 8, 2016
.jshintrc Fix jshintrc issue Aug 7, 2018
.rspec Reorder loading of test-related gems Nov 28, 2017
.rubocop.unhound.yml Update rubocop config Apr 3, 2018
.rubocop.yml Disable Bundler/OrderedGems since our gems are grouped by function Apr 3, 2018
.scss-lint.yml Update scss linter for CSS Modules Nov 8, 2016
.travis.yml Blacklist dependabot branches for travis CI Aug 26, 2018
.yardopts Improve documentation for component framework May 31, 2017
CONTRIBUTING.md [ci skip] Update contributing guide to Github wiki Oct 19, 2017
Gemfile Bump webpacker from 3.0.2 to 3.5.5 Aug 29, 2018
Gemfile.lock Merge pull request #3116 from Coursemology/dependabot/bundler/chromed… Sep 20, 2018
LICENSE Happy new year 2018! 🎉🎉🎉 Jan 1, 2018
Procfile.dev Setup webpack dev server Feb 26, 2017
README.md rwordnet requires ruby >= 2.4.0 Sep 13, 2018
Rakefile Add frozen string literal magic comments Apr 3, 2018
config.ru Fix Layout/ExtraSpacing lints Apr 4, 2018


Coursemology Build Status

Code Climate codecov Security Inline docs Slack

Coursemology logo

Coursemology is an open source gamified learning platform that enables educators to increase student engagement and make learning fun.

Setting up Coursemology

System Requirements

  1. Ruby (>= 2.4.0)
  2. Ruby on Rails
  3. PostgreSQL (>= 9.5)
  4. ImageMagick or GraphicsMagick (For MiniMagick- if PDF processing doesn't work for the import of scribing questions, download Ghostscript)
  5. Node.js (<= 9.6)
  6. Yarn

Coursemology uses Ruby on Rails. In addition, some front-end components use React.js. This guide written by the awesome people at GoRails should help you to get started on Ruby on Rails.

Getting Started

  1. We use submodules in the git repo; use this command to update submodules:

    git submodule update --init --recursive
  2. Download bundler to install dependencies

    $ gem install bundler
  3. Install ruby dependencies

    $ bundle install --without ci:production
  4. Install javascript dependencies

    $ cd client && yarn; cd -
  5. Create and seed the database

    $ bundle exec rake db:setup
  6. Start webpack and the development app server

    $ foreman start

    Or if you are not using foreman:

    # Start the webpack dev server:
    $ cd client && yarn build:development
    # Run this command to compile the assets before running the test suite.
    $ cd client && yarn build:test
  7. You're all set! Simply login with the default username and password:

Email: test@example.org

Password: Coursemology!


Multi Tenancy

To make sure that multi tenancy works correctly for you, change the default host in config/application.rb before deploying:

config.x.default_host = 'your_domain.com'

Opening Reminder Emails

Email reminders for items which are about to start are sent via a cronjob which should be run once an hour. See config/initializers/sidekiq.rb and config/schedule.yml for sample configuration which assumes that the Sidekiq and Sidekiq-Cron gems are used.

If you use a different job scheduler, edit those files so your favourite job scheduler invokes the ConsolidatedItemEmailJob job once an hour.

Found Boogs?

Create an issue on the Github issue tracker or come talk to us over at our Slack channels.


We welcome contributions to Coursemology! Check out the issue tracker and pick something you'll like to work on. Please read our Contributor's Guide for guidance on our conventions.

If you are a student from NUS Computing looking for an FYP project, do check with Prof Ben Leong.


Copyright (c) 2015-2018 Coursemology.org. This software is licensed under the MIT License.

Using Coursemology

You're more than welcome to use Coursemology for your own school or organization. If you need more help, join our Slack channel to reach our core developers.

We are actively running Coursemology and can provide free use of our infrastructure on a case by case basis. Please contact Prof Ben Leong if you would like to explore this option.


The Coursemology.org Project was made possible by a number of teaching development grants from the National University of Singapore over the years.