Quick start

One page summary of what the Dojo project is.

What is Dojo ?

The dojo platform is an HES-SO that is an online tool built to help practice programming by allowing users to propose assignments and perform them as exercises.

The tool is very flexible and allows for proposing exercises for any language and does not impose any limitation on a framework to be heavily relying on Docker and Gitlab. These tools used in combination allow for automatic correction of assignments in order to give immediate feedback to users performing exercises. Solved exercises can then be shared among the community of users such that they can inspire other users or give hints on ways to solve a given exercise.

The two major concepts of the platform are the assignments and the exercises.

The principal way to interact with the Dojo platform is currently the dojo CLI.

The assignment

An assignment is written by a user that wants to propose an exercise. It is typically composed of a written description of the work to be performed, and tests that must be passed once the exercise is successfully performed (and some configuration files for the infrastructure of the tests such as docker files). At its core, an assignment is nothing else than a git repository that can be forked in the form of an exercise and modified using standard git commands.

In the future a dependency tree of assignments can be created, as well as tagging for filtering purposes.

The exercise

An exercise is an instance of an assignment which the learner will modify in order to make it pass the automatic tests. It can be run locally on any user's machine using the dojo CLI. When the exercise is completed it is pushed on the dojo where the CI/CD tools of Gitlab can evaluate it automatically and notify the dojo platform of the result. The exercises can then be shared with other users in order to propose a wide variety of solutions and can be a base for discussion among users and with teachers.

Main projects that are part of the Dojo platform

  • DojoBackendAPI: The API backend of the dojo platform
  • DojoExerciseChecker: The app (bundled in a Docker image) that check if an exercise have been solved correctly
  • DojoAssignmentChecker: The app ( bundled in a Docker image) that check if an assignment is valid
  • DojoCLI: The command line interface to interact with the dojo platform
  • DojoWeb: The frontend of the dojo platform (coming soon)

How to use Dojo ?

The principal way to interact with the Dojo platform is currently The Dojo CLI. You can find all the informations on the user documentation section.

Do not hesitate to open issues for problems/bugs.

Support

  • If you are a student that search help for a specific assignment, please contact your teaching staff.
  • For any other questions, feature proposals or bug reports, please open an issue on the Dojo Issues project on Gitlab and don't forget tags.

Roadmap

You can find the roadmap (the deadlines are not available) of the project in the Dojo Issues project on Gitlab.

Contributing

Please contact developers / open issues before making any contribution. Also read the contributing section of this site.

Contacts / Developers

License

Most parts (e.g. all of the source code) of the project are licensed under the AGPLv3 license.

Some parts (e.g. internal documentation) are private.

Project status

The project is currently in production stage and is actively developed.