← Retour aux projets
Projet BTS SIO SLAM

Développement en équipe · 2025 — 2026

Application Web Ministage

Gestion et réservation de mini-stages inter-établissements

Conception d'une application web sécurisée avec Symfony communicant avec l'API ministage

Dans le cadre d'un projet BTS, j'ai participé au développement d'une application permettant aux élèves de réserver des sessions de mini-stages dans leur établissement ou dans un autre, tout en offrant un espace de gestion pour les professeurs et les responsables. Le projet met l'accent sur la sécurité, l'interopérabilité et la simplicité d'utilisation. L'architecture suit les conventions REST et les bonnes pratiques Symfony, avec une convention de nommage stricte sur les branches et pull requests.

Environnement Technique

PHPSymfonyAPI PlatformPostgreSQLDBeaverPHPStormTwig

Fonctionnalités principales

  • Réservation de mini-stages en ligne
  • Consultation des établissements disponibles
  • Gestion des réservations par les enseignants
  • Réservation dans un établissement
  • Consommation d'une API sécurisée exposant les données

Sécurité & gestion des rôles
JWT · Voters Symfony · RBAC

Après authentification, l'utilisateur est redirigé vers une interface spécifique selon son rôle. Une vue dynamique est chargée automatiquement en fonction du rôle récupéré depuis l'API. Chaque rôle possède son interface dédiée, rendant l'application évolutive et facilitant l'ajout de nouveaux rôles ou fonctionnalités.

ROLE_ADMINAccès total à l'application
ROLE_PROGRAMMATIONGestion des ministages
ROLE_RESERVATIONGestion des réservations
ROLE_CONSULTATIONLecture seule

Fonctionnement technique
Flux d'authentification & redirection

Le front Symfony agit comme un client de l'API. Après la soumission du formulaire de connexion, le token JWT est stocké en session côté serveur et utilisé pour chaque appel API subséquent.

1

Authentification via API

Envoi des identifiants à l'endpoint /api/login

2

Stockage du token en session

JWT conservé côté serveur dans la session Symfony

3

Récupération du rôle

Appel à /api/user/{email} pour obtenir le rôle utilisateur

4

Redirection dynamique

Chargement du template Twig adapté au rôle

Sécurité

Authentification JWT

Tokens signés avec expiration configurable

Gestion des rôles

Accès contrôlé par rôle côté front Symfony

Session sécurisée

Token stocké en session serveur, jamais exposé au client

API protégée

Endpoints sécurisés par expressions Symfony / API Platform

Tableau Kanban GitHub du projetTableau Kanban GitHub du projetTableau Kanban GitHub du projetTableau Kanban GitHub du projet

Travail en mode projet
Méthode Agile / Scrum

Le projet a été développé suivant la méthode Agile et Scrum

Tableau Kanban GitHub du projet