SAÉ S2 · JavaFX / Java

D6 · Outil d’Appariement

Une application de bureau développée en JavaFX qui apparie des étudiants en calculant des scores d'affinité basés sur des critères pondérés et personnalisables.

D6 · Outil d'Appariement d'Étudiants

Matching

Algorithme calculant un score d’affinité pondéré par des profils et critères personnalisés.

Architecture

Pattern MVC, injection de dépendances et vision SOLID pour garder le code lisible.

Qualité

Tests unitaires paramétrés, refactoring constant et vérification des chemins critiques.

Compétences techniques

Dépôt lié à l'informatique github.com/AubinCambier/D6

Soft Skills — illustrés par des situations concrètes

Organisation & rigueur

MVC comme contrat d'équipe

Respecter l'architecture MVC définie collectivement a imposé une discipline : chaque membre savait où écrire quoi. Quand une fonctionnalité déviait de cette structure, je la signalais pour qu'on corrige avant que ça se propage. J'ai appris que l'organisation du code est aussi une forme de communication.

Travail en équipe

Tests comme langage commun

Les tests unitaires paramétrés ont servi de contrat partagé : quand un test passait, tout le monde savait que la fonctionnalité était validée, sans avoir à relire le code de l'autre. Cette approche m'a appris que les tests ne sont pas qu'un outil technique — ils facilitent aussi la coordination.

Communication

Documenter les choix d'architecture

L'algorithme de pondération était complexe à expliquer oralement. J'ai pris l'habitude de documenter le raisonnement (pourquoi ce calcul, quels cas limites) pour que les autres membres puissent le comprendre et l'étendre sans me demander à chaque fois.

Analyse réflexive

Ce que j'ai appris

MVC en pratique

Appliquer le pattern MVC sur un vrai projet m'a montré concrètement pourquoi séparer la logique métier de l'interface simplifie les tests et facilite les modifications. L'algorithme de pondération a pu être testé sans ouvrir JavaFX.

Difficultés rencontrées

Bindings JavaFX & modélisation

Le système de properties et d'observable values de JavaFX n'est pas intuitif au départ — j'ai mis du temps à comprendre comment synchroniser l'état du modèle avec l'affichage sans écrire de code spaghetti. La modélisation d'un algorithme de matching flexible a aussi demandé plusieurs itérations.

Ce que je ferais différemment

Tests d'abord

Je commencerais par écrire les tests de l'algorithme de matching avant de toucher à l'interface (approche TDD). Cela m'aurait évité de découvrir des cas limites tardivement. Je passerais aussi plus de temps à définir le modèle de données avant de concevoir la vue.