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
Projets & Travaux
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.
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.
⚠️ [À compléter : La correction du code est en cours, les bonnes pratiques seront appliquées lors du refactoring.]
→ 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.
→ Identification des failles de sécurité (injections SQL, XSS) dans le rapport d'audit. Corrections en cours de mise en œuvre.
→ Proposition d'un nouveau schéma de BD normalisé. Normalisation en cours avec mise à jour du code dépendant de l'ancienne structure.
→ Démarche méthodique : analyse manuelle + outils automatisés, puis rédaction d'un rapport structuré avec problèmes et solutions.
⚠️ [À compléter : N'étant qu'au début du projet, il est difficile de justifier correctement la répartition du travail.]
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.
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.
→ 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.
→ Protection des formulaires contre les injections XSS et les attaques CSRF via des tokens de session et l'échappement des entrées utilisateur.
→ Architecture client-serveur avec requêtes HTTP, gestion des sessions PHP pour l'authentification et le suivi des utilisateurs connectés.
→ 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.
→ 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).
→ Répartition des tâches au sein du groupe, communication régulière via des réunions informelles et des comptes-rendus d'avancement.
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.
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.
→ 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.
→ Le site a été déployé en ligne et rendu accessible publiquement avant la fin de la nuit.
→ É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.
→ Communication intense et efficace sous pression. Répartition des rôles (front-end, contenu, design) et coordination pour respecter la deadline.
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.
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.
→ 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.
→ 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.
→ Les règles officielles Pokémon simplifiées ont été formalisées en spécifications avant l'implémentation.
→ Travail en binôme avec répartition des tâches (moteur de jeu / interface graphique) et pair programming sur les parties critiques.
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.
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.
→ 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.