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.