17
ASSOCIATION DES JEUNES SAPEURS- POMPIERS GESTION DES JSP THOMAS BUVAT LYCÉE LAMARTINE 01 JUIN 2018

ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

ASSOCIATION DES JEUNES SAPEURS-POMPIERS

GESTION DES JSP

THOMAS BUVAT LYCÉE LAMARTINE

01 JUIN 2018

Page 2: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

1

Table des matières Expression des besoins – S1………………………………………………………………………………………………………...………………3

• Contexte, domaine, processus métier • Demandeurs, acteurs, utilisateurs • Etude de l'existant, diagnostic • Description de la demande, objectifs, bénéfices attendus • Contraintes ou exigences (matérielles, délais, budget, ...) • Rédaction du cahier des charges

Spécifications – S2……………………………………………………………………………………………………………………………………………4

• Description détaillée de l’application • Décomposition en fonctionnalités à réaliser : numérotées, classées et priorisées • Exigences (environnement, réalisation, outil de développement, sécurité, standards,

normes, ...) • IHM (interfaces homme-machine) • Rédaction des spécifications fonctionnelles détaillées

Conception – S3…………………………………………………………………………………………………………………………………………………7

• Recherche et étude comparative des solutions • Choix d'une solution, élaboration et Description de la solution • Outils logiciels de la solution • Architecture matérielle et logicielle de la solution (schémas) • Besoins techniques, ressources (humaines, matérielles, logicielles et budgétaires, coûts),

... • Analyse des données (modélisation, diagramme de classes, schéma relationnel) • Analyse des traitements (schéma conceptuel, composants, algorithmes) • IHM (interfaces homme-machine), Maquettage • Analyse des risques et de la sécurité • Conduite de projet : décomposition en tâches, structure équipes, planning (Gantt),

durée • Rédaction du dossier d’analyse et de conception

Développement………………………………………………………………………………………………………………………………………………..12

• Implantation base de données, découpage des traitements en modules, classes, ... • Structure application • Réalisation des interfaces (IHM) et programmes conformes aux spécifications

fonctionnelles attendues • Dossier de programmation codes sources documentés et commentés

Tests……………………………………………………………………………………………………………………………………………………………………..15

• Rédaction du plan de test • Tests unitaires • Tests fonctionnels • Tests d’intégration, Tests IHM, Tests de configuration, Tests de performance, ...

Page 3: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

2

Exploitation……………………………………………………………………………………………………………………………………………………….16 • Cahier de recette, recette de l'application avec les utilisateurs. • Installation, déploiement, fonctionnement éventuel en double avec l'ancienne

procédure. • Rédaction consignes d’exploitation • Rédaction notice utilisateur • Formation des utilisateurs

Maintenance…………………………………………………………………………………………………………………………………

• Maintenance corrective • Maintenance évolutive

Page 4: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

3

EXPRESSION DES BESOINS L’Association des Jeunes Sapeurs-Pompiers de Montmerle a été créée en 1990. Elle s’occupe de former des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs de la section et les membres du bureau. Les utilisateurs sont les Jeunes Sapeurs-Pompiers, leurs parents, les moniteurs de la section, les membres du bureau, et tout utilisateur souhaitant obtenir une information sur la section des Jeunes Sapeurs-Pompiers de Montmerle. Actuellement, une solution web est mise en place, elle permet de gérer certaines fonctionnalités telles que la création de comptes utilisateurs, l’envoi de messages, la prévention des absences, la publication de photos et d’actualités, de billet de blog, etc… via un panel d’administration, et un système de comptes d’utilisateurs. Des failles de sécurité récemment repérées mettent en péril le fonctionnement du site, ainsi que la confidentialité des données médicales saisies par les JSP ou leurs parents, je devrais donc supprimer les failles. Dans un contexte de modernisation et de fluidification du code, je dois passer le site sous une architecture dite MVC, et résoudre par la même occasion des bugs de fonctionnement remonté par les utilisateurs. La section recrute, et souhaite informatiser son système de recrutement. Je gèrerais la mise en place d’un dossier de recrutement en ligne. Au niveau des contraintes, je ne suis limité en temps que pour le système de recrutement, qui doit être prêt pour la première semaine de juin. L’hébergement actuel est géré par une machine Linux, comprenant un serveur apache2, un service PHP et un serveur MySQL, mais la solution d’hébergement viendra probablement à évoluer, puisqu’un rendez-vous va être pris avec un prestataire extérieur d’ici peu de temps.

Page 5: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

4

SPÉCIFICATIONS

Avant d’aborder l’application de recrutement, il a d’abord fallu que je comprenne comment fonctionnait l’ancien système de recrutement.

Les JSP sont recrutés au forum des associations, qui se déroule sur la place du marché de la commune. A ce forum, ils devaient retirer un dossier, comprenant une fiche de renseignement, le règlement, un contrat d’engagement, une autorisation parentale et des autorisations de droit à l’image. Ils devaient ensuite remplir ce dossier chez eux, et le rapporter avec un certificat médical de non contre-aptitude à la pratique sportive, le jour des entretiens et des tests de sélection.

Une fois les tests passés, l’Assemblée Générale (AG) s’entretenait pour savoir si le JSP répondait à leurs exigences, et convoquait le JSP pour récupérer son habillement et débuter le cours.

Après concertation avec mon maitre de stage, j’ai fait le choix de décomposer mon système de recrutement en deux phases distinctes.

La première gèrera le remplissage de la fiche de renseignement, l’envoi d’un certificat médical, la rédaction d’une lettre de motivation, et enfin l’acceptation des règles de la section. Une fois après avoir rempli les formulaires requis, l’administrateur vérifiera les informations et validera au jeune l’accès à la journée de tests de sélection et d’entretiens.

Une fois cette journée passée, l’AG s’entretiendra sur chaque jeune, et débloquera la possibilité au jeune d’accéder à la deuxième phase de recrutement.

Pour y accéder, le jeune tapera son nom, son prénom ainsi que sa date de naissance. Une fois cela fait, il pourra signer son contrat d’engagement, l’autorisation parentale et les documents de droits à l’image.

Enfin, le jeune recevra la convocation pour venir récupérer son habillement.

Dans un premier temps, je dois donc concevoir l’écran qui permettra aux jeunes de sélectionner la phase de recrutement dans laquelle ils se trouvent. Ensuite, je ferais la première phase de recrutement (fiche de renseignement, certificat médical à uploader, lettre de motivation, acceptation du règlement).

Par la suite, je devrais concevoir le système de validation et d’envoi des convocations sur le panel d’administration. Les fonctionnalités énoncées précédemment doivent être achevées avant le 2 septembre (date à laquelle se déroulera le forum des associations).

Page 6: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

5

Pour débuter le processus de conception, j’ai fait le choix de hiérarchiser les tâches de la manière suivante :

1- Reprise des documents papier actuellement mis en place 2- Transformation de ces documents en champs exploitables dans une base de données 3- Définition du style graphique général de l’application 4- Création de l’interface du premier écran 5- Création de l’interface des écrans autres écrans 6- Adaptation des fichiers image des interfaces en html/css 7- Mise en fonction des interfaces avec l’ajout des codes PHP nécessaires 8- Développement du système d’administration

Les exigences sont, pour ce système, surtout portées au niveau de la sécurité. Toutes les requêtes SQL devront être sécurisées afin de ne pas permettre d’injection SQL ou l’exploitation de toutes autres failles. Dans l’idéal, il faudrait que l’application soit totalement achevée au plus vite pour être testée avant la fin du mois courant. Les interfaces du système s’articulent ainsi :

Écran 1 – Rendu web

Page 7: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

6

Écran 2 – Rendu web

Écran 3 – Rendu web

Page 8: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

7

CONCEPTION

La solution de recrutement que je suis en train de mettre en place va permettre aux personnes souhaitant devenir JSP de candidater pour intégrer la section des Jeunes Sapeurs-Pompiers de Montmerle. L’application est développée en PHP, HTML et CSS ; et est hébergée sur un VPS de chez PulseHeberg, dont les caractéristiques sont les suivantes :

Le système d’exploitation utilisé est Linux. L’application est développée à l’aide de SublimeText, FileZilla, et Codiad lorsque je travaille via mon navigateur internet (Firefox).

Actuellement, l’arborescence de l’application se décompose en 6 fichiers, qui composent la première phase.

Page 9: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

8

Les tables de l’application se décomposent ainsi, les relations de clés étrangères étant modélisées par les traits verts. La table principale est la table « information », qui stocke toutes les données relatives à l’utilisateur en lui-même. Les autres tables sont là pour gérer des informations secondaires, telles que ses informations de sécurité sociale, les membres de sa famille proche, son école, etc…

Page 10: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

9

Diagramme de l’application

Page 11: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

10

Interface graphique du système de personnes à prévenir

Bloc de code permettant de générer dynamiquement l’affichage de formulaires demandés pour le nombre de personnes à prévenir.

Page 12: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

11

Au niveau des risques, ceux-ci seront traités et éliminés lors de la dernière étape du système de recrutement, puisque c’est à la fin que les insertions de données auront lieues dans la base de données. Il faudra faire des requêtes dites « bindées » afin d’éviter les injections SQL. En ce qui concerne les différentes tâches réalisées, voici un compte-rendu de l’avancée de chacune d’elles, par rapport à la semaine dernière.

1- Reprise des documents papier actuellement mis en place 2- Transformation de ces documents en champs exploitables dans une base de données 3- Définition du style graphique général de l’application 4- Création de l’interface du premier écran 5- Création de l’interface des écrans autres écrans

a. Écran 1 b. Écran 2 c. Écran 3 d. Écran 4 (gestion du nombre de frères et de sœurs) e. Écran 5 – En cours f. Écran 6 – En attente de réalisation

6- Adaptation des fichiers image des interfaces en html/css 7- Mise en fonction des interfaces avec l’ajout des codes PHP nécessaires – En cours 8- Développement du système d’administration – En attente de réalisation

Mon planning prévisionnel serait le suivant :

Lundi Mardi Mercredi Jeudi Vendredi Suite et fin de la réalisation de l’écran 5, qui gèrera les informations relatives à la protection sociale de l’enfant

Réalisation de l’écran 6, qui prendra en charge les informations scolaire et extra-scolaire de l’enfant

Ajout du système de traitement des données en PHP (utilisant les $_SESSION) pour récupérer et insérer les informations dans la base de données

Début de la gestion des candidatures via le panel administratif

Suite du panel administratif.

Page 13: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

12

DÉVELOPPEMENT La base de données actuelle s’articule en 24 tables, chaque table a une fonctionnalité particulière bien définie.

Les tables créées pour l’application de recrutement sont les tables :

• Information - qui contient les informations relatives au JSP (nom, prénom, adresse, etc…)

• Insurance - elle gère les informations concernant l’assurance et la protection sociale des jeunes

• Parent - concerne les informations sur les parents de chaque JSP (nom, prénom, adresse, n° de téléphone, etc…)

• Sibling - gère les données sur les frères et les sœurs de chaque JSP • School - répertorie les différentes écoles dans lesquelles sont scolarisés

les jeunes.

Page 14: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

13

L’application est basée sur un modèle dit « step by step », plus littéralement appelé « étape par étape ». J’ai fais le choix de la décomposer en plusieurs fichiers, chaque fichier gérant une étape bien précise. Suite à concertation avec mon maître de stage, de nouvelles étapes ont été ajoutées par rapport à la semaine dernière. Ces nouvelles étapes prennent en compte la saisie d’une seule lettre de motivation par JSP, ainsi que l’acceptation du règlement de la section des Jeunes Sapeurs-Pompiers de Montmerle, et d’un fichier annexe. Voici une capture d’écran de l’arborescence des fichiers, qui composent l’application ce jour. Cette arborescence sera probablement amenée à évoluer d’ici peu dans un souci d’optimisation du code.

Les interfaces homme-machines de ces nouvelles étapes ne diffèrent que très peu des précédentes, il ne me semble pas utile de remettre des captures d’écran de ces dernières. Cependant, en ce qui concerne les programmes, j’ai choisi de continuer à utiliser PHP, SQL et HTML/CSS. A chaque étape du système de recrutement, des $_SESSION sont créées et définies et servent à stocker les informations saisies dans les différents formulaires. Si les $_SESSION ne sont pas remplies, l’utilisateur ne peut pas passer à l’étape suivante. La mise en place d’un système de vérification des données est envisagée, mais ne se fera que lors des phases de maintenance. L’insertion des données dans la base de données est sécurisée par des requêtes dites « bindées », ce qui contrera la plupart des failles SQL.

Page 15: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

14

Une nouvelle fonctionnalité a également été mise en place, pour répondre à un besoin urgent de communication ; il s’agit de la création d’un système de notifications SMS. Lors de chaque envoi de message (message privé, message groupé, ou message général), un SMS est envoyé à un parent du JSP pour le notifier de la réception de ce message. Après avoir mené une courte étude de coûts, j’ai choisi de me tourner vers la plateforme SMS Partner pour gérer l’envoi de nos SMS. SMS Partner propose l’envoi de SMS via une API directement intégrable au système déjà mis en place pour gérer l’envoi de message sur le site. J’ai ensuite étudié les différentes solutions d’envois de messages proposés par l’API, ainsi que les différentes options, etc… dans le but de savoir comment configurer le système, puis j’ai commencé l’intégration du système. Des tests ont été par la suite réalisés. Le SMS est envoyé d’un numéro aléatoire, et comporte un message personnalisé, invitant son destinataire à consulter le site de la section.

Page 16: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

15

TESTS Après avoir réalisé l’interface administrateur et la première partie du système de recrutement, des tests ont été effectués pour s’assurer du bon fonctionnement du service. Arrivé à l’étape de la saisie de contact d’urgence, un blocage subsistait, car une $_SESSION n’était pas définie correctement à l’étape précédente. A part ce bug, aucun autre n’a été découvert. Le système est fonctionnel. Les candidats pourront, dès le 6 juillet, commencer à remplir leur dossier de candidature en ligne. Les administrateurs auront ensuite accès à chaque dossier via le panel d’administration. Je note cependant l’absence du règlement de la section, qui n’a pas encore été ré-adapté à l’année qui arrive, l’acceptation du règlement a donc été désactivée pour le moment. Une option permettant de ajouter/modifier le règlement via le panel d’administration est en cours de création.

Capture d’écran de la liste des candidatures (vue administrateur), avec jeu d’essai sur 1 candidat.

Page 17: ASSOCIATION DES JEUNES SAPEURS-POMPIERSformer des jeunes au métier de sapeur-pompier, sur un cycle d’apprentissage réparti en quatre années. Les demandeurs sont les moniteurs

16

EXPLOITATION Grâce à la plateforme de développement utilisée, aucune installation n’a été à mettre en place pour rajouter le système de recrutement au site. Cependant, j’ai dû rajouter le lien dans le menu en passant par la base de données en effectuant l’insertion d’un champ dans deux tables différentes, gérant les liens du menu et les pages. En ce qui concerne la formation des utilisateurs, les seuls utilisateurs formés ont été les administrateurs du site, afin qu’ils comprennent comment faire pour traiter les candidatures, et donner la possibilité au candidat de reprendre et de finaliser l’envoi des documents sur sa candidature une fois les tests passés. Suite à cette formation et aux démonstrations, les formateurs JSP m’ont demandé de faire en sorte que le dossier d’inscription soit imprimable à la fin de la 1ère étape. Je pense donc utiliser la librairie FPDF pour répondre à cette nouvelle contrainte. Le dossier de recrutement PDF ne m’a pas encore été transmis. Dans l’attente, je commence à améliorer et à mettre en place des contrôles de saisie des données sur les différents formulaires. La 2è partie sera développée en dehors de la période de stage, mais sera fonctionnelle pour le jour même des tests de recrutements.