Projet - My Avatar Symfony

Sujet

Ce projet se fera en quadrinôme ou en trinôme et s’intéressera au développement d’une application de gestion d’avatar.

L’objectif est de développer un site web classique en “server-side rendering” (qui gère à la fois la partie client et serveur) en utilisant Symfony et Twig (TD1, TD2 et TD3 de Symfony).

L’application à produire sera une imitation du service Gravatar.

Ce service permet (en vous inscrivant) d’associer votre adresse mail à une photo de profil. Ainsi, à partir de votre adresse, les différents sites web et applications peuvent charger votre image de profil depuis ce service sans avoir besoin de stocker cette image de leur côté et sans demander à l’utilisateur d’uploader cette image. Il suffit de faire une simple requête à Gravatar. Certains sites comme Bitbucket utilisent ce mécanisme.

Ainsi, n’importe quelle application manipulant l’adresse email d’un utilisateur peut facilement d’aller charger une image depuis Gravatar.

Pour obtenir l’image de profil Gravatar d’un utilisateur, on prend son adresse mail, on la hache avec l’algorithme SHA256 et on fait appel à l’URL : https://www.gravatar.com/avatar/hash

Par exemple, si on prend l’email d’exemple suivant : gravatar.exemple.iut.mtp@gmail.com.

On la hache avec SHA256 (par exemple avec ce site) : 045e5536817c1efc94745289b76b39e72197e7f1ad9a5a11b72622b1dbbded8c.

Et on obtient l’adresse de l’image de profil via ce lien : https://www.gravatar.com/avatar/045e5536817c1efc94745289b76b39e72197e7f1ad9a5a11b72622b1dbbded8c

L’idée du projet MyAvatar est donc de faire la même chose.

Cahier des charges

Voici les détails du service qui devra être développé :

Contraintes techniques

Aide et pistes

Pour vous aider dans la réalisation du projet, voici quelques pistes :

Hébergement

L’application doit être hébergée dans le dossier public_html d’un des membres de l’équipe (sur le serveur de l’IUT).

Il faudra installer les sources (sans le dossier vendor) dans le dossier (avec FTP par exemple), puis exécuter un composer install à la racine de l’application (qui installera les différentes dépendances). Vous pouvez utiliser SSH pour cela, en vous connectant à votre session sur le serveur de l’IUT.

Il ne faut pas oublier de donner au serveur de l’IUT les droits d’écriture sur vos projets contenu dans public_html (une fois le projet installé). Par exemple, depuis SSH :

setfacl -R -m u:www-data:r-w-x ~/public_html
setfacl -R -m d:u:www-data:r-w-x ~/public_html

Une fois installé, il faudra bien vérifier que votre application est bien accessible depuis l’extérieur de l’iut sur l’adresse : http://webinfo.iutmontp.univ-montp2.fr/~login_depot/sous-adresse-du-projet.

Concernant la base de données, vous pourrez utiliser la base de données MySQL ou PostgreSQL d’un des membres de l’équipe, mises à dispositions par l’IUT.

Vous trouverez toutes les informations à propos de la connexion en FTP et SSH et aux bases de données sur l’intranet du département informatique.

Rendu

La deadline du projet est le dimanche 26 octobre 2025, 23h59.

Le projet sera à rendre sur Moodle à cette adresse. Un seul membre du groupe projet dépose une archive zip nommée selon le format : NomPrenomMembre1-NomPrenomMembre2-NomPrenomMembre3-NomPrenomMembre4.zip.

Cette archive devra contenir :

Déroulement du projet et accompagnement

Globalement, la plupart des fonctionnalités sont réalisables à partir des connaissances que vous avez acquises pendant ce cours, mais il faudra parfois aller chercher un peu plus loin. Par exemple, nous n’avons pas fait de fonctionnalité “modifier le profil” sur le site de base de The Feed, mais vous devriez être capable d’implémenter une telle fonctionnalité sur votre projet. Aussi, il faudra vous référer à la section “Aide et pistes” de cette page pour pouvoir implémenter certaines fonctionnalités.

Il faudra aussi faire des recherches et vous documenter par vous-même. Du côté de Symfony, vous pouvez notamment consulter la documentation officielle, mais vous trouverez également de l’aide sur de nombreux forums. Vous pouvez même chatter directement sur le Slack de Symfony.

Bien entendu, vous pouvez utiliser des outils de gestion de projet appropriés (Trello par exemple ?).

Il faudra aussi utiliser et bien organiser un dépôt git. N’oubliez pas que vous pouvez utiliser le Gitlab du département.

N’hésitez pas à poser des questions à votre enseignant chargé de TD et à montrer votre avancement ! Bon projet.