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 !
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.
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 :
Le site web sera mis en ligne pour que l'agence puisse le consulter et le valider.
Fichiers à fournir :
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 :
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.
Voir le descriptif complet. Voir le résultat Voir le code source
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 :
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.
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 :
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%.
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 :
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.
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.
Voir le descriptif complet. Voir le résultat Voir le code source
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
Vous êtes chargé de développer le site répondant aux besoins deJimmy. vous devez ainsi implémenter les fonctionnalités suivantes :
Pour implémenter ces fonctionnalités, vous devez créer les pages suivantes :
L’ensemble des spécifications détaillées pour les pages à développer est accessible ici : Spécifications détaillées.