Home

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

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.

Tutos

editors