Mediatekformation

Présentation

Contexte

MediaTek86, le réseau des médiathèques de la Vienne, a confié à l’ESN InfoTech Services 86, société de 32 collaborateurs experte en développement et déjà en charge de l’infogérance et du support du parc informatique des médiathèques, la conception et l’hébergement de plusieurs applications internes. Parmi celles-ci figure le site d’auto-formation mediatekformation.

Le site mediatekformation est une plateforme d’auto-formation en ligne destinée aux agents du réseau des médiathèques MediaTek86, proposant des outils pour développer leurs compétences.

Existant

Un premier développeur a livré une base applicative Symfony qui affiche les playlists de formations côté front-office. Le code compile et le site est accessible, mais :

  • Le style et certaines pratiques de codage ne respectent pas les principes de qualité du code.
  • Une colonne « nombre de formations » manque dans les pages playlists.
  • Aucun back-office n’a encore été développé.
  • Les tests automatisés, les documentations technique et utilisateur, les scripts de déploiement ainsi que la sauvegarde de la base de données n’ont pas encore été mis en place.

Demande (missions)

Corriger et faire évoluer une application web Symfony exploitant une base de données relationnelle MySQL et qui met à disposition des vidéos d’auto-formation en ligne proposées par l’entreprise MediaTek86.

Le chef de projet nous confie la finalisation du site en quatre phases :

Nettoyage et ajout de fonctionnalité

Reprendre le code existant pour corriger les alertes SonarLint et ajouter une colonne « formations » triable dans les playlists.

Développement du back-office

Mettre en place une interface d’administration sécurisée (authentification) permettant de gérer les formations, les playlists et les catégories.

Tests et documentation

Rédiger et exécuter les tests unitaires, d’intégration et fonctionnels (incluant Selenium), puis produire la documentation technique et la documentation utilisateur.

Déploiement et CI/CD

Déployer le site et la documentation chez l’hébergeur, automatiser la sauvegarde quotidienne de la base de données, puis configurer un pipeline GitHub Actions pour le déploiement continu.

Plus d’informations sur les missions sont disponibles plus bas dans la partie ressources.

Liste des compétences couvertes

  • B1.1 : Gérer le patrimoine informatique
  • B1.2 : Répondre aux incidents et aux demandes d’assistance et d’évolution
  • B1.3 : Développer la présence en ligne de l’organisation
  • B1.4 : Travailler en mode projet
  • B1.5 : Mettre à disposition des utilisateurs un service informatique
  • B2.1 : Concevoir et développer une solution applicative
    • Analyser un besoin exprimé et son contexte juridique
    • Participer à la conception de l’architecture d’une solution applicative
    • Modéliser une solution applicative
    • Exploiter les ressources du cadre applicatif (framework)
    • Identifier, développer, utiliser ou adapter des composants logiciels
    • Exploiter les technologies Web pour mettre en œuvre les échanges entre applications, y compris de mobilité
    • Utiliser des composants d’accès aux données
    • Intégrer en continu les versions d’une solution applicative
    • Réaliser les tests nécessaires à la validation ou à la mise en production d’éléments adaptés ou développés
    • Rédiger des documentations technique et d’utilisation d’une solution applicative
    • Exploiter les fonctionnalités d’un environnement de développement et de tests
  • B2.2 : Assurer la maintenance corrective ou évolutive d’une solution applicative
    • Recueillir, analyser et mettre à jour les informations sur une version d’une solution applicative
    • Évaluer la qualité d’une solution applicative
    • Analyser et corriger un dysfonctionnement
    • Mettre à jour des documentations technique et d’utilisation d’une solution applicative
    • Élaborer et réaliser les tests des éléments mis à jour
  • B2.2 : Gérer les données
    • Exploiter des données à l’aide d’un langage de requêtes
    • Administrer et déployer une base de données

Langages & technologies

Ressources

Documentation utilisateur

Captures et diagrammes

Diagramme ERD (relations entre les entitées de la BDD)

USERintidstringusernamestringrolesstringpasswordCATEGORIEintidstringnamePLAYLISTintidstringnametextdescriptionFORMATIONintidintplaylist_iddatetimepublished_atstringtitletextdescriptionstringvideo_idFORMATION_CATEGORIEintformation_idintcategorie_idcontientappartient àlié àlié à

Diagrammes de cas d’utilisation de la partie administration du site

Administration du site

Module gestion des formations

Module gestion des playlists

Module gestion des catégories