Lot 1a - Développement socle logiciel
Contents
Lot 1a - Développement socle logiciel#
Pilote : Quantstack
Le lot 1a est découpé en 11 tâches distinctes. Une tâche correspond à une unité fonctionnelle cohérente, pouvant être réalisée ou supervisée par une entité donnée. Le développement du socle logiciel est découpé en trois phases :
Création d’un produit minimal viable (MVP)
Création d’une première version (Candyce V1), co-construite avec les usagers
Création de l’infrastructure quasi-finale (Candyce pour tous)
"Tâche 1a.1 - Développement du service de création et de déploiement d'environnements virtuels configurables"#
Responsable : Quantstack
ETP :
TODO:
relecture/mise à jour;
si possible reformuler les actions pour qu’elles soient plus compréhensibles par les moldus.
Cette première tâche vise à adapter l’infrastructure backend de Jupyter aux besoins de Candyce. Il s’agit notamment de garantir le passage à l’échelle de l’infrastructure (permettre plusieurs dizaines d’utilisateurs concurrents), de permettre une exécution optimisée des environnements virtuels aussi bien sur le serveur que dans le navigateur, et enfin de permettre l’édition collaborative en temps réel (stockage et gestion des sessions de collaboration). La plus grosse partie du développement backend devra advenir, dans une version minimale fonctionnelle, dès le MVP. La collaboration en temps réel pourra intervenir dans un second temps (Candyce V1)
Existant :#
Il existe déjà des services d’environnements virtuels configurables, basées sur JupyterHub/BinderHub. La tâche consiste donc en une spécialisation et une optimisation de l’existant.
Actions et phasage :#
T0 - T0+6M (MVP)
Réimplantation spécialisée de BinderHub/JupyterHub en vue de permettre la scalabilité
Spécialisation à conda, en vue d’optimiser les performances de création des environnement (temps de chargement)
Colocalisation avec l’hébergement colocalisé d’un miroir conda-forge
Support exécution dans le navigateur
Migration de Pyodide vers une infrastructure basée sur conda pour les paquets en WebAssembly (En cours)
Soutien (doc, …) à l’équipe déploiement pour la mise en place DevOps
T0+6M - T0+18M (Candyce V1)
Implantation du service backend de stockage des sessions de collaboration et des modèles CRDT, pour usage par la couche applicative dans les environnements pour permettre la collaboration temps réèl
"Tâche 1a.2 - Développement du cœur du service web\xa0: portail générique, gestionnaire de projets, d'environnements et de devoirs"#
Responsable : Quantstack
ETP :
Le projet Candyce apportera certaines fonctionnalités spécifiques aux besoins de l’enseignement et garantira la navigation sans couture entre les différentes services. Il s’agira notamment de développer un portail d’accès générique, à partir duquel les différents services seront rendus accessibles. La navigation au sein de ce portail pourra varier selon le profil de l’usager (apprenants versus enseignants, usager avancé versus usager débutant).
Existant#
Actions et phasage#
T0 - T0+6M (MVP)
Implantation de:
portail générique
interface de gestion de projets
interface de gestion d’environnements
T0+6M - T0+18M (Candyce V1)
interface de gestion de devoirs
tableaux de bord
Tâche 1a.3 - Conception et développement ou spécialisation de portail(s) dédié(s)#
TO DO : à fussioner avec la tâche sur Capytale ?
Responsable :
ETP :
En parallèle de l’instance nationale Candyce, des développement locaux, réutilisant tout ou partie des briques logicielles de Candyce mais n’étant pas maintenus par l’équipe Candyce pourront exister. Les déploiements locaux pourront alimenter certains déploiements nationaux. L’application Capytale pourra notamment s’inscrire dans ce schéma : utilisation de briques logicielles de Candyce dans Capytale pour faire converger les technologies, et pour permettre une migration simple des usagers vers l’instance nationale si cela s’avère pertinent dans un second temps.
TO DO : à fusionner avec la tâche Capytale
Existant :#
Actions et phasage:#
T0 - T0+6M (MVP)
Portail pour la migration de Capytale:
Intégrer les briques logicielles de Candyce dans Capytale pour faire converger les technologies (Ex : Jupyterlite)
T0+6M - T0+36M (Candyce pour tous)
Recréer en parallèle un portail Candyce, copie de celui de Capytale (si pertinent)
Faire basculer les usages de l’instance locale de Capytale vers l’instance nationale Candyce (si pertinent)
Autres portails si pertinent
Universités avec usage spécifique
Universités étrangères
Associations, EdTech,
…
Tâche 1a.4 - Authentification et Intégration ENT (QuantStack): LTI#
Responsable : Quantstack
ETP :
L’authentification des utilisateurs (étudiants et professeurs), leurs permissions et leur appartenance à différents groupes d’utilisateurs listés dans le gestionnaire de contacts de Candyce sera articulée autour des ENT existants. Ces intégrations seront développées autant que possible via les standards d’interopérabilité comme LTI.
En cas de besoin plus spécifique non couvert par LTI, les APIs plus ad hoc offerts par les différents LMS comme Moodle pourront être utilisées.
TO DO :
Existant :#
Actions et phasage :#
T0 - T0+6M (MVP)
T0+6M - T0+18M (Candyce V1)
T0+18M - T0+36M (Candyce pour tous)
"Tâche 1a.8 - Outillage pour l'exploitation et la maintenance"#
Responsable : Quantstack
ETP :
Comme il est détaillé dans la description scientifique du projet, l’exploitation du projet sur la durée va nécessiter la présence d’outils spécifiques en terme de :
TO DO : Décrire l’existant et répartir les livrables entre les différents jalons
Existant :#
Actions et phasage :#
gestion des security advisory notice et suivi des CVEs des dépendances
création des outils de signalement de contenu inapproprié
suivi de la consommation (a retravailler/simplifier)
Ajouter une intégration de Quetz à des outils comme Repology, qui teinte les versions des paquets logiciels selon l’existence de CVEs, permettra de recommander aux utilisateurs de mettre à jour leurs environnements
Suivre les « security advisory notices » concernant les dépendances NPM
Signalement des failles de sécurités
T0 - T0+6M (MVP)
T0+6M - T0+18M (Candyce V1)
T0+18M - T0+36M (Candyce pour tous)
Tâche 1a.5 - Interopérabilité des données#
Responsable : Quantstack
ETP :
Description littérale
Existant :#
Actions et phasage :#
T0 - T0+6M (MVP)
T0+6M - T0+18M (Candyce V1)
T0+18M - T0+36M (Candyce pour tous)
Tâche 1a.6 - Développement du CMS pour les ressources pédagogiques#
Responsable : Quantstack
ETP :
L’outil d’indexation des ressources pédagogiques sera développé comme un front-end intégré à Candyce Hub, utilisant une instance de GitLab comme headless CMS (sans pour autant requérir l’usage de git de la part des utilisateurs). L’outil d’indexation pourra référencer des ressources produites aussi bien dans Candyce que sur d’autres plateformes ouvertes. L’indexation sera adaptée aux différents utilisateurs et certaines ressources validées par les Académies pourront être certifiées (labellisées ?). Cette brique technologique devra être conçue en étroite collaboration avec les différents projets d’indexation de ressources en cours (notamment en lien avec la DNE et l’Académie de Paris).
L’équipe Infrastructure (qui est-ce ?) sera responsable du déploiement de l’instance de GitLab à l’échelle requise pour Candyce. (Aussi responsable d’optimimser l’indexation?)
TO DO : Existant, répartir livrables selon les jalons
Existant :#
Actions et phasage#
Déploiement d’une instance Gitlab à l’échelle requise pour Candyce
Bibliothèque de ressources pédagogiques par discipline
Moteur de recherche
Recommandations personnalisées
Permettre la recommandation des ressources par les pairs et par les corps d’inspection disciplinaires
T0 - T0+6M (MVP)
T0+6M - T0+18M (Candyce V1)
T0+18M - T0+36M (Candyce pour tous)
Au delà de l’indexation des ressources pédagogiques, une indexation des environnements virtuels sera aussi proposés (par exemple un environnement Carnet pour l’apprentissage débutant du Python ou Carnet pour la visualisation de données massives)
Déployer un CMS pour les EVC
Tâche 1a.7 - Convergence Capytale#
"Tâche 1a.9 - Contributions transverses dans Jupyter comme framework d'applications web"#
TO DO : renommer la tâche avec nom orienté « usager » ? Difficile à comprendre pour un moldu. « Accessibilité et ergonomie » ?
Responsable : Quantstack
ETP :
Jupyter comme framework d’applicatifs web sera adapté aux besoins du projet, notamment quant aux normes d’accessibilité. Au delà de la mise aux normes WCAG, certaines adaptions spécifiques aux interactions avec des environnements de développement seront développées, grâce notamment à des tests usagers.
TO DO : décrire l’existant et répartir les livrables selon les jalons
Existant :#
Actions et phasage :#
Accessibilité :
Mise aux normes WCAG
Développements d’outils d’accessibilité spécifiques aux interactions avec des environnements de développement
Utilisabilité:
Internationalisation
Support des plateformes tactiles de formats divers (tablettes, téléphones)
Améliorer le framework Jupyverse
T0 - T0+6M (MVP)
T0+6M - T0+18M (Candyce V1)
T0+18M - T0+36M (Candyce pour tous)
Tâche 1a.10 - Contributions transverses dans Jupyter comme couche applicative#
TO DO : renommer avec un nom orienté usager ? « Adaptation de l’application carnet aux besoins éducatifs » ?
Responsable : Quantstack
ETP :
La principale application proposée par Jupyter est le carnet. Pour simplifier et adapter l’usage du carnet aux besoins de l’éducation, certains développements spécifiques seront effectués.
TO DO : existant et répartir livrables selon les jalons
Existant :#
Actions et phasage :#
Simplification de l’interface du carnet
Simplification de la navigation (selon les ces d’usage)
Édition des cellules de texte en WYSIWYG
Édition de formules mathématiques
Code par blocs
Correction semi-automatique
Collaboration enseignants/apprenants
Édition collaborative
Possibilité d’annoter les carnets
T0 - T0+6M (MVP)
T0+6M - T0+18M (Candyce V1)
T0+18M - T0+36M (Candyce pour tous)
"Tâche 1a.11 - Intégration expérimentale d'autres outils libres dans les environnements"#
Responsable : Quantstack
ETP :
Description
Existant :#
Actions et phasage :#
Actions et phasage :#
T0 - T0+6M (MVP)
T0+6M - T0+18M (Candyce V1)
T0+18M - T0+36M (Candyce pour tous)
Livrables ANR#
Selon calendrier: infrastructure Candyce MVP (rapport)
L1a.1 : T0+18M contributions logicielles et infrastructure Candyce V1 (rapport)
L1a.2 : T0+36M contributions logicielles et infrastructure Candyce pour tous (rapport)
Ressources#
ETP | Role | Affiliation | Début | Fin | PM |
---|---|---|---|---|---|
3.000000 | Développeurs (back-end, devops, package management) | QuantStack | 1 | 36 | 108.000000 |
1.000000 | Développeur front-end | QuantStack | 1 | 36 | 36.000000 |
1.000000 | Développeur front-end, Accessibilité | QuantStack | 1 | 36 | 36.000000 |
1.000000 | UX designer | QuantStack | 1 | 36 | 36.000000 |
1.000000 | Développeur front-end (CMS) | QuantStack | 1 | 36 | 36.000000 |
1.000000 | Développeur back-end (CMS) | QuantStack | 1 | 36 | 36.000000 |
0.200000 | Logistique tests utilisateurs | ? | 1 | 36 | 7.200000 |
1.000000 | Développeur (devops) | FUN | 1 | 36 | 36.000000 |
2.500000 | Développeurs (dev Capytale contribuant à la convergence vers Candyce ou l'extension vers le collège) | AcademieDeParis | 1 | 36 | 90.000000 |
3.000000 | Développeur (convergence Capytale-Candyce) | AcademieDeParis | 1 | 36 | 108.000000 |
Dévelopement Pyodide | Prestation Symerio | 1 | 36 |
Ressources Lot 1a: Développement socle logiciel#