Skip to content

WassimeEY/mediatekformation

Repository files navigation

Extension de la web app Mediatekformation

Un avertissement lié à la réécriture d'url, et à l'accès à la documentation se trouve en bas du readme, n'oublier pas de le lire.

Présentation

Ce site, développé avec Symfony 6.4, permet d'accéder aux vidéos d'auto-formation proposées par une chaîne de médiathèques et qui sont aussi accessibles sur YouTube.
Cet atelier a été réalisé pour ajouter la partie back-office et quelques fonctionnalités supplémentaires à la web app MediatekFormation. Voilà le dépôt GitHub d'origine sur lequel cet atelier est basé : https://github.com/CNED-SLAM/mediatekformation
Vous y trouverez son readme, qui contient la présentation complète de l'application d'origine.

Elle contient désormais ces nouvelles fonctionnalités :
DiagrammeCasUtilisatonAccesBackoffice

Les nouvelles pages

Voici les 7 nouvelles pages qui sont liées aux différents cas d'utilisations:

Page 1 : l'accueil du back-office ainsi que l'header et le footer du back-office

Cette page est basée sur l'accueil du front-office, la différence réside dans son contenu et surtout dans l'header et le footer qui l'utilisent. En effet, la page "baseback.html.twig" est utilisée dans toutes les pages du back-office et donc ce nouveau footer et header.
La web app contient désormais un lien pour accéder à la documentation technique : ce lien est présent en bas de chaque page, excepté les pages de la documentation technique.
Accueil admin recent agrandie github2

L'header du back-office contient les nouveaux boutons suivant:
• Gestion des formations
• Gestion des playlists
• Gestion des catégories
• Partie Front : qui nous permet de passer à la partie front-office sans pour autant se déconnecter.
• Se déconnecter : qui nous permet de nous déconnecter.

Le footer contient le texte "Section Admin" pour bien faire la différence avec le front sur toutes les pages du back-office.

Page 2 : gestion des formations

Cette nouvelle page est entièrement copié de la page du front-office qui liste les formations, donc les tris et les filtres le sont aussi, vous pouvez trouver la documentation de la page originale sur le dépôt donné plus haut.
Comme on peut le voir la différence est plutôt flagrante, la miniature de chaque formation a disparu, elle a était remplacé par 2 boutons, les boutons "modifier" et "supprimer". Il y'a également un nouveau bouton dans l'en-tête de la liste, le bouton "ajouter".
De plus, si l'un des boutons "supprimer" est cliqué, alors une boîte de dialogue de confirmation s'ouvrira et si il y'a confirmation, la formation sera supprimé :
Suppression dans gestion formations github2
Si le bouton "modifier" est cliqué, alors une autre page, qui est un formulaire de modification, s'ouvrira.
De même si on clique sur le bouton "ajouter", un formulaire d'ajout s'ouvrira.

Page 3 : gestion des playlists

Cette nouvelle page se base également sur celle du front-office, les filtres et tris fonctionnent également de la même manière.
Cependant, le bouton "voir détail" du front-office n'est plus présent, il a était également remplacé par les boutons "modifier" et "supprimer".
Il est précisé dans le cahier des charges qu'il devrait nous être impossible de supprimer une playlist si elle contient des formations, cela a était retranscrit dans le code php mais également dans la vue directement.

En effet, on observe que les boutons "supprimer" sont pour la plupart grisés. La raison est que ces playlists contiennent au moins une formation, seul la playlist "playlist test" n'en contient aucune.
Le bouton "supprimer" grisé ne ramène à rien, c'est en quelque sorte une "coquille vide" :
gestion playlist github2
On peut également remarquer que la colonne "nb de formations" a été ajouté, il faut savoir que c'est aussi le cas sur le front-office désormais.
De plus, les boutons "modifier", "supprimer" et "ajouter" agisse de la même manière que la page de gestion des formations, mais cette fois adapté pour les playlists.

Page 4 : gestion des catégories

Cette fois, je n’avais pas de page listant les catégories provenant du front à copier, j’ai donc repris la page des playlists pour gagner du temps.
Je l’ai ensuite adaptée en ne conservant que deux colonnes : une pour le nom de la catégorie et une autre pour le bouton de suppression.
On peut aussi noter que, comme pour les playlists, le bouton se grise si des formations sont rattachées à la catégorie.

On peut également observer que le formulaire d'ajout n'est pas une page séparée ici.
En effet, comme précisé dans le cahier des charges, le formulaire d'ajout de catégorie est directement inclus à la page.
Gestion categorie github
Il est aussi possible de trier ou filtrer les catégories listées sur leur nom avec l'aide des boutons "<" et ">" ainsi qu'à l'aide de la zone de texte de filtre.

Page 5 : formulaire de modification et d'ajout d'une formation

L'ajout de formation se base sur la même page, la seul différence est que les valeurs ne sont pas préremplies et qu'un texte "Nouvelle formation" est présent.
On accéde à cette page après avoir cliqué sur l'un des boutons "modifier" de la liste des formations de la page "gestion des formations".
Cette page contient différent champs lié aux données d'une formation :
• Le titre
• La description
• La date
• La playlist
• Les catégories

Ces champs sont préremplies avec les valeurs de la formation choisi :
modif formation github
On a également un bouton "Enregistrer" qui nous permettra d'enregistrer nos modifications ou d'ajouter la nouvelle formation à la base de données.
Il faut également savoir que la sauvegarde n'aura pas lieu si un champ requis est vide, ou si une contraine n'est pas respecté.
Par exemple, on ne peut pas choisir une date qui dépasse celle d'aujourd'hui, sous peine d'avoir un message d'erreur.

Page 6 : formulaire de modification et d'ajout d'une playlist

L'ajout de playlist se base sur la même page, la seul différence est que les valeurs ne sont pas préremplies et qu'un texte "Nouvelle playlist" est présent.
La modification d'une playlist est très similaire à la modification de formation.
En effet, on peut accéder à cette page après avoir cliqué sur l'un des boutons "modifier" de la liste des playlists de la page "gestion des playlists".
Cette page contient différents champs lié aux données d'une playlist :
• Le nom
• La description
• Les formations dans la playlist

Ces champs sont préremplies avec les valeurs de la playlist choisi :
modif playlist github
On a également un bouton "Enregistrer" qui nous permettra d'enregistrer nos modifications ou d'ajouter la nouvelle playlist à la base de données.
Il faut également savoir que la sauvegarde n'aura pas lieu si un champ requis est vide.

Page 7 : authentification à la partie back-office

Cette page nous permet de nous authentifier à la partie back-office de l'application.
On y voit 2 champs, un pour le login (nom d'utilisateur du compte admin) et un pour le mot de passe (mot de passe du compte admin).
Si on entre le mauvais login ou le mauvais mot de passe on obtiendra une erreur "Invalid credentials":
Page login github

Mise à jour du header et footer de la partie front

Le header contient désormais les nouveaux boutons :
• Partie Back
• Se déconnecter : pour se déconnecter lorsqu'on est connecté.
Accueil maj github
Le footer, quant à lui, contient désormais un lien vers la documentation du site.

La base de données

La base de données n'a pas était tant modifiée.
Le seul changment notable est qu'on a une nouvelle table, la table "user", qui contient les profils ayant accès à la partie back-office :
Nouvelle bdd github
Cette table a une structure de deux colonnes, un pour le login et l'autre pour le mot de passe haché en bcrypt.

Test de l'application en local

  • Vérifier que Composer, Git et Wampserver (ou équivalent) sont installés sur l'ordinateur.
  • Il faut que WampServer ainsi que composer utilise une version de PHP supérieur ou égal à la version 8.1, donc par exemple la version 8.1.31, voilà comment modifier la version de PHP utilisé par composer : https://stackoverflow.com/questions/46986139/how-to-change-php-version-used-by-composer
  • Télécharger le code et le dézipper dans www de Wampserver (ou dossier équivalent) puis renommer le dossier en "mediatekformation".
  • Ouvrir une fenêtre de commandes en mode admin, se positionner dans le dossier du projet et taper "composer install" pour reconstituer le dossier vendor.
  • Dans phpMyAdmin, se connecter à MySQL en root sans mot de passe et créer la BDD 'ghymyxex_mediatekformation'.
  • Récupérer le fichier ghymyxex_mediatekformation.sql en racine du projet et l'utiliser pour remplir la BDD (si vous voulez mettre un login/pwd d'accès, il faut créer un utilisateur, lui donner les droits sur la BDD et il faut le préciser dans le fichier ".env" en racine du projet).
  • De préférence, ouvrir l'application dans un IDE professionnel. L'adresse pour la lancer est : http://localhost/mediatekformation/public/index.php

!!! ATTENTION !!!

Désactiver le module "rewrite_module" d'Apache sur Wampserver. En fait, le fichier .htaccess agissant différemment sur l'hébergeur PlanetHoster j'ai choisi de ne pas utiliser la réécriture en local pour ne pas devoir avoir un fichier .htaccess différent pour la partie local, donc laisser le fichier dans le projet comme tel, la réécriture d'url ne semble que fonctionner sur le serveur distant.
Donc l'url n'est absolument pas comme sur le serveur distant,
pour la page des formations on a en local : http://localhost/mediatekformation/public/index.php/formations
Alors que sur le serveur distant on a : https://wassimeeymediatekformation.worldlite.fr/formations
! De plus, le bouton amenant à la documentation ne fonctionne pas en local (mauvais chemin mais ça fonctionne sur le site distant à cause du problème que je viens de citer) donc pour y accéder passer par cette url: http://localhost/mediatekformation/public/doc/

Test de l'application en ligne

  • Accéder à l'URL suivante: https://wassimeeymediatekformation.worldlite.fr/
  • Essayer de parcourir le site distant
  • Se connecter avec le login et le mot de passe du compte admin pour pouvoir accéder au back-office.
  • Une fois connecté, essayer de modifier/supprimer/ajouter une formation, une playlist et d'actualiser. Si les changements sont bien sauvegardés alors le back-office de l'application fonctionne comme prévu !

Remarques

  • Le site est actuellement en mode dev.
  • Pour une meilleure expérience, je recommande d'utiliser un navigateur moderne (Chrome, Firefox...).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published