Application PHP Laravel gestion scholaire avec Rapport et présentation

SmartSchoRP est une application qui va servir pour les différents utilisateurs/ Formateurs / Administrateur. Cette application qui centralise les différentes opérations, et données et qui offre une plateforme collaborative entre les différents utilisateurs destinés.

Notre application doit avoir une interface simple et conviviale à utiliser par tous les utilisateurs. Elle doit aussi offrir des fonctionnalités qui facilitent la tâche de l’opérateur.

Notre application est hébergée sur un serveur Web distant qui garantit une disponibilité estimée de 99%. 

L’application est accessible par les différents clients, le manager et travailleurs du centre ainsi que l’équipe pédagogique.

– L’application doit gérer le problème du temps réel et assure un accès rapide aux données et une bonne utilisation des ressources. 

Pour résoudre le problème et trouver des solutions pour gérer tout type de tâche, chaque développeur a sa propre démarche qui peut être utilisée pour l’obtention d’un résultat satisfaisant et bien articulé selon des méthodes adoptées.  

Par conséquent nous devons opter pour les meilleures solutions et les plus optimales pour se référer à une méthodologie fondée qui facilite la gestion d’un cycle de vie d’un projet. Parmi les multitudes des méthodes, nous nous intéressons aux méthodes agiles vues leurs apports pour les projets où les besoins évoluent.  

 « Une méthode agile est une approche itérative et incrémentale, qui est menée dans un esprit collaboratif avec juste ce qu’il faut de formalisme. Elle génère un produit de haute qualité tout en prenant en compte l’évolution des besoins des clients ».

Les méthodes agiles visent à intégrer au cours du projet de manière continue le client final, c’est à dire le plus souvent l’utilisateur final à qui le nouveau logiciel est destiné. Les méthodes agiles permettent une plus grande réactivité aux demandes du client.

Les quatre fondamentales valeurs des méthodes agiles (agile manifesto principles)

SCRUM est un Framework agile qui suit un processus itératif incrémental, en effet un projet SCRUM passe toujours par une séquence d’évènements bien connue. 

Il se compose d’une SCRUM Team qui dispose de trois rôles SCRUM Master, Product Owner et Development Team que nous allons détailler dans le chapitre suivant. 

Le cœur de SCRUM est le Sprint dont l’objectif est de réaliser un incrément potentiellement livrable et de plus haute valeur ajouté. 

Il se base sur trois piliers : 

La figure suivante illustre le parcours SCRUM ainsi que ses différents composants.

Scrum place l’humain au centre de la méthodologie.  

L’avantage principal de cette méthode est qu’elle correspond parfaitement à une petite équipe qui travaille sur un grand projet, elle s’appuie sur la répartition des tâches et la collaboration entre les membres du groupe. Avec les anciennes méthodes, le client ne voyait le logiciel qu’au moment de la livraison et n’était pas impliqué au cours des différentes phases de son développement. En effet, il n’avait accès aux tests que lorsque le produit était fini ou presque. Par contre en Scrum, l’implication du client a lieu tout au long du processus car il y a plusieurs livrables qu’il doit valider. Chaque livrable correspond à l’implémentation de nouvelles fonctionnalités et le client peut facilement apprécier l’avancement du produit et il a de nombreuses occasions de demander les ajustements nécessaires à la satisfaction de sa demande.  

Grâce à Scrum, nous avons pu réduire les temps de production et répondre au plus près aux besoins du client. Scrum vise donc essentiellement l’optimisation de la prévisibilité d’un projet tout en réduisant les risques au minimum.

La figure suivante montre en détails le processus de l’exécution de Framework Scrum.

Figure 7:Processus Scrum

Scrum est :   

– Léger   

– Simple à comprendre   

– Difficile à maîtriser  

Durant un développement d’un projet avec la méthode Scrum il y a plusieurs étapes à suivre avec une démarche spécifique et une interaction avec plusieurs intervenants.

La méthode Scrum définit seulement trois rôles pour un projet :

Le Scrum Master qui doit maîtriser Scrum et s’assurer que ce dernier est correctement appliqué. Il a donc un rôle de coach à la fois auprès du Product Owner et auprès de l’équipe de développement.

Les principaux artéfacts qu’on peut les générer lors de   l’utilisation de la méthode Scrum :

Ensemble des caractéristiques (fonctionnalités ou besoins techniques) qui constituent le produit souhaité. Il doit être priorisé pour permettre de développer les éléments de plus haute importance en premier.

Il contient un sous-ensemble des éléments du backlog de produit. Les éléments constituent les user stories à développer au cours du sprint et sont préalablement détaillés pour pouvoir être estimés par l’équipe de développement. Il est également priorisé

Tableau physique ou logiciel reprenant les éléments du backlog de sprint. Il possède plusieurs colonnes permettant de suivre l’avancement des user stories affichées via des postit ou des cartes.

C’est un graphique qui permet de visualiser l’avancement des sprints et du projet dans sa globalité, c’est l’indicateur temporel de l’évolution des taches en cours dans le Sprint.  L’axe verticale représente la qualité de travail à faire et l’axe horizontal représente les jours du travail.

Pour faciliter la mise en place des Sprints et mieux documenter les incréments nous avons eu recours à l’utilisation du langage de modélisation UML dans sa version 2.0.

UML (Unified Modeling Language) est un langage de modélisation objet permettant de représenter n’importe quel système d’informations sous forme de modèles autour de trois axes ; un axe statique, un axe dynamique et un axe fonctionnel.

Nous nous engageons dans la partie conception des sprints de réaliser des modèles de différents axes afin d’avoir une vue complète et de clarifier au mieux le développement des sprints.

Dans ce chapitre nous avons décrit l’organisme d’accueil, le contexte du projet et le Framework adopté. 

Dans le chapitre suivant nous nous engageons à faire une étude initiale du projet où nous allons détailler nos besoins fonctionnels et non fonctionnelles, l’architecture adoptée et les outils techniques de réalisation.

La spécification des besoins représente la première phase du cycle de développement d’un logiciel. Elle sert à identifier les acteurs réactifs du système et leur associer chacun l’ensemble d’actions avec lesquelles il intervient dans l’objectif de donner un résultat optimal et satisfaisant au client.

Un acteur est l’idéalisation d’un rôle joué par une personne externe, un processus ou une chose qui interagit avec un système. Dans le cas de notre projet nous présenterons les acteurs suivant :

L’administrateur : C’est le superviseur qui contrôle et rectifie l’application pour assurer le bon fonctionnement. Il le contrôle totale sur toutes les fonctionnalités de l’application.

L’administrateur est capable toute sorte d’opération offerte par notre système qui sont : 

Dans notre cas on a besoin plusieurs comptes administrateurs pour les différents opérateurs du centre donc on doit avoir plusieurs profils administrateurs qui sont géré par un Super Admin.

Un Super Admin ou le « RootUser » est l’administrateur qui peut gérer toutes les autres administrateurs, ce dernier est généré automatiquement au-delà de l’étape de configuration de l’application est son compte n’est accessible pour la modification ou la suppression.

Le formateur : c’est un utilisateur particulier de l’application. C’est la personne assurant des formations au centre. Le rôle du formateur est essentiellement pédagogique donc il doit capable de consulter les formations qui sont affecté à lui. Ainsi que la planification des rendez-vous.

Le Client : toute client qui suivre une formation accélérée ou une formation diplômante chez Forma Pro, son compte sera généré automatiquement dès la pré-inscription a un cycle de formation. Donc notre système doit servir au niveaux des opérations suivantes : 

 

Dans le but de bien comprendre le contexte et les fonctionnalités de projet, nous avons sacrifié cette partie pour décrire ces fonctionnalités.

Il s’agit des fonctionnalités du système. Ce sont les besoins spécifiant un comportement d’entrée / sortie du Système. Le système doit permettre satisfaire les besoins suivants pour les différents acteurs qui l’utilisèrent

Les besoins fonctionnels destiné au l’administrateur sont : 

Le système doit permettre l’ajout d’un utilisateur. Permettre la modification des données d’un membre et le retirer. Le système permettra de trouver la fiche de description de l’utilisateur selon son code d’identification ou son nom et prénom, connaitre le ou les utilisateurs connecter à un certain moment.

Le Système fournit les fonctionnalités qui permettent de gérer les différentes formations, les inscris des clients au formations et leurs feedbacks.

Ce module sert à gérer les demandes des documents administratives et fournir les différents types de fichiers téléchargeable au clients et formateurs.

Ce module est destiné pour la gestion de blog du centre Forma Pro : les articles partagés, les commentaires et les analyses de Traffic de visiteurs.

L’administrateur peut envoyer des messages privés aux clients ou formateurs.

Cette rubrique sert à planifier les évènements culturelles et professionnelles

Le système permettra aussi de gérer les paramètres de l’application. On pourra créer un nouveau paramètre ou le modifier. 

Le système doit satisfaire les besoins suivants pour le formateur 

Le formateur se connecte sur son espace formateur.

Le Formateur peut consulter les messages qui sont envoyé par l’administrateur.

Le formateur doit aussi suivre les formations qui sont affecté à lui.


Le client se connecte sur son espace client.

Le client peut planifier un Rendez-vous avec l’administration du centre à propos un sujet précis

Ce module fournit les fonctionnalités qui permettent de passer des demandes documents comme : attestation de présence, attestation de stage…

Les informations doivent être toujours accessibles et disponibles pour la prise de décision à temps.

L’étude des systèmes d’information doit répondre aux besoins actuels et futurs des utilisateurs (paramétrage).

Pour assurer une meilleure expérience utilisateur (User Experience ou UX), le système doit répondre aux requêtes dans les plus minimes intervalles de temps.

Le système doit être facile à apprendre et à manipuler. Même pour les utilisateurs débutants qui ne disposent pas une grande expertise en Informatique, l’utilisateur à sa première utilisation doit effectuer un tel opération sans difficulté et après un nombre d’itérations raisonnable l’utilisateur sera capable de faire l’opération rapidement et sans ambigüité. 

L’objectif de cette section est de mettre l’accent sur l’architecture globale de notre application ainsi que la définition des outils de réalisation

Avant de se lancer dans la conception et le développement de tout système informatisé, il est important de préparer l’architecture de ce dernier.

L’architecture MVC (modèle, vue et contrôleur) est un concept très puissant qui intervient dans la réalisation d’une application. Son principal intérêt est la séparation des données (modèle), de l’affichage (vue) et des actions (contrôleur).

Figure 13:Architecture MVC

Notre solution utilise l’architecture opérationnelle trois tiers. Comme illustrée dans la figure ci-après, la solution que nous avons choisie obéit à la même structure laissant apparaitre les tiers suivants :

 

Figure 14: schéma explicatif Architecture 3-tières

Les avantages de l’architecture 3-tiers sont principalement au nombre de quatre : 

1.Les requêtes clients vers le serveur sont d’une plus grande flexibilité que dans celles de l’architecture 2-tiers basées sur langage SQL. 

2.Cette flexibilité permet à une entreprise d’envisager dans le cadre d’une architecture 3tiers une grande souplesse pour l’introduction de toutes nouvelles technologies. 

3.D’un point de vue développement, la séparation qui existe entre le client, le serveur et le SGBD permet une spécialisation des développeurs sur chaque tiers de l’architecture. 

4.Plus de flexibilité dans l’allocation des ressources, la portabilité du tiers serveur permet d’envisager une allocation et ou modification dynamique au grés des besoins évolutifs au sein d’une entreprise.

Captures Ecrans : 

Lien téléchargement : Application | Rapport | Présentation 

 

Quitter la version mobile