Fork me on GitHub

Code grading made easy

Grade the code made by your students in a secure and easy to configure environment. Free and open-source.


Fully customisable feedback

Grade anything, instantly, and provide a fully descriptive feedback to your students


Simple interface

Code, press submit, and receive your grade. Simply.

Also compatible with edX, edX and many other LMS!

Designed with usability, scalability, and security in mind



Secure

INGInious runs untrusted code made by your students in completely jailed environment.

Customisable

INGInious can grade anything that can be used on a Linux machine, from C++ to Scala, including custom and exotic ones like Oz or even the Shakespeare Programming Language!

Integrable

INGInious can be used side-by-side with your LMS, via the Web App, but can also be directly integrated within, via LTI.

Performance

New grading jobs start in milliseconds, and grading is as fast as it was made on your own computer. INGInious is also scalable horizontally.

Technology



INGInious uses Docker to start jailed environments to test the code in milliseconds. Docker provides "containers", which can be seen as lightweight virtual machines, that can be fully customized using a very simple method. It allows to run anything you want, as long as it is runnable on a Linux machine.

Here is an example defining a new environment with Java 7, in two lines:

FROM    ingi/inginious-c-default
LABEL   org.inginious.grading.name="java7"
RUN     yum install -y java-1.7.0-openjdk java-1.7.0-openjdk-devel ant ant-junit bc

INGInious is written in Python 3. The simplicity and expressivity of Python helps to keep the code readable and easily extensible.

Thanks to the usage of MongoDB as database manager and Docker, INGInious instances can be blindly duplicated and linked, allowing effortless horizontal scalability. From an on-site course with 50 students to a MOOC with 10.000 students, INGInious will be able to handle the charge.

INGInious supports the LTI specification, allowing you to integrate it directly inside your Learning Management System (LMS) that is a LTI Consumer.
This includes Moodle, edX, Coursera and many other LMSs.

INGInious comes with two frontends: a simple web application that is a mini-LMS focused on code grading, and a frontend for integrating with your LMS. But INGInious is also a library, that can be used in other applications to remotely grade code using Docker and the containers made for INGInious.

Features


Common features

  • Simple and easy-to-use interface
  • Customized environments, easy to create
  • Customized grading scripts
  • Simple but powerful API for grading
  • Fully customized feedback
  • Code box questions
  • Multiple choice questions
  • File upload questions
  • Syntax highlighting
  • Submission storage
  • Distant Docker instances
  • Repartition of charge among multiple Docker instances

Web App

  • Registration with and without password
  • Access Control List
  • Classrooms and groups of students
  • Statistics for your tasks and students
  • Plug-in system
  • REST API
  • Studio to create new tasks in your browser
  • BlueJ plug-in

LMS Integration

  • Supports LTI 1.1
  • Able to upload the grade of the task to your LMS
  • Compatible and tested with edX, Moodle, and many other LMSs

Made and used with at Université catholique de Louvain

Used by more than 10 on-site courses

The INGInious Web App is currently in use in 11 on-site courses, that sums up to more than 180 tasks and 500 students.

This includes courses that use lightweight tasks in Java, such as Computer Science 1, to course with really heavy tasks such as Advanced algorithms for optimization (in Scala) and Artificial Intelligence. The course Computer systems I grades low-level C code with INGInious.

Tried and approved by more than 7.000 MOOC students

INGInious is also used on the computer science MOOCs that the UCL runs on edX:

Used since 2014, INGInious has successfully ran the exercises from the 7000 students that followed the courses. These courses use an exotic language made for learning called Oz.

Download and install INGInious

Free and open-source

INGInious is completely free and open-source, under the AGPL license.

GitHub repository

Contribute

INGInious is a FOSS, feel completely free to help us improving it! We accept pull requests, correct issues and are glad to talk about implementation details on Gitter!

Support

Having trouble? Contact us on Gitter, or fill in an issue on GitHub.

Website template based on the theme "Pratt" from blacktie.co