Projet 2

Projet M2L — Plateforme intranet collaborateurs

PHP orienté objet HTML5 CSS3 MySQL Git GitHub Jira Visual Studio Code

Contexte

Au sein du pôle Technique de la MDL, une structure de taille moyenne en pleine expansion, la direction a souhaité créer une plateforme accessible en interne pour faciliter et encourager les relations entre collaborateurs, suite au recrutement récent de nombreux nouveaux membres d'équipe.

En tant que développeur, j'ai eu la charge du développement complet du frontend de la plateforme ainsi qu'une partie backend pour la gestion des requêtes côté serveur, en partant de la modélisation de la base de données.

Ma contribution personnelle

  • Page de connexion — gestion de sessions sécurisées en PHP orienté objet
  • Page d'accueil — affichage aléatoire d'un collaborateur à chaque connexion
  • Annuaire collaborateurs — listing sous forme de cards avec recherche multicritères et pagination (6 par page)
  • Modification de profil — mise à jour des informations personnelles et du mot de passe
  • Interface d'administration CRUD — création, modification et suppression de collaborateurs, réservée aux admins
  • Modélisation BDD — MCD, modèle logique et schéma relationnel réalisés avant le développement

Réalisations & Liens

Page d'inscription
Inscription
Page de connexion
Connexion
Page d'accueil
Accueil
Annuaire collaborateurs
Annuaire
Page de profil
Profil
MCD du projet
MCD
Cahier des charges GitHub
Détails techniques

Organisation & méthode

Projet conduit en cycle en V avec validation à chaque phase :

  • Conception — analyse du cahier des charges, MCD, schéma logique → validation
  • Maquettage — interfaces dessinées et validées avant développement
  • Développement — page par page : connexion → accueil → annuaire → profil → CRUD admin
  • Tests & recette — tests fonctionnels par module, validation W3C, sécurité des accès

Suivi des tâches via Jira : tickets par fonctionnalité, priorisation et avancement.

Difficultés rencontrées & solutions

1. Sécurisation des accès — Après déconnexion, les pages restaient accessibles par URL directe. Résolu par une vérification de session en début de chaque page PHP avec redirection automatique.

2. Sécurisation complète des formulaires — J'ai anticipé deux risques dès la conception : les injections SQL (résolues avec des requêtes PDO préparées) et les attaques CSRF (résolues avec un token CSRF sur tous les formulaires POST). L'accès aux pages admin est contrôlé par des fichiers guards dédiés (auth_check.php, admin_check.php) inclus en tête de chaque page protégée.

3. Filtre combiné dynamique — La recherche nom + catégorie simultanée nécessitait une clause WHERE construite conditionnellement côté PHP avant exécution.

Tests réalisés

  • Connexion / déconnexion — session créée, détruite, accès direct aux pages protégées bloqué
  • Filtre de recherche — cas nominaux et cas limites (champ vide, aucun résultat)
  • CRUD administration — création, modification, suppression avec vérification de cohérence en base
  • Validation W3C — 0 erreur sur toutes les pages (captures dans la galerie)

Maquettes du projet

Naviguez dans les écrans