https://github.com/pebie/avengers
Tout d'abord veillez à bien avoir installer node sur votre machine pour pouvoir utiliser npm.
Utiliser de préférence la console (Teminal sous mac ou GitBash sous Windows)
git clone https://github.com/pebie/avengers.git
cd avengers
Manipulation a faire une seule fois.
Node doit être installer sur votre machine.
npm
doit faire partie de vos variable d'environnment (ce fait automatiquement à l'installation de node)
Aller sur le site de node en cas de problème et/ou contactez mois par mail.
npm install
npm start
Si tout c'est bien déroulé, vous devriez voir apparaître :
> [email protected] start /Users/Pebie/ekino/formation/avengers
> ws
serving at http://localhost:8000
Ce qui signifie que vous pouvez commencer à travailler sur cette url
http://localhost:8000
Pour arrêter le server :
Ctrl + C
Je vous conseil d'ouvrir une fenêtre de console spéciale pour lancer le server.
L'objectif de ce TP sera de dynamiser un template HTML/CSS statique à l'aide d'AngularJS.
Une vidéo explicative est disponible dans le dossier videos
.
Le rendu attendu est un zip de l'ensemble du dossier avengers
.
Pour mener à bien cette mission, vous devrez utiliser par vous même ce que nous avons vu en formation à savoir :
- Les controllers
- Les services (customs et natifs)
- Les directives (customs et natives)
- Le scope
- Les routes (ngRoute)
- Les filtres
- Le data binding
- Les promesses
L'exercice peut être réaliser en 6 grandes steps que je détaillerais dans la partie Step by step.
Il est évident qu'il n'est pas obligatoire d'en respecter l'ordre mais c'est un conseil !
Lors de la correction j'évalurais l'état global de votre application, la qualité du code, de l'organisation du dossier src
et des commentaires !
N'hésitez a tricher* si vous êtes bloquer ou a me contacter dans le temps qu'il vous sera imparti.
*tricher = prendre des raccourcis
La base du projet est un template html index.html
mis en page à l'aide bootstrap.
Les fichiers concernant les frameworks externe ne doivent en aucun cas être modifié. Ils se trouvent dans le dossier vendors
et sont déjà pret à l'emplois dans le projet.
En voici la liste :
<script src="vendors/js/angular.min.js"></script>
<script src="vendors/js/angular-route.min.js"></script>
<link rel="stylesheet" href="vendors/css/bootstrap.min.css"/>
<link rel="stylesheet" href="vendors/css/custom.css"/>
Vous travaillerez dans le dossier src
et organiserez votre projet comme bon vous semble !
Ne partez pas trop vite. Etudiez les différentes partie du template. Organisez vous. N'hésitez pas à prendre un papier et une feuille avant de commencer à vous lancer dans le code !
Si vous êtes impatient de coder c'est une bonne étape pour initialiser Angular dans votre application.
Le but de cet étape et d'isoler des gros fragments de html
dans des templates.
Deux choix s'offre à vous :
-
Création d'un routing à l'aide du module
ngRoute
avec une route http://localhost:8000/#!**/list** et une autre http://localhost:8000/#!**/detail/:id** par exemple. -
Pour les moins témeraires ou dans le cas ou
ngRoute
vous donnerait du fil à retordre, l'isolation du markup à l'aide d'une directive bien connue conviendra très bien
Cet aussi ici que vous devriez créer vos controllers et vos templates html principaux.
Lisez bien la documentation de ngRoute
et de ngView
, les exemples sont parfait !
Cet étape est certainement l'une des plus compliquées. C'est mieux de commencer par celle-ci mais encore une fois ce n'est pas obligatoire !
Cette liste est trop longue et le markup semble repetitif vous ne trouvez pas ? Trouvez un moyen de factoriser encore plus le markup.
Créer un service que vous pourez ensuite injecter dans votre code. Fonctionnalités du service :
- Fournir la liste complète des super héros
- Fournir un seul héro à la fois
- Exposer la donné aux controllers et dynamiser le template à l'aide du scope
A la fin de cette étape Monsieur Trololo devrait avoir disparu et les donnés front devrait correspondre a celle du mocks/heroes.json
Créer une directive vous permettant de dynamiser le status d'un super héros en lui passant un paramètre. Elle sera utilisé au moins 2 fois dans votre application.
La liste des super héro doit pouvoir s'ordonnancer en fonction de trois critères :
- Age
- Nom
- Status
Utiliser les filtres de la manière de votre choix !
Si vous avez choisis la solution ngRoute
lors de l'étape 1, vous devrez faire en sorte que le bouton modifier de chaque héro vous dirige sur la fiche détail correspondant à l'identité du héro.
Si ce n'est pas déja fait, profitez-en pour dynamiser cette page toute moche !
Cette page doit contenir un bouton de retour à la list.
Le status est afficher a côté de la photo sur la fiche détail d'un héro.
Dans la dropdown de la fiche détail vous devez donner la possibilité à l'utilisateur de changer le status du héros. Le status courant ne doit pas pouvoir être sélectionner mais doit apparaïtre dans la liste.
Le status doit se mettre à jour visuellement.
Quand le status est à jour un bloc success
apparaît.
Si vous voulez allez plus loins faites-le ! N'oubliez pas de commenter et de préciser votre but dans un fichier texte.
Bon courage à tous !