Projets personnels
Une sélection de projets réalisés sur mon temps libre pour explorer de nouvelles technologies.
Un mod Fabric léger qui étend le système d'artisanat vanilla de Minecraft en permettant à plusieurs variantes de pierre d'être utilisées de manière interchangeable dans les recettes. Le mod est configurable et conçu pour fonctionner côté serveur. Plus de 30 000 téléchargements sur Modrinth.
- Mise en œuvre de la modification dynamique des recettes afin d'ajouter à l'exécution les blocs configurés aux recettes contenant des variantes de pierre concassée.
- Extension automatique aux recettes de mods tiers grâce au même mécanisme, sans nécessiter de prise en charge explicite de chaque mod ou recette.
- Développement d'un système de configuration basé sur JSON permettant de définir les variantes de blocs prises en charge.
- Développement et maintenance d'un mod Fabric côté serveur, compatible avec plusieurs versions de Minecraft.
Application Full Stack de gestion de tâches développée dans le cadre d'un test technique pour un poste de développeur JavaScript / NestJS / React. Le projet met l'accent sur une organisation claire du code, la séparation des responsabilités et une architecture frontend/backend typée.
- Développement de fonctionnalités de gestion des tâches et catégories, incluant les opérations CRUD, le changement de statut, la recherche et le filtrage par catégorie.
- Conception d'un backend NestJS structuré par domaines, avec modules, contrôleurs, services, DTOs et accès aux données via Prisma.
- Mise en place d'une validation des données côté serveur et d'une gestion cohérente des erreurs avec class-validator et ValidationPipe.
- Développement d'une interface React composée de composants réutilisables et de hooks dédiés à la récupération et à la gestion des données.
- Optimisation de l'accès aux données avec les relations Prisma afin d'éviter les requêtes N+1 lors de la récupération des tâches et de leurs catégories.
EIP - Dognostic/DiagnoPets
Projet étudiantPlateforme web et mobile de prise de rendez-vous vétérinaires, développée dans le cadre du projet étudiant EIP.
- Conception et développement d'une plateforme web et mobile de prise de rendez-vous vétérinaires.
- Développement de fonctionnalités métier : dossier médical, historique de prescriptions et messagerie entre vétérinaires et propriétaires.
- Participation à la conception technique, au développement des API et à l'évolution de la plateforme.
DiagnoPets v2
Projet personnelRéécriture en solo de DiagnoPets, avec les mêmes fonctionnalités que le projet étudiant original, mais un backend Java/Spring Boot et un nouveau design, pour explorer de nouvelles technologies.
Ce portfolio personnel, conçu en collaboration avec Claude Code, est un site bilingue français/anglais entièrement statique (SSG), sans backend, déployé sur Vercel.
- Architecture React Router v7 en mode Framework avec prérendu statique de chaque route (fr/en pour chaque page), sans serveur ni fonctions serverless.
- Système de routage par langue avec génération dynamique des balises meta, canonical et hreflang, données structurées JSON-LD et sitemap XML pour le référencement.
- Durcissement de la sécurité via des en-têtes HTTP stricts (Content-Security-Policy, HSTS, X-Frame-Options) configurés au niveau du déploiement.
- Parseur de texte enrichi développé en interne (gras, italique, liens, imbrication) sous forme de fonction récursive unique, sans dépendance externe de rendu markdown.
JuiceBot est un bot Discord pour JUICE, une communauté de speedrun Minecraft dédiée aux extensions de catégories non officielles. Il gère les FAQ et les seeds recommandées par catégorie et par salon, automatise la modération et la détection de spam, et propose des commandes utilitaires telles que les sondages et les calculs de probabilités.
- Développement basé sur le système de cogs de discord.py, avec chaque domaine fonctionnel (gestion des catégories, modération, sondages, statistiques) implémenté comme une extension chargée indépendamment. Mise en place d'un modèle de données basé sur JSON, avec des classes Category et Seed personnalisées, entièrement administrable via des commandes slash sans accès manuel aux fichiers.
- Automatisation de la modération : détection heuristique du spam et des selfbots avec révocation automatique des rôles, mise en place d'un canal honeypot et journalisation groupée et dédupliquée des messages supprimés dans un canal d'audit dédié.
- Gestion de la configuration via les variables d'environnement avec python-dotenv, permettant de séparer les secrets et la configuration de déploiement du code source. Hébergement sur Discloud, avec un gestionnaire de logs personnalisé assurant la rotation quotidienne des fichiers selon la date UTC, indépendamment de la durée d'exécution du processus.