Skip to content
Snippets Groups Projects
Commit 66dfdb26 authored by Lansana DIOMANDE's avatar Lansana DIOMANDE
Browse files

docs: improve readme of repository

parent b52b68bb
No related tags found
1 merge request!7docs: improve readme of repository
Deadlock Theia projet basé sur notre propre image de Theia https://git.e-biz.fr/deadlock-public/theia.
Plusieurs éléments ajoutés à l'image de base :
Deadlock Desktop est un projet dont l'objectif est de permettre à un étudiant de réaliser des exercices deadlock
sur son IDE Vscode directement. Pour cela, le répertoire héberge 3 éléments :
1. Deadlock plugins (deadlock-plugins/)
2. Outil d'enregistrment, qui permet d'enregistrer le code quand un utilisateur exécute du code (deadlock(plugins/recorder))
3. Gestion du CORS (\*.deadlock.io) dans `server.js`
- **Une extension Vscode** : L'extension est installée sur l'IDE Vscode de l'étudiant et est responsable de l'ouverture
de l'exercice dans un [devcontainer](https://code.visualstudio.com/docs/remote/containers).
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
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
dans `plugins/` (ex: deadlock-plugins/deadlock-extension).
Il est aussi possible d'ajouter directement des plugins `.vsix` en ajoutant le fichier dans `plugins/`
L'image est décrite dans le fichier `Dockerfile.desktop`.
## Recorder :
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`
alors un snapshot du code est réalisé.
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é. Il va également faire un snapshot du code lorsque l'étudiant modifiera les fichiers de l'exercice.
### Build
`./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
2. Vscode ou Vscodium
3. Docker
Plus d'informations sur l'extension `deadlock-coding` dans ce [README](deadlock-plugins/deadlock-extension/docs/README.md).
## 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`
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment