Skip to content
GradeCraft is a gameful learning management system, intended to help motivate students to be more engaged in their own learning.
Ruby HTML CSS JavaScript CoffeeScript
Latest commit 4626ba6 Jun 25, 2016 @chcholman chcholman committed on GitHub Merge pull request #2166 from UM-USElab/fix-submission-link-validation
Add validation around character length for submission links
Failed to load latest commit information.
app Merge pull request #2166 from UM-USElab/fix-submission-link-validation Jun 25, 2016
bin Switch from single to double quotes Feb 24, 2016
config Removed predictor settings page Jun 24, 2016
coverage/assets/0.10.0 updated gitignore Jul 20, 2015
db replace weights form with interactive weights page Jun 20, 2016
doc Added docs for analytics and analytics_dashboard. Sep 10, 2013
lib Updated rake tasks Jun 24, 2016
log Initial rails install Nov 8, 2011
make Create a bootstrapping `Makefile`. Aug 22, 2013
public remove extraneous uploads Jun 6, 2016
script And Mar 1, 2016
spec Removed predictor settings page Jun 25, 2016
sql change points nomenclature Jun 15, 2016
vendor/assets added slick plugin for course events module slider Jun 14, 2016
.autotest Switch from single to double quotes Feb 25, 2016
.bowerrc install bower in app for javascript and css package management, insta… Aug 22, 2015
.codeclimate.yml Stop telling me about duplicate Code Climate Jun 7, 2016
.csslintrc Code climate CLI Dec 13, 2015
.env.sample add AWS_S3_DEVELOPER_TAG to .env.sample with comments on its usage Feb 15, 2016
.eslintrc Code climate CLI Dec 13, 2015
.gitconfig Updates to student dashboard and submission process Jul 16, 2013
.gitignore there shouldn't be an /uploads directory anyway Jun 6, 2016
.production_testing.env add stupid froala license file Aug 26, 2015
.rspec Require spec_helper instead of base_spec_helper Oct 27, 2015
.rubocop.yml working example of filenaming in background job Jun 16, 2016
Dockerfile explicitly provide production env Mar 7, 2016
Gemfile Remove timeline.js elements Jun 16, 2016
Gemfile.lock Remove timeline.js elements Jun 17, 2016
Guardfile Hash syntax updated Mar 2, 2016
LICENSE Added license Oct 31, 2012
Procfile bugfix rubric grade edit return path Nov 16, 2015 Update docs to be more specific re Ruby version Dec 5, 2015
Rakefile Hash syntax updated Mar 3, 2016 Completed staging auto scale testing Aug 9, 2014
Vagrantfile Remove unncessary steps from Vagrant provisioning Feb 23, 2016
bower.json add interactive grade edit ui plus implement animation library and di… Aug 22, 2015
coffeelint.json Code climate CLI Dec 13, 2015 Switch from single to double quotes Feb 25, 2016
custom_plan.rb Switch from single to double quotes Feb 25, 2016
package.json add interactive grade edit ui plus implement animation library and di… Aug 22, 2015
zeus.json bootstrap zeus-parallel_tests. remove factory self-tests. remove plai… Aug 22, 2015

Gradecraft is a gamified learning management system.

Codeship Status for UM-USElab/gradecraft-development

Test Coverage

Code Climate

Current features:

  • Badges
  • Teams (course-long memberships)
  • Groups (single-assignment memberships)
  • Assignments
  • Assignment Submissions
  • Student Dashboard
  • Interactive Grade Predictor
  • Interactive Course Timeline
  • Grading Rubrics
  • Export students and final grades
  • User analytics
  • Team analytics
  • Learning analytics suite
  • Custom leveling system
  • Assignment stats
  • Student-logged assignment scoring
  • Multipliers (students decide assignment weight)

Coming soon:

  • Assignment Unlocks
  • Multi-factor leveling system


  • Ruby 2.2.2
  • PostgreSQL
  • MongoDB
  • Redis

Installation instructions for development:

  1. Clone repository
  2. Run cp config/database.yml.sample config/database.yml (within the file, replace username with your current username
  3. Run cp config/mongoid.yml.sample config/mongoid.yml
  4. Run cp .env.sample .env
  5. Run bundle install
  6. Run bundle exec rake db:create
  7. Optional: run bundle exec rake db:sample
  8. Run foreman start

Development Environment with Vagrant

  1. Install Vagrant (
  2. Clone repository
  3. vagrant up
  4. vagrant ssh
  5. cd /vagrant
  6. foreman start
  7. Browse to http://localhost:5000/
    • See db/samples.rb for dev usernames and passwords

Running specs

To run all of the spec examples, you can run the following (this is also the default rake task):

bundle exec rake spec

To run all of the spec examples with code coverage, you can run the following:

bundle exec rake spec:coverage

Viewing email

The application is using Mailcatcher to collect email on development.

Mailcatcher runs a daemon in the background which is started by Foreman and opens up an SMTP port on localhost:1025.

In order to view the emails that are sent, you can visit http://localhost:1080 to view emails that were delivered by the application.


  1. Clone the repository git clone
  2. Create a feature branch git checkout -b my-awesome-feature
  3. Code!
  4. Commit your changes (small commits please)
  5. Push your new branch git push origin my-awesome-feature
  6. Create a pull request hub pull-request -b um-uselab:master -h um-uselab:my-awesome-feature
Something went wrong with that request. Please try again.