AP Mission 1 — BTS SIO SLAM 2025 Terminé

Gestion des congés

Application C# de gestion des demandes de congés pour les praticiens et le service RH. Workflow de validation complet, formulaires distincts par rôle et dashboard temps réel.

C#.NETMySQL

Captures d'écran

Page de connexion
Page de connexion — authentification par rôle
Formulaire RH
Interface RH — saisie et gestion des demandes
Formulaire praticien
Interface praticien — soumission d'une demande de congé

Démonstrations

Demande de congé
Workflow — soumission d'une demande de congé
Validation des congés
Workflow — validation / refus par le responsable RH

Ce que fait l'application

Authentification par rôle
Connexion distincte pour les praticiens et le service RH — accès aux interfaces adaptées à chaque profil.
Demande de congé
Les praticiens soumettent leurs demandes via un formulaire structuré — type de congé, dates, motif.
Validation RH
Le service RH visualise toutes les demandes en attente et les valide ou refuse en un clic avec commentaire.
Dashboard temps réel
Vue d'ensemble des congés en cours, à venir et en attente de validation — mise à jour instantanée.
Historique des demandes
Consultation de l'historique complet par praticien — statut, dates, motifs et décisions RH.

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

C#Langage principal
.NETFramework
MySQLBase de données
Git / GitHubVersioning

Ce que j'ai appris

Gestion des rôles et des vues
Adapter dynamiquement l'interface selon le rôle connecté (praticien vs RH) sans dupliquer le code a nécessité une architecture claire avec contrôleurs distincts et chargement conditionnel des vues.
Workflow de validation
Modéliser les transitions d'état d'une demande (en attente → validée / refusée) en base de données et s'assurer de la cohérence des mises à jour en temps réel a été un point clé du projet.
Découverte de C# et .NET
Premier projet C# conséquent — prise en main du typage fort, des namespaces et de la connexion à MySQL via ADO.NET. La rigueur du langage m'a appris à structurer mon code plus soigneusement.