MyAvatar - Service de Gestion d'Avatars Universels

GitHub Voir sur GitHub Lien vers le projet

Contexte

Dans le cadre de la ressource R5.A.05 - Programmation Avancée Web, j'ai développé MyAvatar, une application web inspirée de Gravatar permettant aux utilisateurs d'associer une image de profil à leurs adresses email, accessible universellement via une URL unique générée par hachage SHA256.

Réalisé en équipe de quatre développeurs avec Symfony, ce projet a permis d'approfondir la sécurité web (authentification, gestion sécurisée des fichiers), la validation AJAX en temps réel, et la conception d'API REST. Mon rôle s'est concentré sur le système CRUD des avatars et la gestion des permissions.

Gif project myAvatar

Déroulement du projet

Fonctionnalités Principales

  • Authentification sécurisée avec Symfony Security et hachage bcrypt
  • Validation AJAX en temps réel pour vérifier la disponibilité des identifiants
  • Système CRUD complet pour la gestion des avatars (upload, modification, suppression)
  • Stockage sécurisé des fichiers hors répertoire web avec accès contrôlé par BinaryFileResponse
  • Génération automatique de hachages SHA256 pour chaque email (route publique /avatar/{hash})
  • Support des emails secondaires avec hachages multiples
  • Gestion de la visibilité des profils avec système de permissions (utilisateurs/admins)
  • Interface d'administration et mode maintenance

Défis Techniques

  • Sécurisation du stockage et servir les fichiers via BinaryFileResponse avec contrôle des permissions
  • Gestion des hachages SHA256 multiples avec recalculation automatique lors des modifications
  • API REST avec validation AJAX et debouncing pour optimiser les performances
  • Architecture de permissions à 3 niveaux (anonyme, authentifié, admin) via Symfony voters

Compétences Acquises

  • Maîtrise de Symfony (Security, Forms, Doctrine ORM, Twig)
  • Sécurité web : gestion sécurisée des fichiers, hachage SHA256/bcrypt, prévention OWASP
  • Développement d'API REST avec validation asynchrone
  • Architecture de BDD relationnelle avec Doctrine
  • Travail collaboratif avec Git et déploiement Docker

Conclusion

MyAvatar m'a permis de développer des compétences solides en Symfony et en sécurité web, tout en expérimentant le travail collaboratif en équipe. Le projet, déployé en production et accessible publiquement, démontre ma capacité à concevoir et livrer une application web complète et sécurisée, de la conception à la mise en ligne.

← Projet Précédent Projet Suivant →
Back to top