Ma photo

Vincent REYMOND


Développeur PHP/Symfony

Portfolio


Projets et réalisations. Codes source et exemples sont en lien.

Votre nouveau client, une agence immobilière de montagne, a besoin d'un site web pour présenter les chalets qu'elle vend. Vous allez utiliser Wordpress pour créer son site !

Énoncé

Votre nouveau client est une agence immobilière d'une station de montagne. Celle-ci n'a toujours pas de site web et possède pourtant de nombreux chalets luxueux à vendre !

Cette agence souhaite pouvoir mettre à jour son site régulièrement toute seule sans faire appel à nouveau à vous. Vous décidez donc de leur créer un site sous Wordpress qu'ils pourront modifier et d'utiliser un thème adapté à leurs besoins.

Compétences développées

  • Sélectionner un thème Wordpress adapté aux besoins du client
  • Adapter un thème Wordpress pour respecter les exigences du client
  • Mise en plasse d’un SEO (Search Engine Optimization).
  • Rédiger une documentation à l'intention d'utilisateurs non spécialistes

Voir le descriptif complet. Voir le résultat Documentation

Etape 1 : installer Wordpress et un thème

L'agence "Chalets et caviar" à Courchevel vous a missionné pour créer son site web. Elle possède une quinzaine de chalets de luxe à la vente ainsi que d'autres chalets de luxe en location.

Elle souhaite un design "clair, épuré, qui respire la ligne luxe de l'agence". A vous de le trouver, de l'installer et de le configurer. Vous devez personnaliser le thème de telle sorte que l'agence se sente "chez elle" et qu'on n'ait pas l'impression d'avoir un thème en anglais à moitié intégré. Veillez donc tout particulièrement aux détails.

Pour la démo, vous complèterez le site en ajoutant :

  • Une dizaine de chalets à vendre et à louer (séparez bien les deux)
  • Une page de contact avec les coordonnées et un formulaire de contact fonctionnel

Le site web sera mis en ligne pour que l'agence puisse le consulter et le valider.

Fichiers à fournir :

  • Code HTML / CSS / PHP complet du site web Wordpress
  • URL du site hébergé en ligne

Etape 2 : configuration des accès et documentation

L'agence est satisfaite de votre première proposition mais elle vous demande : "comment fait-on pour ajouter, modifier et supprimer des chalets ?!". Vous allez devoir créer :

  • Un compte administrateur pour la directrice de l'agence
  • Un compte administrateur pour le développeur (vous) s'il n'existe pas déjà
  • Des comptes éditeurs pour les 2 autres collaborateurs de l'agence

Une fois ces comptes créés, vous fournirez les instructions de mise à jour à l'agence sur un document PDF de 3 à 5 pages maximum. Tenez compte du fait qu'ils ne sont pas experts en création de sites web : détaillez donc bien les étapes et n'hésitez pas à ajouter des captures d'écran pour expliquer votre propos. Ils doivent comprendre sur la base de ce document comment mettre à jour leur site web.

Fichiers à fournir :

Documentation PDF d'utilisation du site Wordpress pour l'agence

Intégrer une équipe déjà en place, modifier une application déjà existante, cibler et respecter les conventions déjà mises en place.

Compétences développées

  • Effectuer un audit de qualité du code & de performance de l'application.
  • Implémentation de tests automatisés (fonctionnels et unitaires) avec PHPUnit et travis.
  • Organiser son code pour garantir la lisibilité et la maintenabilité.
  • Utilisation du framework Symfony 4.
  • Vertionner le projet via Git.
  • Etablir et tenir des délais.

Voir le descriptif complet. Voir le résultat Voir le code source

Énoncé

 

 

Contexte

Vous venez d’intégrer une startup dont le coeur de métier est une application permettant de gérer ses tâches quotidiennes. L’entreprise vient tout juste d’être montée, et l’application a dû être développée à toute vitesse pour permettre de montrer à de potentiels investisseurs que le concept est viable (on parle de Minimum Viable Product ou MVP). Le choix du développeur précédent a été d’utiliser le framework PHP Symfony, un framework que vous commencez à bien connaître 

 !

 

Bonne nouvelle ! ToDo & Co a enfin réussi à lever des fonds pour permettre le développement de l’entreprise et surtout de l’application.

Votre rôle ici est donc d’améliorer la qualité de l’application. La qualité est un concept qui englobe bon nombre de sujets : on parle souvent de qualité de code, mais il y a également la qualité perçue par l’utilisateur de l’application ou encore la qualité perçue par les collaborateurs de l’entreprise et enfin la qualité que vous percevez lorsqu’il vous faut travailler sur le projet.

Ainsi, pour ce dernier projet de spécialisation, vous êtes dans la peau d’un développeur expérimenté en charge des tâches suivantes :

  • l’implémentation de nouvelles fonctionnalités ;
  • la correction de quelques anomalies ;
  • et l’implémentation de tests automatisés.

Il vous est également demandé d’analyser le projet grâce à des outils vous permettant d’avoir une vision d’ensemble de la qualité du code et des différents axes de performance de l’application.

Il ne vous est pas demandé de corriger les points remontés par l’audit de qualité de code et de performance. Ceci dit, si le temps vous le permet, ToDo & Co sera ravi que vous réduisiez la dette technique de cette application.

Description du besoin

Corrections d'anomalies

Un tâche doit être attachée à un utilisateur

Actuellement, lorsqu’une tâche est créée, celle-ci n’est pas rattachée à un utilisateur. Il vous est demandé d’apporter les corrections nécessaires afin qu’automatiquement, à la sauvegarde de la tâche, l’utilisateur actuellement authentifié soit rattaché à la tâche nouvellement créée.

Lors de la modification de la tâche, l’auteur ne peut pas être modifié.

Pour les tâches déjà créées, il faut qu’elles soient rattachées à un utilisateur “anonyme”.

Choisir un rôle pour un utilisateur

Lors de la création d’un utilisateur, il doit être possible de choisir un rôle pour celui-ci. Les rôles listés sont les suivants :

  • rôle utilisateur (ROLE_USER)
  • rôle administrateur (ROLE_ADMIN)

Lors de la modification d’un utilisateur, il est également possible de changer le rôle d’un utilisateur.

Implémentation de nouvelles fonctionnalités

Autorisation

Seuls les utilisateurs ayant le rôle  rôle administrateur (ROLE_ADMIN) doivent pouvoir accéder aux pages de gestion des utilisateurs.

 Les tâches ne peuvent être supprimées que par les utilisateurs ayant créé les tâches en questions.

 Les tâches rattachées à l’utilisateur “anonyme” ne peuvent être supprimées uniquement par les utilisateurs ayant le rôle administrateur (ROLE_ADMIN).

Implémentation de tests automatisés

Il vous est demandé d’implémenter les tests automatisés (test unitaires et fonctionnels) nécessaires à assurer que le fonctionnement de l’application est bien en adéquation avec les demandes.

 Ces tests doivent être implémentés avec PHPUnit, vous pouvez aussi utiliser Behat pour la partie fonctionnelle.

 Vous prévoirez des données de tests afin de pouvoir prouver le fonctionnement dans les cas explicités dans ce document.

 Il vous est demandé de fournir un rapport de couverture de code au terme du projet. Il faut que le taux de couverture soit supérieur à 70%.

Documentation technique

Il vous est demandé de produire une documentation expliquant comment l’implémentation de l'authentification a été faite. Cette documentation se destine aux prochains développeurs juniors qui rejoindront l’équipe dans quelques semaines. Dans cette documentation, il doit être possible pour un débutant avec le framework Symfony de :

  • comprendre quel(s) fichier(s) il faut modifier et pourquoi ;
  • comment s’opère l’authentification ;
  • et où sont stockés les utilisateurs.

Si d’autres informations vous semble importantes d’être mentionnées, n’hésitez pas à le faire.

 Par ailleurs, vous ouvrez la marche en matière de collaboration à plusieurs sur ce projet. Il vous ai également demandé de produire un document expliquant comment devront procéder tous les développeurs souhaitant apporter des modifications au projet.

Ce document devra aussi détailler le processus de qualité à utiliser ainsi que les règles à respecter.

Audit de qualité du code & performance de l'application

Les fondateurs souhaitent pérenniser le développement de l’application, ceci dit, il souhaite dans un premier temps faire un état des lieux de la dette technique de l’application.

Au terme de votre travail effectué sur l’application il vous est demandé de produire un audit de code sur les deux axes suivants : la qualité de code et la performance.

Bien évidemment, il est fortement conseillé que vous utilisiez des outils vous permettant d’avoir des métriques pour appuyer vos propos.

Concernant l’audit de performances, l’usage de Blackfire est obligatoire, ce dernier vous permettra de produire des analyses précises et adaptées aux évolutions futures du projet.

Développer le site communautaire pour snowboaders de Jimmy Sweat. En utilisant le framework Symfony pour développer cette application web.

Compétences développées

  • Développer une application proposant les fonctionnalités attendues par le client
  • Gérer une base de données MySQL ou NoSQL avec Doctrine
  • Organiser son code pour garantir la lisibilité et la maintenabilité
  • Prendre en main le moteur de templating Twig
  • Respecter les bonnes pratiques de développement en vigueur
  • Sélectionner les langages de programmation adaptés pour le développement de l’application
  • Utilisation du framework Symfony 3

Voir le descriptif complet. Voir le résultat Voir le code source

Contexte

Jimmy Sweat est un entrepreneur ambitieux passionné de snowboard. Son objectif est la création d'un site collaboratif pour faire connaitre ce sport auprès du grand public et aider à l'apprentissage des figures (tricks).

Il souhaite capitaliser sur du contenu apporté par les internautes afin de développer un contenu riche et suscitant l’intérêt des utilisateurs du site. Par la suite, Jimmy souhaite développer un business de mise en relation avec les marques de snowboard grâce au trafic que le contenu aura généré.

Pour ce projet, nous allons nous concentrer sur la création technique du site pour Jimmy.

 

Votre mission : créer un site communautaire pour apprendre les figures de snowboard

 

Description du besoin

Vous êtes chargé de développer le site répondant aux besoins deJimmy. vous devez ainsi implémenter les fonctionnalités suivantes : 

  • un annuaire des figures de snowboard. Vous pouvez vous inspirer de la liste des figures sur Wikipédia. Contentez-vous d'intégrer 10 figures, le reste sera saisi par les internautes,
  • la gestion des figures (création, modification, consultation),
  • un espace de discussion commun à toutes les figures.

Pour implémenter ces fonctionnalités, vous devez créer les pages suivantes :

  • la page d’accueil où figurera la liste des figures 
  • la page de création d'une nouvelle figure
  • la page de modification d'une figure
  • la page de présentation d’une figure (contenant l’espace de discussion commun autour d’une figure).

L’ensemble des spécifications détaillées pour les pages à développer est accessible ici : Spécifications détaillées.