Skip to main content

Forge Services

This section of the documentation provides in-depth documentation about our public-facing tools.

The Intranet​

Our main product is the Intranet, a custom-made Learning Management System (LMS) built around automatic testing.

Teachers create activities — projects, workshops, practicals — and configure a moulinette for them: an automatic tester that runs a teacher-provided Docker image against every student submission. The result of that run is published back on the intranet as a trace, so students immediately see which tests passed, which failed, and why.

Students submit their work — alone or in a group — by pushing to a Git repository provided by the intranet itself for each activity. These repositories are hosted by the intranet, not on GitLab.

Teachers, on the other hand, configure their activities from a GitLab repository, in an infrastructure-as-code fashion: the whole activity (its assignments, its submissions, its moulinette) is described in an activity.yml file that we designed, and deployed to the intranet by a CI pipeline.

To get started, read the intranet introduction.

Other services​

Around the intranet, the Forge operates a few other services:

  • Tenants: the entities (assistant teams, courses, ...) that own content on Forge services and manage access to them. Having a tenant is a prerequisite to hosting an activity on the intranet.
  • Forge ID: the authentication system of the Forge, used to sign in to Forge services and the PIE, and to integrate your own applications through OIDC.
  • Discord Server Management: links Forge and Discord accounts to authenticate members and automate roles on EPITA-related servers.
  • Forge CLI: a Python command-line tool to work with and operate Forge services. It replaces Poulpy, which is deprecated.