← Retour aux compétences

Développement d’une application web de gestion de collection de jeux de société

  • Projet : Ce projet, réalisé en groupe de six, avait pour objectif de transformer un fichier Excel désorganisé contenant près de 17 000 jeux de société en une application web fonctionnelle permettant de consulter, rechercher et gérer cet inventaire via une base de données relationnelle.
  • Période : Projet réalisé en 2ème année de BUT Informatique, novembre 2024.
  • Lien : Voir le projet sur GitHub

Ce que j’ai fait

Je me suis concentrée sur la partie développement, à la fois front-end et back-end. J’ai conçu et développé des pages dynamiques en PHP pour afficher les jeux, gérer les filtres de recherche et permettre les modifications côté utilisateur. J’ai également implémenté la logique de requêtes SQL pour interagir avec la base de données, en veillant à optimiser les performances et à sécuriser les entrées. J’ai travaillé sur la mise en place de la pagination, la gestion des droits d’accès selon les rôles utilisateurs, ainsi que sur des fonctionnalités spécifiques comme l’ajout ou la modification d’un jeu dans l’inventaire.

Ce que j’ai appris

Ce projet m’a permis de renforcer mes compétences en développement web, notamment dans la manière de structurer un projet en respectant le modèle MVC. J’ai appris concrètement comment séparer les responsabilités entre le modèle (la base de données et sa logique d’accès), la vue (l’affichage des données à l’utilisateur) et le contrôleur (le traitement des actions et la communication entre le modèle et la vue). Cela m’a permis de développer un code plus propre, plus maintenable et évolutif. J’ai également gagné en autonomie dans la gestion d’un projet web, en précision dans le débogage, et en efficacité dans l’écriture de requêtes SQL complexes.

Difficultés rencontrées et solutions mises en place

L’une des principales difficultés a été l’intégration entre le front-end et le back-end, notamment pour le traitement des formulaires et l’affichage dynamique des résultats. Pour y faire face, j’ai mis en place des tests manuels réguliers, ajouté des messages d’erreur explicites côté serveur, et retravaillé le traitement des données pour assurer leur cohérence tout au long du cycle de vie de l’application. J’ai également amélioré l’organisation du code en respectant le découpage MVC, ce qui a facilité la maintenance collective du projet.

Compétence : PHP JavaScript HTML CSS Niveau : ★★★★☆

Surpriz’Me application mobile de recommandation

  • Projet : Application mobile qui recommande des contenus personnalisés (films, jeux de société, activités) pour aider l’utilisateur à trouver quoi faire quand il s’ennuie. Tout fonctionne en local, sans compte et sans connexion internet.
  • Période : Semestre 5 (3ème année de BUT Informatique), durée : 6 mois, projet en groupe de 5.
  • Lien : Voir le projet sur GitHub

Ce que j’ai fait

J’ai participé à la conception et au développement de l’application mobile (Flutter / Dart), de la définition des fonctionnalités jusqu’à l’implémentation de la recommandation. L’utilisateur complète un profil (temps disponible, préférences, solo/groupe, goûts…), puis l’application propose un Top 3, des suggestions complémentaires et un bouton « Surpriz’Me » (recommandation aléatoire) pour sortir des habitudes.

Nous avons mis en place 3 logiques de recommandation (une par catégorie : activités, films, jeux) et des mécanismes de personnalisation progressive à partir des interactions (likes / dislikes), tout en gardant un fonctionnement hors connexion avec stockage local.

Ce que j’ai appris

Ce projet m’a permis d’aller au-delà du simple “ça marche”. J’ai appris à transformer des préférences humaines en données exploitables, à comparer des approches de recommandation et à mesurer l’impact des choix techniques sur l’expérience.

J’ai aussi découvert des contraintes propres au mobile : fluidité de l’interface, temps de réponse, mémoire et consommation de ressources, surtout dans une application qui fonctionne en local.

Difficultés rencontrées et solutions mises en place

La difficulté principale a été de gérer 3 algorithmes de recommandation différents tout en gardant une expérience utilisateur cohérente. Comme nous n’avions pas tous les mêmes goûts, il fallait trouver un juste équilibre dans les critères et dans l’interface (formulaire de profil, affichage du Top 3, suggestions, bouton « Surpriz’Me ») pour que l’app reste agréable et “logique” pour n’importe quel utilisateur.

Pour résoudre ces difficultés, nous avons amélioré la communication entre les membres du groupe, défini plus clairement le fonctionnement des différentes recommandations et réalisé plusieurs tests avec différents profils utilisateurs afin d’ajuster progressivement les résultats et améliorer l’expérience proposée dans l’application.

Compétence : Mobile Flutter / Dart Recommandation Local Travail en équipe Niveau : ★★★★☆

SAÉ S6, développement d’une application de génération de diagrammes de Voronoï

  • Projet : SAÉ du semestre 6 : réalisation d’une interface permettant de générer et visualiser un diagramme de Voronoï à partir d’un fichier contenant une liste de points. L’utilisateur importe le fichier de coordonnées et l’interface affiche automatiquement le diagramme correspondant.
  • Période : Semestre 6, durée : ~1 mois, projet en groupe de 6.
  • Lien : GitHub (SAÉ Voronoï)

Ce que j’ai fait

Nous avons créé une interface graphique en Python avec Pygame (bibliothque python) pour afficher le resultat du diagramme. J’ai participé au chargement des données (coordonnées), à leur stockage et à la transformation des points en “germes” (position + représentation graphique).

Pour générer le diagramme, nous avons utilisé une méthode basée sur le calcul de distance : pour chaque pixel de l’écran, on calcule la distance avec tous les points présents, puis on attribue la couleur du point le plus proche.

Les points sont stockés dans un fichier JSON pour faciliter les modifications, et nous avons ajouté une fonctionnalité d’export en image PNG pour améliorer la visualisation.

Ce que j’ai appris

Cette SAÉ m’a appris à partir d’un sujet mathématique/théorique pour aller vers une visualisation concrète. J’ai aussi appris à manipuler des données externes (fichier JSON) et à construire une interface simple mais fonctionnelle.

Nous avons également comparé nos implémentations avec des solutions proposées par des IA (logique de calcul, pistes d’optimisation), ce qui m’a permis de mieux comprendre les choix techniques derrière chaque approche.

Difficultés rencontrées et solutions mises en place

L’une des principales difficultés a été la partie algorithmique : il fallait comprendre les concepts mathématiques derrière le diagramme et avancer progressivement. Une autre limite importante était la performance : le calcul “pixel par pixel” rendait l’exécution assez lente.

Nous avons testé régulièrement sur différents jeux de points, ajusté au fur et à mesure, et utilisé la comparaison avec des IA pour explorer d’autres manières de résoudre le problème quand nécessaire.

Compétence : Python Pygame JSON Calcul de distance Export PNG IA Niveau : ★★★★☆

Calcul de trajets en Python

  • Projet : Développement d’un programme permettant de calculer et optimiser des itinéraires entre plusieurs villes en binôme.
  • Période : Projet réalisé en 1ère année de BUT Informatique, octobre 2023.

Ce que j’ai fait

J’ai développé des fonctions complexes en Python pour gérer le calcul des distances et l’optimisation des parcours, tout en assurant la gestion des entrées utilisateurs. J’ai également documenté le code de manière claire et réalisé des tests unitaires pour garantir la fiabilité du programme. Ce projet s’est fait en binôme, ce qui a impliqué une collaboration étroite et une communication régulière.

Ce que j’ai appris

Cette expérience m’a permis de renforcer mes compétences en programmation Python, notamment dans la conception d’algorithmes complexes. J’ai amélioré ma capacité à structurer un code clair et efficace, ainsi qu’à documenter et tester rigoureusement mes solutions techniques. Le travail en binôme a développé mes aptitudes à collaborer, communiquer et organiser le travail en équipe.

Difficultés rencontrées et solutions mises en place

La principale difficulté a été de gérer la complexité des fonctions d’optimisation et d’assurer leur fiabilité. Pour y faire face, j’ai adopté une méthode de développement avec des tests fréquents et des validations régulières, ce qui a permis d’améliorer la robustesse du code et ma méthodologie de travail.

Compétence : Python Niveau : ★★★☆☆