Skip to content
Snippets Groups Projects

docs: improve readme of repository

Closed Lansana DIOMANDE requested to merge docs-improve_documentation into develop
+ 30
20
Deadlock Theia projet basé sur notre propre image de Theia https://git.e-biz.fr/deadlock-public/theia.
Deadlock Desktop est un projet dont l'objectif est de permettre à un étudiant de réaliser des exercices deadlock
Plusieurs éléments ajoutés à l'image de base :
sur son IDE Vscode directement. Pour cela, le répertoire héberge 3 éléments :
1. Deadlock plugins (deadlock-plugins/)
- **Une extension Vscode** : L'extension est installée sur l'IDE Vscode de l'étudiant et est responsable de l'ouverture
2. Outil d'enregistrment, qui permet d'enregistrer le code quand un utilisateur exécute du code (deadlock(plugins/recorder))
de l'exercice dans un [devcontainer](https://code.visualstudio.com/docs/remote/containers).
3. Gestion du CORS (\*.deadlock.io) dans `server.js`
Deux images de `deadlock-theia` sont build ici, _code_ et _kube_.
- **Le recorder** : Une application `node` qui va effectuer des sauvegardes du code source de l'étudiant à chaque fois
 
que celui-ci va modifier un fichier ou saisir certaines commandes dans son terminal.
 
 
- **Une image Docker** : L'image contient des programmes basiques et le recorder qui est lancé au démarrage
 
du conteneur.
 
 
# Requirements:
 
 
1. NodeJS > ^14.X
 
2. Vscode ou Vscodium
 
3. Docker
## Setup
## Setup
Afin d'installer les éléments requis pour le développement, vous pouvez lancer le script `./setup.sh`.
Afin d'installer les éléments requis pour le développement, vous pouvez lancer le script `./setup.sh`.
## Construire les plugins :
## L'image Docker desktop
`./build-plugins.sh`
Il s'agit d'une image qui sera utilisé par tous les créateurs d'exercices comme base.
 
Le créateur d'exercice peut ensuite ajouter l'exercice et les dépendances qu'il souhaite pour créer l'image de son exercice.
Tous les plugins qui se trouvent dans `deadlock-public` vont être construit en `.vsix` puis placés
L'image est décrite dans le fichier `Dockerfile.desktop`.
dans `plugins/` (ex: deadlock-plugins/deadlock-extension).
Il est aussi possible d'ajouter directement des plugins `.vsix` en ajoutant le fichier dans `plugins/`
## Recorder :
## Recorder :
Le recorder permet de sauvegarder régulièrement le code de l'utilisateur.
Le recorder permet de sauvegarder régulièrement le code de l'utilisateur.
Pour se faire il écoute les commandes exécutées par l'utilisateur et si une contient `java|npm|yarn`
Pour se faire, il écoute les commandes exécutées par l'utilisateur. Si l'une d'entre elles contient `java`, `npm` ou `yarn`
alors un snapshot du code est réalisé.
alors un snapshot du code est réalisé. Il va également faire un snapshot du code lorsque l'étudiant modifiera les fichiers de l'exercice.
### Build
### Build
`./build-recorder.sh`
`./build-recorder.sh`
## Construire l'image Deadlock Theia avec le recorder et les plugins
## Construire les plugins Vscode :
`./build.sh $TAG (code|kube)`
`./build-plugins.sh`
# Requirements:
Tous les plugins qui se trouvent dans `deadlock-public` vont être construit en `.vsix` puis placés
 
dans `plugins/` (ex: deadlock-plugins/deadlock-extension).
 
Il est aussi possible d'ajouter directement des plugins `.vsix` en ajoutant le fichier dans `plugins/`
1. NodeJS > ^14.X
Plus d'informations sur l'extension `deadlock-coding` dans ce [README](deadlock-plugins/deadlock-extension/docs/README.md).
2. Vscode ou Vscodium
3. Docker
## Construire l'image Deadlock Desktop avec le recorder
Ce projet contient le minimum pour construire une image Docker Theia avec Blueprint (https://theia-ide.org/docs/composing_applications/)
`./build.sh $TAG desktop`
Loading