AP Mission 2 — BTS SIO SLAM 2025 Terminé

Gestion des salaires

Application web Laravel de gestion des salaires avec dashboard temps réel, calculs automatiques via triggers MySQL, filtres de recherche avancés, statistiques et gestion des rôles utilisateurs.

LaravelPHPMySQLAPI REST

Captures d'écran

Authentification
Page d'authentification — connexion sécurisée
Dashboard accueil
Dashboard — vue d'ensemble des salaires en temps réel
Fiche employé
Fiche employé — détail et historique salarial
Statistiques
Statistiques — graphiques et analyses des données salariales

Démonstrations

Filtres salaires
Filtres avancés — recherche et tri dynamiques
Recalcul automatique
Trigger MySQL — recalcul automatique des salaires

Ce que fait l'application

Authentification & rôles
Système de connexion sécurisé avec gestion de rôles — accès différencié selon le profil utilisateur.
Dashboard temps réel
Vue centralisée des données salariales — indicateurs clés, totaux et alertes mis à jour dynamiquement.
Fiche employé complète
Consultation et modification des informations salariales par employé — historique, primes, retenues.
Calculs automatiques via trigger
Trigger MySQL déclenché à chaque modification — recalcul automatique du salaire net, cotisations et brut.
Filtres & recherche avancée
Filtrage multi-critères en temps réel — par nom, département, tranche salariale ou statut.
Statistiques & graphiques
Visualisation des données salariales — répartition par département, évolution, masse salariale globale.

Schéma complet — GSB_total

evaluation
PKidint
FKpraticien_idint
notedouble
commentairevarchar(255)
type_evaluateurvarchar(10)
date_evaluationdate
userconge
PKidint
FKpraticien_idint
date_debutdate
date_findate
statutenum
commentairetext
date_demandedatetime
congeutilisateur
PKidCongeint
FKidUtilisateurint
etatCongeenum
👁 v_praticiens
Vue — JOIN praticien, calcul anciennete_calculee via TIMESTAMPDIFF. Exposée par l'API REST.
praticien
PKidint
nomvarchar(50)
prenomvarchar(60)
date_embauchedate
ancienneteint
echelonint
adressevarchar(100)
coef_notorietefloat
salairedouble
FKcode_type_praticienvarchar(6)
FKid_villemediumint
usernamevarchar(50)
mdpvarchar(255)
commentairevarchar(255)
conges_restantint
grille_salariale
PKidint
FKcode_type_praticienvarchar(6)
echelonint
anciennete_minint
anciennete_maxint
salairedouble
utilisateur
PKidint
nomvarchar(50)
mdpvarchar(50)
isAdminint
commentairevarchar(250)
type_praticien
PKcodevarchar(6)
libellevarchar(50)
lieuvarchar(70)
typevarchar(1)
ville
PKidmediumint
nomvarchar(45)
code_postalvarchar(255)
communevarchar(3)
code_communevarchar(5)
FKid_departementint
departement
PKidint
codevarchar(3)
nomvarchar(255)
FKid_regiontinyint
region
PKidtinyint
codevarchar(3)
nomvarchar(255)
communevarchar(4)
FKid_ville↺ circ.
Clé primaire (PK) Clé étrangère (FK) Relation FK→PK Vue SQL ↺ region.id_ville → ville (référence circulaire, non tracée)

Technologies utilisées

PHPLangage backend
LaravelFramework MVC
MySQLBDD & triggers
API RESTÉchanges données
Git / GitHubVersioning

Ce que j'ai appris

Triggers MySQL
Concevoir et déboguer des triggers pour automatiser les recalculs salariaux a été la partie la plus technique. Comprendre l'ordre d'exécution et les cas limites m'a demandé de nombreux tests en base.
Filtres dynamiques sans rechargement
Implémenter des filtres réactifs côté frontend communiquant avec l'API REST Laravel a nécessité une bonne gestion des requêtes asynchrones et de la pagination côté serveur.
Architecture MVC avec Laravel
Ce projet m'a permis de consolider la maîtrise du framework Laravel — Eloquent ORM, middlewares d'authentification, ressources API et séparation stricte des responsabilités.