Utilise l'API K-D'Ecole pour récupérer ses notes et les représenter graphiquement.
🚨 Attention : ce projet utilise l'ancienne version de l'API Skolengo (module kdecole-api). Il est possible qu'elle devienne obsolète dans l'éventualité où l'accès à l'ancienne API serait définitivement clos.
- Installer docker et docker-compose
- Créer les volumes docker. Vos données y seront stockées.
docker volume create mariadb-storage
docker volume create grafana-storage
- Cloner le projet
git clone https://github.com/maelgangloff/kdecole-docker-grafana
- Modifier le fichier docker-compose.yml :
KDECOLE_TOKEN
: Pour obtenir votre jeton d'authentification K-D'Ecole, reportez-vous à la section correspondante.KDECOLE_URL
: L'URL de l'API.KDECOLE_ACADEMIE
: Le nom de votre circonscription académique.
- Démarrez les conteneurs Docker
docker-compose up --build -d
- Rendez-vous à l'adresse http://localhost:3000
- Se connecter (par défaut, le nom d'utilisateur et le mot de passe sont
admin
) puis changez votre mot de passe.
Un tableau de bord est déjà configuré. Pour être fonctionnel, il nécessite quelques ajustements. Si les moyennes des matières ne sont pas trouvées, il faut modifier la requête pour trouver l'identifiant de la période de notation. - Créez votre tableau de bord
- Installer NodeJs
- Installer la librairie kdecole-api en global
npm -i kdecole-api
- Exécuter le binaire pour obtenir le jeton
npx kdecole-api -u IDENTIFIANT -p CODE_TEMPORAIRE --ent PROD_MON_BUREAU_NUMERIQUE
Ne communiquez jamais votre jeton à un tier. Il vous est strictement personnel. Si vous pensez que votre jeton a fuité, révoquez-le immédiatement.
Avant de créer votre premier tableau de bord, il vous faudra ajouter une source de données.
Pour se faire, rendez-vous dans les paramètres et cliquez sur Data Sources.
Ajoutez une source de données MySQL en précisant:
- Le nom d'host: database:3306
- La base de données: KDECOLE
- Le nom d'utilisateur: root
- Le mot de passe: root
Créer son tableau de bord sur Grafana est assez simple. Il vous suffit d'ajouter quelques widgets.
La seule "difficulté" est de faire la bonne requête à la base de données.
Si vous voulez partir d'une
base, le code JSON de ce dashboard
est disponible.
Cependant, il n'est pas assuré que cet exemple fonctionne du premier coup, il est peut-être nécessaire de modifier les identifiants de période de notation (vous pouvez les retrouver en explorant le contenu des données récoltées via l'outil Explore de Grafana).
- Nombre de notes au total dans la base
SELECT NOW() AS "time", COUNT(*) FROM devoirs;
- Nombre de notes dans la base pour un élève précis (Changer l'identifiant par l'identifiant de l'élève)
SELECT NOW() AS "time", COUNT(*) FROM devoirs WHERE idEleve = 'AAP05567';
- Toutes les notes d'un élève
SELECT timestamp AS "time", matiere AS metric, note FROM devoirs WHERE idEleve = 'AAP05567' ORDER BY timestamp;
- Nombre de jours avant les vacances (Adapter
KDECOLE_ACADEMIE
dans docker-compose.yml)SELECT NOW() AS "time", jMoins FROM holidays;
- Moyennes des matières dans un trimestre (Adapter
idPeriode
par celui du trimestre voulu)SELECT NOW() AS "time", matiereLibelle AS metric, moyenneEleve FROM moyennes WHERE idPeriode = 25 ORDER BY idPeriode;