TP n° 3 - Début du projet
Table des matières
1. Objectif de cette séquence
Cette séquence vise à initier les éléments techniques nécessaire au projet,
afin de vous guider correctement au démarrage.
La première étape du projet sera le choix du domaine fonctionnel.
Ensuite, vous débuterez la conception du modèle de données.
2. Cadrage du périmètre du projet
Dans les prochaines semaines, vous allez réaliser une application permettant
d’appliquer ce qui est vu en cours.
Elle devrait être représentative des fonctionnalités d’un site Web d’e-commerce classique, en partant
des spécifications du cahier des charges que nous vous fournissons.
Nous présentons ici une description succincte, qui sera précisée dans le cahier des charges que vous allez lire tout à l’heure.
2.1. Domaine fonctionnel et fonctionnalités attendues
L’application va permettre d’héberger une communauté de personnes souhaitant partager en ligne, et dans le monde physique, des objets en leur possession.
Le site permettra de gérer pour soi-même un « inventaire » d’objets, et de publier une partie de cet inventaire, sous forme de « galerie » publique accessible aux autres membres.
L’idée est de savoir gérer une collection, que ce soit pour les amateurs de vinyls, de cartes à collectionner, de guitares, de BD, ou d’outils de bricolage, … et c’est vous qui allez choisir pour quelle communauté vous souhaitez réaliser un site.
Vous pourriez réaliser un site générique hébergeant à la fois des communautés de bricolage et de collectionneurs de cartes à collectionner japonaises… mais ce serait hors-sujet : le but est de spécifier un seul domaine, pour en examiner les spécificités et rendre votre projet original, plus motivant à réaliser. Choisissez un hobby (légal), et faites-en votre site spécifique !
Le site permettra de rédiger des fiches pour les éléments de l’inventaire.
Le site hébergera, sur la même instance de l’application (dans la même base de données), l’ensemble des inventaires de différents membres.
On imagine que, dans le futur (au-delà de ce projet), ce site permettrait de gérer des prêts entre participants, par exemple.
Pour l’instant, on découvre le développement avec Symfony, et nous allons nous limiter à quelques fonctions basiques.
L’objectif du projet va être assez réduit pour permettre d’apprendre, et d’appréhender la difficulté à développer même des choses assez rudimentaires.
3. TODO Processus de mise en œuvre
Votre projet sera réalisé en partant d’un squelette d’application
Symfony standard, en intégrant petit-à-petit des fonctionnalités
correspondant à ce qui sera abordé dans chaque séquence de travaux
pratiques, et en s’inspirant du code de l’application fil-rouge ToDo
qui vous est fourni à chaque séance.
Nous allons vous fournir un guide de mise en œuvre permettant de mesurer votre avancement dans le projet, pour que chacun puisse avancer à son rythme, tout en mesurant son avancement par rapport aux éléments requis pour l’évaluation.
Le but est de travailler régulièrement, et pas plus que ce qui est annoncé dans la fiche programme, et surtout pas d’attendre le « rush » final en fin de module.
Notez que le cahier des charges fourni décrit un spectre fonctionnel large. Aussi il ne sera pas réaliste de vouloir mettre en œuvre chacune des fonctionnalités avec un niveau de qualité « prêt pour la production ». Le but n’est sûrement pas d’obtenir un résultat de qualité professionnelle, mais de pratiquer sur un cas concret, au fur et à mesure des apprentissages.
Chaque projet sera original et propre à son auteur, à la fois sur le domaine fonctionnel choisi, mais aussi dans le nommage des classes et le reste du code.
Toute tentative de plagiat fera l’objet d’une sanction d’ordre disciplinaire.
4. TODO Cahier des charges
Consultez maintenant le cahier des charges détaillé, ici : Cahier des charges d’un site Web pour une communauté partageant un inventaire d’objets
N’hésitez pas à demander des clarifications à vos encadrants présents.
5. Démarrage du projet Symfony
L’objectif de cette séance de TP est de procéder aux premières étapes de la réalisation du projet :
- choix de votre domaine fonctionnel
- création du projet Symfony
- mise en place du modèle de données initial
5.1. Pensez à sauvegarder votre travail à chaque étape
Nous vous incitons à vous appuyer sur Git pour gérer le code de votre projet, et sauvegarder votre travail, très régulièrement : pendant la séance, à chaque transition d’une étape à une autre au fur et à mesure de la réalisation.
Utiliser Git offre deux avantages principaux :
- permettre de récupérer un état précédent opérationnel, en cas de fausse manipulation (retour aux commits de la séquence précédente)
- permettre de synchroniser le travail avec une autre machine pour travailler si besoin dans un autre environnement (panne de votre ordinateur, etc.).
Cela nécessite bien-entendu une connaissance de Git (normalement acquise dans une majorité de projets de première année). Il n’est pas forcément trop tard pour vous y mettre pour de bon, même si cet apprentissage est supposé maîtrisé. Cependant, vous n’êtes pas obligés d’en passer par là, car ce n’est pas un acquis d’apprentissage du présent cours.
Pour mémoire, quelques commandes utiles :
git add
git commit
Nous ne détaillons pas l’utilisation de Git dans les supports de TP actuels, pour ne pas alourdir. Vous vous référerez aux supports du projet de première année, par exemple.
5.2. TODO Démarrage du projet
Il est temps de passer au démarrage proprement dit de votre projet.
Pour faire tout celà, ouvrez le Guide de réalisation du projet, qui vous guidera à partir de maintenant, pour la réalisation du projet en autonomie.