Skip to content

INGInious is a secure and automated exercises assessment platform using your own tests, also providing a pluggable interface with your existing LMS.

License

Notifications You must be signed in to change notification settings

INGInious/INGInious

Folders and files

NameName
Last commit message
Last commit date

Latest commit

12a94fa · Mar 12, 2025
Mar 12, 2025
Mar 11, 2025
Mar 12, 2025
Mar 11, 2025
Mar 12, 2025
Mar 6, 2025
Dec 6, 2023
Nov 5, 2021
Sep 16, 2016
Nov 21, 2016
Mar 11, 2025
Aug 7, 2015
Mar 5, 2025
Feb 11, 2016
Jan 27, 2018
Mar 11, 2025
Dec 6, 2023
Mar 30, 2021
Mar 11, 2025
Oct 8, 2021
Aug 28, 2020
Dec 18, 2023
Mar 11, 2018
Sep 12, 2022
Jul 6, 2023
Jul 6, 2023
Mar 11, 2025

Repository files navigation

INGInious

Codacy Badge Codacy coverage Badge https://readthedocs.org/projects/inginious/badge/?version=latest

INGInious is an intelligent grader that allows secured and automated testing of code made by students.

It is written in Python and uses Docker to run student's code inside a secured environment.

INGInious provides a backend which manages interaction with Docker and grade code, and a frontend which allows students to submit their code in a simple and beautiful interface. The frontend also includes a simple administration interface that allows teachers to check the progression of their students and to modify exercices in a simple way.

The backend is independent of the frontend and was made to be used as a library.

INGInious can be used as an external grader for EDX. The course Paradigms of Computer Programming - Fundamentals uses INGInious to correct students' code.

How to install?

Simply run:

$ docker compose up --build

> Note that you can override the registry and containers version by setting the REGISTRY and > VERSION environment variables.

And access http://localhost:9000 in your browser.

The default login and password are superadmin.

The --build argument is optional, use it if you want to rebuild locally the core containers. If you want to simply pull them from the project's registry, this argument is not required.

Docker-compose will create a tasks folder if it does not exist already.

You can then add new courses to your fresh INGInious instance by installing them in the tasks folder.

For example, the INGInious tutorial course is installed with the following commands:

$ git clone https://github.com/INGInious/demo-tasks.git
$ mv demo-tasks/tutorial tasks/

If you encounter permission errors, you should run the following command:

$ sudo chown -R <your_user>:<your_user_group> tasks

This can happen when the tasks directory is created by docker-compose.

Note that the configuration.deploy.yaml file provided is a sample configuration, the secret key must be changed by administrators in production deployments.

Manual installation is also possible with pip.

Documentation

The documentation is available on Read the Docs:

On Linux, run make html in the directory /doc to create a html version of the documentation.

Roadmap

INGInious is continuously improved. The various Work In Progress tasks are described in the Roadmap of the project.

Notes on security

Docker containers can be used securely with SELinux enabled. Please do not run untrusted code without activating SELinux.

Mailing list

A mailing list for both usage and development discussion can be joined by registering here.