Portfolio d'apprentissage

Bilan de mes apprentissages en BUT2 Informatique, parcours A « Réalisation d'applications : conception, développement, validation ». Ce portfolio présente mes compétences acquises à travers les projets réalisés, en les associant aux apprentissages critiques (AC) et composantes essentielles (CE) de niveau 2 du référentiel.

Référentiel de Compétences

C1
Réaliser un développement d'application
Apprentissages critiques
AC1 — Élaborer et implémenter les spécifications fonctionnelles et non fonctionnelles à partir des exigences
AC2 — Appliquer des principes d'accessibilité et d'ergonomie
AC3 — Adopter de bonnes pratiques de conception et de programmation
AC4 — Vérifier et valider la qualité de l'application par les tests
Composantes essentielles
CE1 — En respectant les besoins décrits par le client
CE2 — En appliquant les principes algorithmiques
CE3 — En veillant à la qualité du code et à sa documentation
CE4 — En choisissant les ressources techniques appropriées
C2
Optimiser des applications
Apprentissages critiques
AC1 — Choisir des structures de données complexes adaptées au problème
AC2 — Utiliser des techniques algorithmiques adaptées pour des problèmes complexes
AC3 — Comprendre les enjeux et moyens de sécurisation des données et du code
AC4 — Évaluer l'impact environnemental et sociétal des solutions proposées
Composantes essentielles
CE1 — En formalisant et modélisant des situations complexes
CE2 — En recensant les algorithmes et les structures de données usuels
CE3 — En s'appuyant sur des schémas de raisonnement
CE4 — En justifiant les choix et validant les résultats
C3
Administrer des systèmes informatiques communicants complexes
Apprentissages critiques
AC1 — Concevoir et développer des applications communicantes
AC2 — Utiliser des serveurs et des services réseaux virtualisés
AC3 — Sécuriser les services et données d'un système
Composantes essentielles
CE1 — En sécurisant le système d'information
CE2 — En appliquant les normes en vigueur et les bonnes pratiques architecturales et de sécurité
CE3 — En offrant une qualité de service optimale
CE4 — En assurant la continuité d'activité
C4
Gérer des données de l'information
Apprentissages critiques
AC1 — Optimiser les modèles de données de l'entreprise
AC2 — Assurer la confidentialité des données (intégrité et sécurité)
AC3 — Organiser la restitution de données à travers la programmation et la visualisation
AC4 — Manipuler des données hétérogènes
Composantes essentielles
CE1 — En respectant les réglementations sur la vie privée et la protection des données personnelles
CE2 — En respectant les enjeux économiques, sociétaux et écologiques du stockage de données
CE3 — En s'appuyant sur des bases mathématiques
CE4 — En assurant la cohérence et la qualité
C5
Conduire un projet
Apprentissages critiques
AC1 — Identifier les processus présents dans une organisation en vue d'améliorer les SI
AC2 — Formaliser les besoins du client et de l'utilisateur
AC3 — Identifier les critères de faisabilité d'un projet informatique
AC4 — Définir et mettre en œuvre une démarche de suivi de projet
Composantes essentielles
CE1 — En communiquant efficacement avec les différents acteurs d'un projet
CE2 — En respectant les règles juridiques et les normes en vigueur
CE3 — En sensibilisant à une gestion éthique, responsable, durable et interculturelle
CE4 — En adoptant une démarche proactive, créative et critique
C6
Collaborer au sein d'une équipe informatique
Apprentissages critiques
AC1 — Comprendre la diversité, la structure et la dimension de l'informatique dans une organisation
AC2 — Appliquer une démarche pour intégrer une équipe informatique au sein d'une organisation
AC3 — Mobiliser les compétences interpersonnelles pour intégrer une équipe informatique
AC4 — Rendre compte de son activité professionnelle
Composantes essentielles
CE1 — En inscrivant sa démarche au sein d'une équipe pluridisciplinaire
CE2 — En accompagnant la mise en œuvre des évolutions informatiques
CE3 — En veillant au respect des contraintes juridiques
CE4 — En développant une communication efficace et collaborative

Projets & Travaux

🍜
Noodle — Audit & Refactoring
2026 (Semestre 4)
📋 Contexte

Projet d'analyse, d'audit et de refactoring complet d'une application existante ("Noodle") présentant un code source de mauvaise qualité et une base de données mal conçue. L'objectif était d'identifier tous les problèmes (sécurité, performance, architecture, qualité de code) puis de proposer et implémenter des solutions pour rendre l'application sûre, maintenable et optimisée.

📅 Dates
2026 (Semestre 4)
⏱️ Durée
~3 mois
🎯 Objectifs
Auditer une application existante, identifier les failles de sécurité, corriger l'architecture et optimiser la base de données
⚠️ Contraintes
Code legacy à analyser sans documentation, base de données non normalisée, failles de sécurité à corriger, respect des bonnes pratiques OWASP
👥 Équipe
Robin CERISIER, Louis ROUBAUD, Sophian ALAMI CHENTOUFI
🚀 Démarche & Implication

Analyse approfondie du code source et de la base de données. Rédaction d'un rapport d'audit complet. Implémentation des corrections : refactoring du code, normalisation de la BD, correction des failles de sécurité (injection SQL, XSS, CSRF). Travail méthodique d'analyse puis de correction.

Implication
Autonomie
🎓 Apprentissages Critiques associés
C1 · AC3 — Bonnes pratiques de conception appliquées au refactoringC1 · AC4 — Validation de la qualité par les tests après correction

⚠️ [À compléter : La correction du code est en cours, les bonnes pratiques seront appliquées lors du refactoring.]

C2 · AC1 — Choix de structures de données adaptéesC2 · AC3 — Sécurisation des données et du codeC2 · AC4 — Évaluation de l'impact des solutions

Analyse du code via des extensions de qualité (linters, analyseurs statiques) pour identifier les failles et mauvaises pratiques. Rapport détaillé avec solutions proposées.

C3 · AC3 — Sécurisation des services et données du système

Identification des failles de sécurité (injections SQL, XSS) dans le rapport d'audit. Corrections en cours de mise en œuvre.

C4 · AC1 — Optimisation du modèle de données (normalisation)C4 · AC2 — Confidentialité et intégrité des donnéesC4 · AC4 — Manipulation de données hétérogènes

Proposition d'un nouveau schéma de BD normalisé. Normalisation en cours avec mise à jour du code dépendant de l'ancienne structure.

C5 · AC1 — Identification des processus pour améliorer le SIC5 · AC4 — Démarche structurée d'audit et de suivi

Démarche méthodique : analyse manuelle + outils automatisés, puis rédaction d'un rapport structuré avec problèmes et solutions.

C6 · AC1 — Compréhension de l'organisation informatiqueC6 · AC4 — Rapport d'activité professionnelle

⚠️ [À compléter : N'étant qu'au début du projet, il est difficile de justifier correctement la répartition du travail.]

🧩 Composantes Essentielles associées
C1 · CE3 — Qualité du code et documentationC1 · CE4 — Ressources techniques appropriéesC2 · CE1 — Formalisation des problèmes complexesC2 · CE4 — Justification des choix et validationC3 · CE1 — Sécurisation du SIC3 · CE2 — Normes et bonnes pratiques de sécuritéC4 · CE1 — Respect RGPDC4 · CE2 — Enjeux du stockage de donnéesC4 · CE4 — Cohérence et qualité des donnéesC5 · CE4 — Démarche proactive et critiqueC6 · CE2 — Accompagnement des évolutionsC6 · CE4 — Communication collaborative
📚 Éléments de cours associés
Qualité de développementSécurité informatiqueBase de données avancéesArchitecture logicielleGestion de projet
AuditRefactoringSécuritéSQLOWASPTests
🗳️
Demos — Site de Vote en Ligne
2025 - 2026 (Semestre 3)
📋 Contexte

Conception et développement d'une application web complète de vote en ligne dans le cadre du BUT Informatique. L'objectif principal était de réaliser un système permettant aux utilisateurs de créer des questions/sondages, d'y répondre et de consulter les résultats, le tout sécurisé par une authentification robuste.

📅 Dates
2025 - 2026
⏱️ Durée
~5 mois
🎯 Objectifs
Créer une plateforme de vote fonctionnelle, sécurisée et ergonomique en architecture MVC
⚠️ Contraintes
PHP natif (sans framework), MySQL, respect du modèle MVC strict, gestion de sessions, sécurité des données
👥 Équipe
Robin CERISIER, Louis ROUBAUD, Sophian ALAMI CHENTOUFI
🚀 Démarche & Implication

Rôle actif dans le développement back-end (contrôleurs, modèles) et front-end (vues, filtres, UX). Prise d'initiative sur la gestion des utilisateurs, les filtres de recherche et la sécurisation des formulaires. Travail en autonomie croissante au fil du projet.

Implication
Autonomie
🎓 Apprentissages Critiques associés
C1 · AC1 — Spécifications fonctionnelles à partir du cahier des chargesC1 · AC2 — Interface accessible et responsiveC1 · AC3 — Architecture MVC propre et modulaireC1 · AC4 — Tests unitaires PHPUnit

L'architecture MVC a été mise en place dès le début pour séparer la logique métier (modèles), le routage (contrôleurs) et l'affichage (vues). Les tests unitaires PHPUnit ont permis de valider le bon fonctionnement des modèles et contrôleurs.

C2 · AC3 — Sécurisation des entrées et protection XSS/CSRF

Protection des formulaires contre les injections XSS et les attaques CSRF via des tokens de session et l'échappement des entrées utilisateur.

C3 · AC1 — Application web communicante client-serveurC3 · AC3 — Sécurisation des sessions et données

Architecture client-serveur avec requêtes HTTP, gestion des sessions PHP pour l'authentification et le suivi des utilisateurs connectés.

C4 · AC1 — Modélisation relationnelle optimiséeC4 · AC2 — Hashage des mots de passe, contrôle d'accèsC4 · AC3 — Restitution et visualisation des résultats de vote

Base de données MySQL avec modèle relationnel normalisé. Mots de passe hashés avec bcrypt. Les résultats de vote sont restitués via des vues PHP avec filtrage et tri.

C5 · AC1 — Analyse des processus de voteC5 · AC2 — Formalisation des besoins utilisateursC5 · AC3 — Critères de faisabilité évaluésC5 · AC4 — Suivi avec Git, issues, répartition des tâches

Les besoins ont été formalisés à partir d'un cahier des charges. Le suivi de projet a été réalisé avec Gitlab (branches, issues, pull requests).

C6 · AC1 — Compréhension de l'organisation du projetC6 · AC2 — Intégration progressive dans l'équipeC6 · AC3 — Communication et entraideC6 · AC4 — Comptes-rendus réguliers d'avancement

Répartition des tâches au sein du groupe, communication régulière via des réunions informelles et des comptes-rendus d'avancement.

🧩 Composantes Essentielles associées
C1 · CE1 — Besoins client respectésC1 · CE2 — Algorithmes de tri/filtreC1 · CE3 — Code documenté et versionnéC1 · CE4 — Stack PHP/MySQL choisieC4 · CE1 — Respect RGPD sur les données de voteC4 · CE4 — Cohérence BD assuréeC5 · CE1 — Communication équipe efficaceC5 · CE4 — Démarche proactiveC6 · CE1 — Équipe pluridisciplinaireC6 · CE4 — Communication collaborative
📚 Éléments de cours associés
Développement Web (PHP/MVC)Base de données relationnellesQualité de développementGestion de projetIHM / Ergonomie
PHPMVCMySQLHTML/CSSPHPUnitGit
🌙
Nuit de l'Info 2024
5-6 Décembre 2024
📋 Contexte

Participation à la Nuit de l'Info, défi national rassemblant des étudiants de toute la France pour une nuit blanche de programmation. L'édition 2024 portait sur l'ONG Race for Water. L'objectif : développer une application web complète du coucher au lever du soleil en répondant à un sujet dévoilé à la dernière minute.

📅 Dates
5-6 Décembre 2024
⏱️ Durée
1 nuit (~12 heures)
🎯 Objectifs
Développer un site web fonctionnel et responsive pour sensibiliser à la cause de Race for Water
⚠️ Contraintes
Temps très limité, sujet inconnu à l'avance, travail d'équipe sous pression, déploiement en ligne obligatoire
👥 Équipe
Nathan TRIOLEYRE, Nathan DUHAUT, Clément LAVIGNE, Rayhan SAOUAB
🚀 Démarche & Implication

Rôle principal sur le développement Front-end et l'intégration. Organisation de la répartition des tâches. Gestion du stress et communication efficace dans l'urgence. Priorisation des fonctionnalités essentielles sous contrainte de temps.

Implication
Autonomie
🎓 Apprentissages Critiques associés
C1 · AC1 — Implémentation rapide des spécificationsC1 · AC2 — Interface responsive et intuitiveC1 · AC3 — Bonnes pratiques malgré la contrainte de temps

Le sujet étant dévoilé au dernier moment, les spécifications ont été traduites en code en temps réel. L'interface a été conçue responsive dès le départ avec HTML5/CSS3.

C3 · AC1 — Site web déployé et accessible en ligne

Le site a été déployé en ligne et rendu accessible publiquement avant la fin de la nuit.

C5 · AC3 — Faisabilité évaluée en temps réelC5 · AC4 — Suivi projet avec GitHub sous pression

Évaluation continue de ce qui était réalisable dans le temps imparti. Utilisation de Git/GitHub pour fusionner les contributions de l'équipe sans conflits.

C6 · AC2 — Intégration rapide dans l'équipeC6 · AC3 — Compétences interpersonnelles mobiliséesC6 · AC4 — Bilan de l'expérience et retour d'expérience

Communication intense et efficace sous pression. Répartition des rôles (front-end, contenu, design) et coordination pour respecter la deadline.

🧩 Composantes Essentielles associées
C1 · CE3 — Code organisé avec GitC1 · CE4 — HTML/CSS/JS choisis pour l'efficacitéC5 · CE1 — Communication d'urgence efficaceC5 · CE4 — Créativité et proactivitéC6 · CE1 — Travail pluridisciplinaireC6 · CE4 — Communication collaborative intense
📚 Éléments de cours associés
Développement WebGestion de projetCommunication
HTMLCSSJavaScriptHackathonGit
🎮
Jeu de Cartes Pokémon
2025 (Semestre 2)
📋 Contexte

Développement d'une application de jeu de cartes Pokémon en Java avec interface graphique JavaFX. L'objectif était de recréer l'expérience du jeu de cartes avec un moteur de jeu complet gérant les tours, les types, les dégâts et les conditions de victoire.

📅 Dates
2025 (Semestre 2)
⏱️ Durée
~3 mois
🎯 Objectifs
Implémenter un moteur de jeu respectant les règles Pokémon simplifiées avec une interface graphique interactive
⚠️ Contraintes
Java obligatoire, JavaFX pour l'IHM, POO avancée (héritage, polymorphisme), gestion d'événements
👥 Équipe
Nathan DUHAUT
🚀 Démarche & Implication

Implémentation complète du moteur de jeu et d'une grande partie de l'interface graphique. Autonomie totale sur la conception de l'architecture objet (classes Pokémon, Énergie, Dresseur). Travail approfondi sur le polymorphisme et l'héritage pour gérer les spécificités de chaque type de carte.

Implication
Autonomie
🎓 Apprentissages Critiques associés
C1 · AC1 — Spécifications du jeu implémentéesC1 · AC3 — POO avancée, code structuréC1 · AC4 — Tests du moteur de jeu

Les règles du jeu Pokémon simplifiées ont été traduites en spécifications techniques. L'architecture objet utilise l'héritage (classes Pokémon, Énergie, Dresseur) et le polymorphisme pour gérer les types de cartes. Tests du moteur de jeu pour valider les calculs de dégâts et les conditions de victoire.

C2 · AC1 — Structures de données adaptées (listes, piles)C2 · AC2 — Algorithmes de calcul de dégâts et gestion de tours

Utilisation de listes et piles pour la main des joueurs, la pioche et le plateau. Algorithmes de calcul de dégâts prenant en compte les types (Eau > Feu > Plante, etc.) et la gestion des tours.

C5 · AC2 — Règles du jeu formalisées

Les règles officielles Pokémon simplifiées ont été formalisées en spécifications avant l'implémentation.

C6 · AC3 — Collaboration en binôme

Travail en binôme avec répartition des tâches (moteur de jeu / interface graphique) et pair programming sur les parties critiques.

🧩 Composantes Essentielles associées
C1 · CE2 — Algorithmes de jeuC1 · CE3 — Code documentéC1 · CE4 — Java/JavaFX choisiC2 · CE2 — Structures de données adaptéesC2 · CE3 — Raisonnement logiqueC2 · CE4 — Validation des résultats de jeu
📚 Éléments de cours associés
Développement Objet (Java)IHM / JavaFXAlgorithmique avancéeQualité de développement
JavaJavaFXPOOGame Design
🔐
Site Vitrine Escape Game
2024 (Semestre 1)
📋 Contexte

Premier projet web réalisé en BUT Informatique. Création d'un site vitrine pour un escape game, présentant l'établissement, ses différentes salles et l'ambiance générale afin de donner envie aux visiteurs de réserver. Le site ne comportait pas de système de réservation : il s'agissait d'un exercice fondamental de structuration et de mise en page web.

📅 Dates
2024 (Semestre 1)
⏱️ Durée
~2 mois
🎯 Objectifs
Créer un site vitrine présentant un escape game (salles, ambiance) avec uniquement HTML5 et CSS3
⚠️ Contraintes
Aucun JavaScript autorisé, HTML et CSS purs, site multi-pages avec navigation cohérente
👥 Équipe
Nathan TRIOLEYRE, Rahyan SAOUAB, Sohan PINATEL
🚀 Démarche & Implication

Travail entièrement individuel, de la conception graphique à l'intégration HTML/CSS. Apprentissage autodidacte des sélecteurs CSS avancés, de Flexbox et des transitions pour créer une présentation visuelle soignée. Ce projet fondateur a posé les bases de toutes mes compétences web.

Implication
Autonomie
🎓 Apprentissages Critiques associés
C1 · AC1 — Spécifications fonctionnelles du site vitrineC1 · AC2 — Accessibilité et ergonomie de navigationC1 · AC3 — Code HTML5/CSS3 propre et sémantique

Structure HTML5 sémantique pour présenter les salles d'escape game. Navigation multi-pages claire et ergonomique. CSS3 pur avec Flexbox, transitions et animations pour une présentation visuelle soignée.

🧩 Composantes Essentielles associées
C1 · CE3 — Code structuré et organiséC1 · CE4 — HTML5/CSS3 comme ressources techniques
📚 Éléments de cours associés
Développement Web (HTML/CSS)Introduction à l'informatique
🔗 Traces
HTML5CSS3WebSite Vitrine