Application Web

Système Gestion Emploi du Temps

janv. – mars 2023
110 vues
Code confidentiel, démo sur demande
démo sur demande
Système Gestion Emploi du Temps

Synthèse du projet

Stack
  • PHP
  • SQL
  • MySQL
  • Bootstrap
  • Laravel
  • Visual Studio
  • Docker
  • JIRA
  • Kanban
  • Nginx
  • PhpUnit
  • CSRF
  • Français
  • Canva
  • GitHub

Description du projet

Projet tutoré de troisième année de licence informatique (Métiers du Développement Informatique) à Aix-Marseille Université, de janvier à mars 2023. Notre groupe de quatre étudiants est devenu un groupe de trois quand un membre a quitté le projet en cours de route. Nous avons développé une application web de gestion interactive des emplois du temps pour un établissement d'enseignement, en prenant l'université comme cadre d'étude.

Le besoin. L'étude de l'existant a montré un établissement réparti en plusieurs campus, chacun géré par un ou plusieurs administrateurs. Les formations y sont découpées en modules, assurés par des enseignants, avec une capacité d'accueil limitée. Les cours ont lieu à une date précise, entre une heure de début et une heure de fin, dans des salles dont le type (cours magistral, travaux dirigés, travaux pratiques), l'équipement (vidéoprojecteur, ordinateurs) et la capacité varient. Il fallait un système centralisé pour que administrateurs, enseignants et étudiants s'organisent autour du même emploi du temps.

Ce que fait l'application. Chaque utilisateur se connecte avec un identifiant et un mot de passe, et son rôle (administrateur, enseignant ou étudiant) détermine ce qu'il peut faire. L'administrateur dispose d'une interface dédiée pour gérer chaque table de la base en quelques clics, et c'est lui qui crée les cours : les enseignants et les étudiants ne peuvent que consulter l'emploi du temps. Pour créer un cours, il choisit la durée, le type (CM, TD, TP), la salle et l'enseignant, puis fait glisser l'événement sur le calendrier.

Ma part du projet. J'ai travaillé sur la conception et l'implémentation de la base de données : le modèle conceptuel de données (MCD), son passage au modèle logique (MLD), puis la création de la base. J'ai aussi développé les services de l'application, c'est-à-dire la fondation sur laquelle le reste s'appuie, et j'ai personnalisé le thème (le gabarit des pages) que nous avons utilisé. La page d'accueil a été conçue pour reprendre l'aspect de ce que l'université utilisait à l'époque.

La base de données. Nous sommes partis d'un MCD tiré de l'étude de l'existant, qui a servi de base pour créer les entités Laravel et la base elle-même. Elle relie notamment les établissements, les campus, les formations, les modules, les salles et leurs équipements, les enseignants, les étudiants, les cours et leurs dates de programmation, ainsi que les événements.

Choix techniques. L'application est développée avec Laravel, qui impose une architecture MVC claire et fournit des outils pour la base de données et l'authentification. Côté interface, nous avons utilisé FullCalendar pour le calendrier interactif (événements déplaçables par glisser-déposer), Bootstrap pour la mise en forme, ainsi que jQuery et Popper.js. Nous avons volontairement renoncé à un framework JavaScript comme Vue.js : personne dans l'équipe n'en avait jamais utilisé, et pour certains Laravel était déjà une découverte. Il ne valait pas la peine de compliquer le projet.

Organisation du travail. Nous avons suivi l'avancement avec Jira, sous forme de cartes à faire, en cours et terminées, avec les tâches réparties entre les membres, et échangé sur un serveur Discord. Le code était versionné sur GitHub : une branche par membre, fusionnée dans la branche principale une fois la tâche terminée. Nous avons appris à ne pas donner de tâches trop larges, mais à les découper, et à résoudre les conflits quand deux personnes modifient les mêmes fichiers.

Difficultés. La conception de la base de données demandait de trancher des subtilités sur les liens entre les tables, par exemple savoir si un enseignant est rattaché à une formation ou s'il est indépendant. Le départ d'un membre du groupe a aussi augmenté la charge des autres, et nous avons dû nous réorganiser pour livrer.

Résultat. Le projet a été livré dans les temps : une interface interactive et simple à utiliser, adossée à une base de données relationnelle assez riche pour gérer les informations d'un établissement.

Les documents et captures de ce projet restent la propriété d'Aix-Marseille Université.

Stack : Laravel, PHP, MySQL, FullCalendar, Bootstrap, jQuery, JavaScript, GitHub, Jira.

Galerie (8 médias)

Découvrir plus

Projets similaires

youtu.be
Blokus Online – Jeu de stratégie multijoueur 100 % web

2025

Blokus Online

Jeu de stratégie multijoueur 100 % web

Rôle Application Web

  • Spring
  • Spring Boot
  • Spring MVC
  • Thymeleaf
  • et 6 autres technologies
démo sur demande
Gestion des réunions entre alternants et tuteurs

2024

Gestion des réunions entre alternants et tuteurs

Application web de gestion des réunions de suivi entre les alternants, leurs tuteurs et les professeurs…

Rôle Système de Gestion

  • Spring
  • Spring Boot
  • Laravel
  • PHP