Application Sésathèque
Présentation
Sésathèque est une application web en nodeJs destiné à stocker / recenser
des ressources pédagogiques.
Utilisée principalement pour les ressources à utiliser dans une application
Sesalab.
Créé par l'association Sésamath pour Labomep, il est mis à disposition de ceux qui souhaitent sous licence AGPL (article wikipédia) sur github
Merci à Bugsnag pour son soutien aux projets open-source (c'est un outil permettant de tracer les erreurs qui peuvent se produire dans les navigateurs des utilisateurs).
Installation
Cf INSTALL.md à la racine du projet
Mise à jour
pnpm run maj
va récupérer les dernières sources et reconstruire le js client.
Framework Lassi
Cf lassi
Plugins
Pour écrire ou utiliser un plugin (qui gère un type de ressource), voir la documentation des plugins
Routes
Cf la doc des différents contrôleurs
- /
- /auth/
- /groupe/
- /public/
- /ressource/
et ci-dessous pour la route /api/
API http
Doc dédiée qui pour le moment est identique à /api/
API client
Cf la doc du module sesatheque-client
Module sesaJsTools
Qui peut être utilisé indépendamment d'une sésathèque, cf sa doc
Module sesalabSso
Peut être utilisé indépendamment d'une sésathèque, utilisé pour le moment pour propager une authentification
sesalab=>sesathèque, cf sa doc
Scripts
Regarder le contenu du dossier script pour voir la liste des tâches automatisées
(lancer l'appli, la déployer, la tester, générer la doc, etc.)
Il y a aussi le dossier tasks avec les tâches d'import (à priori spécifique à l'instance sesatheque de Sésamath)
Tests
pnpm run test:all
lance tous les tests localement, pour les lancer dans le conteneur docker il faut
créer un fichier _private/.testOnDocker
(vide, son contenu est ignoré) et lancer les tests avec pnpm test
Documentation
On utilise jsdoc3 avec le template jaguar-jsdoc, et des tags supplémentaires @service
, @controller
, @route
, @plugin
définis dans jsdoc/plugins_sup/ngdoc.js
Le template jaguar-jsdoc ne rend pas les @module
, c'est dommage (mais des tests avec ink-docstrap montraient d'autres inconvénients)
et pour se simplifier la vie on utilise @service
dans ces cas là.
Il faut utiliser @memberOf leNomDuModuleDéclaréCommeService
sur chaque méthode exportée par le module
pour la voir apparaître correctement dans la doc, pas trouvé de moyen de contournement.