Skip to content
Course management service that enables auto-graded programming assignments.
Ruby HTML Java JavaScript CSS Shell Other
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Added error hndling for nil file contents Oct 12, 2019
bin Feature: Speedgrader (#1032) May 10, 2019
config Feature: Speedgrader (#1032) May 10, 2019
db Spring 2018 Mass Updates PR (#974) May 19, 2018
docker [config] Strengthen SSL configuration Apr 29, 2015
examples Add files via upload Aug 25, 2016
lib Feature: Speedgrader (#1032) May 10, 2019
public Autolab v2.1.0 (#946) Dec 19, 2017
script Autolab 2.0.1 Release (#782) Mar 2, 2017
spec Spring 2018 Mass Updates PR (#974) May 19, 2018
templates Ran rubocop --autocorrect Mar 13, 2015
.dockerignore Added dockerignore to ignore Git folder Apr 28, 2015
.gitignore Spring 2018 Mass Updates PR (#974) May 19, 2018
.rake_tasks~ Autolab 2.0.1 Release (#782) Mar 2, 2017
.rspec Merge in RSpec templates. Add Factory Girl. Jan 5, 2015
.rubocop.yml Auto Correct Mar 31, 2015
.rubocop_todo.yml Update Rubocop Apr 27, 2015
.ruby-version Bump ruby version for rspec testing framework Nov 29, 2016
.travis.yml Spring 2018 Mass Updates PR (#974) May 19, 2018 Fix numbering issue Dec 31, 2016
Dockerfile Move docker-specific config files into docker/ Apr 20, 2015
Gemfile Spring 2018 Mass Updates PR (#974) May 19, 2018
Gemfile.lock Spring 2018 Mass Updates PR (#974) May 19, 2018
LICENSE Revert license to Apache Feb 25, 2016 Update Sep 26, 2019
Rakefile Ran rubocop --autocorrect Mar 13, 2015 Ran rubocop --autocorrect Mar 13, 2015 Autolab v2.1.0 (#946) Dec 19, 2017

Autolab is a course management service, initially developed by a team of students at Carnegie Mellon University, that enables instructors to offer autograded programming assignments to their students over the Web. The two key ideas in Autolab are autograding, that is, programs evaluating other programs, and scoreboards.

Autolab also provides other services that instructors expect in a course management system, including gradebooks, rosters, handins/handouts, lab writeups, code annotation, manual grading, late penalties, grace days, cheat checking, meetings, partners, and bulk emails.

Since 2010, Autolab has had a transformative impact on education at CMU. Each semester, it is used by about 5,000 CMU students in courses in Pittsburgh, Silicon Valley, Qatar, and Rwanda. In Fall, 2014, we are releasing Autolab as an open-source system, where it will be available to schools all over the world, and hopefully have the same impact it's had at CMU.

Build Status


We released new documentation! Check it out here.


Setting up Tests

  1. Add a test database in database.yml

  2. Create and migrate the database.

    RAILS_ENV=test bundle exec rake db:create
    RAILS_ENV=test bundle exec rake db:migrate

    Do not forget to use RAILS_ENV=test bundle exec in front of every rake/rails command.

  3. Create necessary directories.

    mkdir attachments/ tmp/

Running Tests

After setting up the test environment, simply run spec by:

bundle exec rake spec

Rails 5 Upgrade

We are currently in the process of migrating Autolab to Rails 5.1 and Ruby 2.6.3. The relevant branch is rails-5-upgrade. All discovered UI breakages have been fixed and preliminary integration testing with Tango has been successful. If there are any discovered issues, please file an issue.


We encourage you to contribute to Autolab! Please check out the Contributing to Autolab Guide for guidelines about how to proceed. Join us!


Autolab is released under the Apache License 2.0.

Using Autolab

Please feel free to use Autolab at your school/organization. If you run into any problems, you can reach the core developers at and we would be happy to help. On a case by case basis, we also provide servers for free. (Especially if you are an NGO or small high-school classroom)

You can’t perform that action at this time.