Terminé
Python (Flask)
SQLite
JavaScript / JSON
HTML / CSS
Matthieu FARANDJIS
Alexandre GROSDIDIER
Laïn KOWALIK
Ce projet a été réalisé dans le cadre du Workshop "Architecture logicielle Web" en E3 IMAC. L'objectif principal de ce module était de construire un site web dynamique centré sur le développement Back-end, en utilisant le framework Python Flask et un moteur de base de données (SQLite).
Le cahier des charges initial proposait de créer une application pour adopter des animaux au physique difficile ("Krikri d'amour"). Notre équipe a choisi d'adapter ce sujet pour concevoir PokéMoche : un répertoire interactif de Pokémon considérés comme moches.
L'application s'articule autour d'une architecture MVC (Modèle-Vue-Contrôleur) avec une communication Front/Back assurée par une API REST via des requêtes JavaScript (fetch) échangeant des données au format JSON. Voici les principales fonctionnalités implémentées :
Système de comptes : Inscription, connexion et déconnexion des utilisateurs.
Gestion des PokéMoches (CRUD) : Les utilisateurs peuvent consulter la liste des Pokémon, en ajouter de nouveaux, modifier leurs informations ou les supprimer.
Interactions : Possibilité de laisser des commentaires sur la fiche d'un Pokémon et de les supprimer.
Nous avons également mis en place une gestion intelligente de la base de données : le fichier database.py détecte la branche Git active et crée un environnement de base de données isolé pour chaque développeur, évitant ainsi les conflits lors de la phase de développement.
La phase finale du workshop exigeait de soumettre notre version fonctionnelle (V1) à des Intelligences Artificielles pour obtenir une revue de code professionnelle et appliquer des améliorations pour la version finale (V2).
Nous avons utilisé Copilot et Gemini. Copilot a fourni un audit très détaillé et sévère, soulevant notamment des points critiques sur notre sécurité : mots de passe hachés en SHA-256 sans sel, clé secrète Flask codée en dur, et un manque de vérification des autorisations sur certaines routes REST. Nous avons écouté l'IA pour renforcer la validation des données et la gestion des erreurs.
Gemini voulait manipuler les images du niveau du JavaScript ce qui nous a surpris, nous lui avons deamndé de le faire au niveau du modèle, il a parfaitement compris et parfaitement généré le code. Il a également pris le soin de vérifier l'existence du fichier image au préalable avant d'effectuer une quelconque manipulation.
Nous sommes passés par Gemini en ligne (je ne pouvais lui transmettre que 10 fichiers (j'ai principalement partagé les codes pythons et le sujet du workshop)), il était détâcher de CLion.
Dans une démarche de transparence, je précise que la rédaction et la structure HTML de cet article ont été générées avec l'aide de l'intelligence artificielle Gemini. À partir de mon rapport de projet, des consignes du workshop et des retours d'audit technique, l'IA m'a aidé à synthétiser les informations pour mon portfolio web. Tout le travail décrit (code, architecture, soutenance) a bien été réalisé par moi et mes camarades.