1 - Introduction
LAScholar (LAS) est un environnement dédié à l’apprentissage de la programmation en semi-autonomie. Cet outil permet de proposer des exercices de programmation à un apprenant qui pourra soumettre ses réponses et obtenir la correction automatiquement en temps réel
1.1 - Principes généraux
LAS est un outil consitué :
- d’une IHM étudiant qui va permetttre de saisir les réponses à un exercice de programmation et de soumettre ces réponses pour vérifier leur fonctionnement
- d’un serveur d’application regroupant plusieurs servicse et accessible par des API REST. Ces services délivrent des exercices et évaleuent les réponses qui leur sont envoyées
1.2 - Architecture technique
LAS est un environnement regroupant plusieurs composants logiciels
| Nom | Fonction | Système / Technologie |
|---|---|---|
| LAS-IHM | IHM étudiant pour accéder aux exercices et pour soumettre des réponses | JS - React |
| LAS-Exercice | API permettant d’envoyer des exercices aux étudiants et de récupérer leurs réponses | NodeJS - Express |
| LAS-Stratégie | API permettant de définir les stratégies d’envoie des exercices aux étudiants | NodeJS - Express |
| LAS-Evaluation | API permettant compiler les réponses des étudiants et de vérifier leurs réponses | GO - Docker |
| LAS-Resultat | API permettant de tracer les réponses des étudiants | NodeJS - Express |
La figure suivante récapitule les fonctions des différents services :

2 - Usage
LAS peut etre utilisé nativement ou depuis Moodle. La figure suivante montre un usage étudiant depuis Moodle

3 - Installation
3.1 - Installation pour les développements
3.2 - Installation en production
L’installation de LAS en production se fait à partir d’un dépôt spécifique LAS-Install. Le déploiement se fait sur un environnement linux
3.2.1 - Installation de LAS-IHM
L’installation de l’IHM étudiante se fait depuis un script SHELL
- Cloner le dépot
LAS-Install
git clone https://manouchian.univ-smb.fr/las/api/LAS-Install.git
- Créez le fichier d’environnement et éditez le
cd LAS-Install
cp config-las/exemple-las-ihm.env ./.env.las-ihm
vi .env.las-ihm
CONF_APACHE_DEF="001" # prefix du fic. VirtualHost d'Apache : 001 | 002 | 003 | ...
NOMSERVEUR_DEF="lascholar" # nom DNS du VirtualHost d'Apache : lascholar | ...
NOMDOMAIN_DEF="learninglab.eu" # domaine DNS du VirtualHost d'Apache : learninglab.eu | ...
EMAIL_NAME_DEF="postmaster@learninglab.eu" # email admin du serveur pour le VirtualHost d'Apache
# --- compte utilisateur pour LAS-IHM ----
USER_INSTALL_DEF=true
USER_LOGIN_DEF="las-ihm"
USER_PASSWD_DEF="**********" # définir le mot de passe
USER_GROUP_DEF="las-ihm"
# --- définition des clefs ssh public pouvant se connecter au compte ---
USER_SSH_CLEF_DEF=""
USER_SSH_PORT_DEF=22 # port d'accès SSH au serveur (par défaut 22)
# --- compte gitlab gérant le projet LAS-IHM ---
GITLAB_INSTALL_DEF=true
GITLAB_MACHINE_DEF="manouchian.univ-smb.fr" # serveur GitLab
GITLAB_PATH_DEF="/las/" # path serveur GitLab
GITLAB_DEPOT_DEF="las-ihm" # depot serveur GitLab
GITLAB_LOGIN_DEF="******" # définir le login d'acces au serveur GitLab
GITLAB_PASSWD_DEF="******" # définir le mot de passe du login d'acces
# --- base de données ---
BD_INSTALL_DEF=false
# --- nodeJS ---
NODEJS_INSTALL_DEF=true # activation de l'installation de nodeJS
NODEJS_VERSION_DEF="24" # derniere version stable de NodeJS
NODEJS_LANCEUR_DEF="SYSTEMD" # configurattion du lancement de NODE
NODEJS_PORT_DEF=3000 # port de lancement de nodeJs en production
# --- apache2 et php ---
APACHE_INSTALL_DEF=true # apache utilisé comme proxy
PHP_INSTALL_DEF=false
# --- certificat SSL ---
HTTPS_ENABLED_DEF=true
SSL_CERT_TYPE_DEF="LetsEncrypt"
# -----------------------------------------------
# --- [2] surcharge des variables spécifiques ---
# -----------------------------------------------
VITE_PUBLIC_API_URL=http://localhost:3000 # URL de base de l'API LAS)
VITE_PUBLIC_REDIRECT_URI=http://localhost:3005/ # URI de redirection après authentification OAuth
#(doit être enregistrée côté fournisseur OAuth)
# URL de découverte OpenID Connect du fournisseur d'authentification (LAconnect)
VITE_PUBLIC_OAUTH_URL='https://laconnect.learninglab.eu/.well-known/openid-configuration'
# Environnement d'exécution : development | production | test
NODE_ENV='development'
# Niveau de verbosité des logs applicatifs : debug | info | warn | error
VITE_PUBLIC_LOG_LEVEL='debug'
- Lancez le script d’installation
cd LAS-Install
chmod +x la-install-las-ihm.sh
sudo ./la-install-las-ihm.sh
Installation avec docker
4 - Documentation
voir https://manouchian.univ-smb.fr/las
5 - Contributeurs
Ce projet est développé et maintenu par :
Il a été développé avec plusieurs contributions étudiantes, dans le cadre de stages, dont (par ordre alphabétique) :
- Mathieu Brunot
- Benjamin Bogdan
- Tommy Di Luna
- Noah Penin
- Chloé Faucon
- Eddy GUYON
- Lohan Hebert
- Ansoumane Michel Tamba