Skip to main content

An intelligent grader that allows secured and automated testing of code made by students.

Project description

Codacy Badge Codacy coverage Badge https://github.com/INGInious/INGInious/actions/workflows/ci.yml/badge.svg https://github.com/INGInious/INGInious/actions/workflows/env_containers.yml/badge.svg https://readthedocs.org/projects/inginious/badge/?version=latest https://weblate.info.ucl.ac.be/widgets/inginious/-/frontend/svg-badge.svg

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.

INGInious can be used as an external grader for Moodle or edX. The course Constraint Programming uses INGInious to correct students’ code.

How to install?

Simply run:

$ docker compose up --build

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.

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

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.

The provided docker-compose.yaml file builds from sources the basic grading environments env-base and env-default. It also pulls from the project’s registry a basic python3 grading environment. These three environments are sufficient for a simple INGInious deployment.

Administrators can add grading environments to their instance either by adding them statically to the docker-compose.yaml file or by pulling them manually from the container registry.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inginious-0.9.2.tar.gz (3.1 MB view details)

Uploaded Source

File details

Details for the file inginious-0.9.2.tar.gz.

File metadata

  • Download URL: inginious-0.9.2.tar.gz
  • Upload date:
  • Size: 3.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.11

File hashes

Hashes for inginious-0.9.2.tar.gz
Algorithm Hash digest
SHA256 dcfdd96171a7ad2a059549ce78bfa9e4bd7171ceea931581912312349cfcf43f
MD5 a8c83a737feb20c4210615ac4bc84180
BLAKE2b-256 3ae21ca3a6f97edb9e74717832dd49437193198527850c02b956fedf33665699

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page