Skip to content
Snippets Groups Projects
Verified Commit be5fc988 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

added dojo stuff

parent 783ccb62
No related branches found
No related tags found
No related merge requests found
---
title: "Dojo"
date: "2024-02-21"
---
# Le Dojo
* Plateforme d'exercices pour la programmation,
* Outil à la ligne de commande basé sur `gitedu`,
* Correction automatique des exercices,
* Fait maison par Michël Minelli (aller en A403 pour le voir),
* En cours de développement, n'hésitez pas à ouvrir des [\alert{Issues}](https://gitedu.hesge.ch/dojo_project/issues).
# Prérequis
* Installer `docker`!
* Pour savoir s'il est installé faire
```console
docker --version
```
* Voir \alert{le lien suivant}: <https://docs.docker.com/engine/install/>.
* \alert{Activez l'exécution}: <https://docs.docker.com/engine/install/linux-postinstall/> de docker sans les privilèges super utilisateur·trice
# Installation
* Détails sur \alert{ce lien}: <https://dojo.isc-hesge.ch/>.
* Sur MacOS / linux-postinstall
```console
curl -L "https://dojo.isc-hesge.ch/installer.sh" | sh
```
# Authentification
* Détails sur \alert{ce lien} <https://dojo.isc-hesge.ch/user-doc/cli/authentification/>
## Résumé
* Authentification via `gitedu`
```console
dojo auth login
```
* Ouverture de gitedu dans votre navigateur,
* Cliquer sur *autoriser*,
* Est-ce que ça a marché?
```console
$ dojo auth test
ℹ Checking Dojo session:
✔ The session is valid
✔ Student permissions
✔ Teaching staff permissions
✔ Admin permissions
ℹ Checking Gitlab token:
✔ Read access
✔ Write access
```
# Faire un exercice (1/3)
* Détails sur [\alert{ce lien}](https://gitedu.hesge.ch/dojo_project/projects/ui/dojocli/-/wikis/UserDocumentation/3-Exercise-creation).
## Création de l'exercice
* Création de l'exercice (liste chaînée de strings)
```C
dojo exercise create -a c_game_of_life -c .
...
ℹ Checking Dojo session:
✔ The session is valid
✔ Student permissions
ℹ Checking assignment:
✔ Assignment "c_game_of_life" exists
✔ Assignment "c_game_of_life" is published
...
```
* Cette commande clone également le repo de l'exercice créé dans le répertoire courant
# Faire un exercice (2/3)
## Récupération de l'énoncé
* Quand vous avez créé l'exercice, vous pouvez clone le repo comme n'importe quel autre repo gitedu
```console
git clone https://gitedu.hesge.ch/dojo/exercise/dojo-ex_c_game_of_life_e24b65b3-c0e5-4a10-a67a-72dad4ff5ea1 c_game_of_life
```
# Faire un exercice (3/3)
## Exécution des tests
* Faire l'exercice
```console
$ cd c_game_of_life
```
* \alert{LIRE L'ÉNONCÉ JUSQU'À LA FIN!}
* Pour réussir le TP il faut passer tous les tests se trouvant dans:
```console
src/test_suite.cpp
```
* Pour compiler localement deux choix
* Utiliser make
```console
cd src
make
```
* Ou `dojo`
```console
dojo exercice run
```
* Vous pouvez également commit/push chaque fois que nécessaire (et surtout à la fin).
# Fonctionnement
* Éditez le code en fonction de l'énoncé.
* `make` lance tout un tas de tests unitaires.
* \alert{Faites les fonctions les unes }
* Il y a deux types d'erreurs: erreur algorithmique et erreur mémoire.
* Des fois ces erreurs sont imbriquées
* Il y a donc deux types d'erreurs dans les tests
* Des erreurs dans les tests unitaires
* Des erreurs de sanitizers mémoire
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment