En bref

Développement Web en PHP d'une plateforme de partage de photos

  • Conception de la base de données
  • Développement applicatif sur framework PHP (CakePHP en V1 ; Laravel en V2)
  • Optimisation des images pour améliorer le chargement

Version 1 sous CakePHP

Ce projet a été réalisé lors de mon stage de BTS SIO. Le choix du framework s'était porté naturellement vers CakePHP qui avait été étudié en cours.

L'application Web permet aux administrateurs de créer des albums, de télécharger leurs photos et de choisir quels les utilisateurs à accès aux albums.

Les photos sont classées selon trois groupes : tout public, public ou privé.

Un visiteur peut accéder aux photos tout public. Seul un utilisateur connecté peut accéder au photo public. Pour finir, seul les utilisateurs autorisé à accéder à l'album peuvent visualiser les photos privés.

Cette gestion permet de respecter le droit à l'image.

Version 2 sous Laravel

Après plusieurs années de bon et loyaux services, j'ai décidé de refondre totalement l'application en utilisant cette fois-ci le framework Laravel.

Au-delà de la forte expérience acquise sur ce framework, il me semble proposer une plus grande liberté et des fonctionnalités plus avancées que CakePHP.

Si les fonctionnalités reste inchangées, les années d'utilisation ont permis de voir les actions peu ergonomiques. C'est pourquoi le design du back-office a été entièrement repensé pour améliorer l'UX côté administrateur.

L'envoi des photos à également été révolutionné. Auparavant, il fallait compresser les photos avec un logiciel avant de les envoyer, ce qui était vite fastidieux. Cela demandait de la formation pour que chaque administrateur utilise le même logiciel et la même configuration pour compresser les photos. C'est maintenant du passé !

En combinant la librairie Dropzone.JS avec une librairie de compression d'image, les photos sont automatiquement redimensionnées au bon format avant d'être envoyé sur le serveur. La praticité est vraiment augmentée grâce à cet update car le gain de temps est immense.