Pour suivre les évolutions, l'idéal est d'aller voir sur le Discord. L'assistance et les discussions par rapport à cette passerelle se font sur le Discord Assistance de Scodoc : https://discord.gg/FgMNZ4SdD4
Les utilisateurs actuels sont :
Etablissement | Accès étudiants | Accès enseignants | Saisie des absences | Dépôt de jusitificatifs |
---|---|---|---|---|
IUT de Mulhouse | ✅ | ✅ | ✅ | ✅ |
IUT de Ville d'Avray | ✅ | ✅ | ✅ | |
IUT de Chartres | ✅ | ✅ | ||
IUT de Lyon 1 | ✅ | ✅ | ||
IUT de Tours | ✅ | |||
IUT de Lannion | ✅ | |||
IUT de Lille | ✅ | ✅ | ||
IUT de Bordeaux | ✅ | ✅ | ||
IUT d'Orsay | ✅ | ✅ | ||
IUT Le Havre | ✅ | ✅ | ||
IUT de Poitiers | ? | |||
IUT du Littoral Côte d'Opale | ? | |||
IUT de La Rochelle | ✅ | |||
IUT Le Mans | ✅ | ✅ | ||
IUT de Mantes-En-Yvelines | ✅ | |||
IUT de Saint-Malo | ✅ | ✅ | ||
IUT de la Roche-sur-Yon | ✅ | |||
IUT de Vélizy | ✅ | ✅ | ✅ | ✅ |
IUT de Roanne | ? | |||
IUT de Kourou | ✅ | ✅ | ✅ | |
IUT de Brest | ✅ | |||
IUT de d'Annecy | ✅ | ✅ | ||
IUT de Nantes | ✅ | ✅ | ||
IUT de Blagnac | ✅ | |||
IUT de Vannes | ? | |||
IUT de Lorient & Pontivy | ? | |||
IUT de Orléans | ✅ | |||
IUT de Rennes | ✅ | ✅ | ||
IUT de Perpignan sites de Narbonne et Carcassonne | ✅ | ✅ | ✅ | ✅ |
IUT de Villetaneuse | ✅ | ✅ | ||
IUT de Cergy-Pontoise | ✅ | ✅ | ||
IUT de Mantes | ? | |||
IUT de Béziers | ✅ | |||
IUT de Saint Denis | A venir | |||
IUT d'Amiens | ✅ | |||
IUT de Caen (IFS) | ✅ | |||
IUT de Saint-Nazaire | ✅ | ✅ | ||
IUT de Montpellier-Sète | ✅ | |||
IUT de Cachan | ✅ | ✅ | ||
IUT Nord Franche-Comté | ✅ | |||
IUT de Montreuil | ✅ | |||
IUT de Schiltigheim | ✅ | |||
Ecole de chimie de Mulhouse (ENSCMu) | ✅ | ✅ | ✅ | ✅ |
IUT d'Evry | ✅ | ✅ | ||
IUT de Béthune | ✅ | |||
IUT de Lyon 3 | ✅ | |||
IUT de Sénart-Fontainebleau | ✅ | ✅ | ||
IUT de Paris Pajol | ✅ | |||
IUT de Saint-Brieuc | ✅ | |||
IUT de Sceaux | Installation en cours |
Vous utilisez aussi ce projet ? N'hésitez pas à m'en informer pour être également dans cette liste : sebastien.lehmann (at) uha.fr :-)
Vous pouvez utiliser le projet en entier pour plus de simplicité ou utiliser des parties pour coder votre propre plateforme.
La passerelle Scodoc-Notes est un projet permettant de faire le lien entre Scodoc et les étudiants.
Les étudiants peuvent consulter en ligne leurs notes. La passerelle gère automatiquement l'affichage des relevés pour les DUT et pour les BUT que ce soit sur mobile ou sur ordinateur.
Il est possible de configurer un accès "enseignant". Cet accès permet aux utilisateurs reconnus de :
- consulter le relevé de n'importe quel étudiant,
- récupérer la liste des groupes, des fiches d'émargement, de quoi renvoyer les notes, etc. : ces fichiers sont synchronisés avec Scodoc.
Cet accès est notamment utile pour les vacataires qui n'ont pas accès à Scodoc, ils peuvent alors récupérer des fichiers à jour dès qu'ils en ont besoin.
Enfin, la passerelle permet de saisir et justifier les absences de manière autonome ou en stockant les données dans Scodoc.
- Il est recommandé d'avoir un système Debian ou Ubuntu, pour pouvoir utiliser l'installeur automatique, mais ça peut fonctionner avec d'autres systèmes.
- Il est nécessaire d'avoir PHP version 7.3 ou plus - compatibilité testée avec PHP 8.2
- Il est recommandé d'utiliser Apache, mais ça fonctionne avec Nginx - il faudra juste un peu de config manuelle.
- Les dépendances sont installées automatiquement.
- Le serveur doit être reconnu et autorisé par le CAS.
- Le serveur doit pouvoir communiquer avec Scodoc.
Le script : /installOrUpdate.sh
permet d'installer et de mettre à jour la passerelle.
Ce script est compatible Ubuntu et Debian, il permet lors d'une première installation d'installer tout le nécessaire sur le serveur, il reste alors à configurer les fichiers /config/*
Lorsque le serveur est déjà opérationnel, il permet de faire une mise à jour de /html, /includes et /lib.
Le virtual host doit mener vers le dossier /var/www/html
. Les fichiers à sécuriser sont installés dans /var/www
, les fichiers publics sont dans /var/www/html
.
Pour des raisons de sécurité, si le virtual host est mal configuré, la passerelle ne fonctionnera pas.
Il est possible de configurer un virtual host vers un autre dossier en respectant le principe : path
fichiers non accessibles, path/html
fichiers publics.
Télécharger et ajouter le fichier installOrUpdate.sh
dans le répertoire /var/www
en tant que ROOT :
cd /var/www
wget -q https://raw.githubusercontent.com/SebL68/Scodoc_Notes/main/installOrUpdate.sh
chmod +x installOrUpdate.sh
# puis pour installer
./installOrUpdate.sh
Procédure de mise à jour par la suite :
cd /var/www
./installOrUpdate.sh
💡 Nous vous recommandons d'exécuter ce script toutes les nuits avec une tache cron.
[Option]
Par défaut, la mise à jour se fait dans /var/www/
.
Le script accepte comme paramètre un chemin différent afin de permettre la mise à jour pour ceux qui ont configuré des Virtual Hosts.
./installOrUpdate.sh cheminVersLaPasserelle
Voir "Diagnostic" et "Configuration" pour la suite.
L'identification de la personne se fait le CAS.
Le CAS renvoie soit :
- le numéro d'étudiant,
- une variante du numéro d'étudiant qu'il est possible de transformer dans le fichier config,
- un autre identifiant, comme l'adresse mail,
- il est aussi possible de récupérer le numéro s'il est dans un autre champs renvoyé par le CAS.
C'est le numéro d'étudiant qui est nécessaire pour communiquer avec Scodoc, s'il n'est pas possible de récupérer le numéro d'étuidant ou une variante dans un des champs du CAS, il faut mettre en place un système de correspondance.
Cette correspondance est faite dans les fichiers /data/annuaires/liste_etu.txt
Il est possible d'automatiser la génération de ces fichiers à partir du LDAP (voir ci-après).
Pour vous aider dans la configuration de votre serveur, un système de diagnostic a été mis en place : /html/sercices/diagnostic.php?-no-sw
Exemple : https://notes.iutmulhouse.uha.fr/services/diagnostic.php?-no-sw
Lors de l'utilisation de la passerelle, il est également possible d'activer les messages d'erreur dans /html/services/data.php --> Options de debug
La passerelle communique via un système d'API, il faut donc voir les réponses dans l'inspecteur (F12) --> Network
Il est nécessaire d'avoir un utilisateur avec les droits de lecture pour l'API Scodoc : https://scodoc.org/ScoDoc9API/#configuration-de-scodoc-pour-utiliser-lapi
L'ensemble des fichiers à configurer se trouvent dans "/config/". Il est à minima nécessaire de configurer :
- cas.pem (recommandé pour des raisons de sécurité : https://www.php.net/manual/fr/function.curl-setopt.php#110457),
- cas_config.php,
- config.php
Il est recommandé d'avoir un super-administrateur en incluant son identifiant CAS dans le fichier /data/annuaires/super_admin.txt (enlevez le _DEMO).
Complétez cas_config.php.
Pour vous aider à tester, vous pouvez utiliser le système de diagnostique.
Vous pouvez également utiliser le fichier /code_test/testCAS.php pour comprendre ce qui est renvoyé par le CAS.
Il est nécessaire d'obtenir un numéro d'étudiant tel qu'il est dans Scodoc, plusieurs cas de figures :
- l'identifiant au CAS est le numéro d'étudiant : il n'y a rien à faire,
- l'identifiant est un variant du numéro d'étudiant, il peut y avoir une lettre qui change ou autres, dans ce cas il est possible d'opérer une transfromation avec la fonction nipModifier() dans le fichier config,
- l'identifiant est disponible dans un autre attribut renvoyé par le CAS (voir /code_test/testCAS.php) : il est possible d'indiquer quelle clé utiliser dans le fichier config : public static $CAS_nip_key = 'cle';
- l'identifiant n'est pas accessible, il faut donc utiliser le LDAP pour avoir une correspondance entre l'idCAS et le nip.
L'utilisation du LDAP n'est pas obligatoire si le CAS renvoie le nip. Si par exemple le CAS renvoie l'adresse mail, il faut alors mettre en place le système qui permet de convertir les mails en nip. Dans /data/annuaires, il y a les fichiers pour cette conversion. Différentes fonctions permettent de remplir ces fichiers automatiquement à partir du LDAP (voir ci-après).
Pour tester la connexion avec Scodoc, il est possible de forcer un utilisateur (étudiant) dans /config/config.php => nipModifier().
Il est possible de s'authentifier de manière forcée en utilisant les jetons JWT.
Ces jetons peuvent être créés dans le fichier /html/services/createJWT.php (à modifier).
Ces jetons sont notamment utiles au début pour bypasser le CAS pour des premiers tests.
Complétez les paramètres LDAP dans /config/config.php
La mise à jour forcée du LDAP (pour les tests) se fait en exécutant le fichier /includes/CmdUpdateLists.php en CLI.
La mise en route du crontab se fait avec le fichier /includes/CmdSetUpdateLists.php suivant le même principe.
Par défaut, ce site ne diffuse que les relevés de notes aux étudiants.
Il est possible d'activer d'autres options prévus pour les enseignants comme :
- la possibilité de visualiser les relevés de n'importe quel étudiant,
- récupérer des documents xls pratiques, automatiquement générés en fonction des listes Scodoc,
- gérer les absences entièrement depuis la passerelle, avec des créneaux prédéfinis (sans utiliser Scodoc).
Les super-admin ont un onglet supplémentaire pour configurer la passerelle en ligne.
Ils peuvent également attribuer les rôles admin ou personnel à des idCAS.
Si le mode enseignant est activé, les idCAS reconnus comme "personnel" pourront avoir accès aux relevés de tous les étudiants et récupérer les listes au format xlsx.
Si le mode absences est activé, la passerelle permet de réaliser les absences par les personnels, un admin pourra justifier ces absences - a noter que le module absence n'est pas connecté à Scodoc pour le moment - ces absences sont automatiquement affichées aux étudiants.
Il est également possible d'utiliser le LDAP pour remplir automatiquement les listes des personnels.
Les étudiants peuvent modifier leur "avatar" sur la passerelle, il faut vérifier que l'utiliseur www-data puisse bien modifier les fichiers du répertoire /data/studentPic
La version est notée dans le fichier /html/sw.js
Il est également possible de la voir en bas de la page d'accueil de la passerelle.
Les dossiers /config et /data sont des données locales qui permettent de faire fonctionner la passerelle dans votre environnement.
Ils ne sont (sauf cas exceptionnels) pas modifiés.
Utilisez alors le script installOrUpdate.sh
La passerelle utilise un système de cache côté client utilisant un service worker.
Il y faut alors le prendre en compte de cette manière :
- certains fichiers, comme l'index, ne sont pas mis à jour tant que la version du SW n'est pas mis à jour,
- les autres fichiers sont mis à jour après le chargement de la page.
Il faut donc faire un double rafraîchissement pour voir la dernière version de ces derniers fichiers.
Je vous conseille alors, pour le développement, de "bypasser" le service worker - sous Chrome : F12 -> Applications -> Service Worker
Pour des développements locaux et des commits, il est nécessaire de ne pas prendre en compte les modifications de certains fichiers, il est alors possible de ne pas les ajouter à l'arbre GIT avec :
git update-index --skip-worktree config/config.php
La passerelle a fait l'objet d'une attention particulière aux problèmes de sécurité et plusieurs personnes ont audité le code : il n'y a aucune faille connue.