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-storagedocker 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_NUMERIQUENe 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_ACADEMIEdans docker-compose.yml)SELECT NOW() AS "time", jMoins FROM holidays;
- Moyennes des matiĂšres dans un trimestre (Adapter
idPeriodepar celui du trimestre voulu)SELECT NOW() AS "time", matiereLibelle AS metric, moyenneEleve FROM moyennes WHERE idPeriode = 25 ORDER BY idPeriode;
