|  Tous les exercices utilisent Bootstrap pour la partie CSS. ember install ember-bootstrap  | 
	
 pour les fonts : ember install ember-font-awesome  | 
	
Ajouter le plugin ember-local-storage pour stocker des models côté client :
ember install ember-local-storage
Créer l'adapter :
ember g adapter application
Définir le namespace contact-app, clé sous laquelle les données seront enregistrées dans le local storage
import Adapter from 'ember-local-storage/adapters/local';
export default Adapter.extend({
  modelNamespace: 'contact-app'
});
Créer le serializer :
ember g serializer application
export { default } from 'ember-local-storage/serializers/serializer';
| Model | contact | 
|---|---|
|  nom string  | 
	|
|  prenom string  | 
	|
|  email string  | 
	
Affiche la liste des contacts
| Classe | Contacts | 
|---|---|
|  datas Tableau des contacts provenant du store  | 
	|
|  contacts Liste filtrée des contacts non supprimés (* sur filtre et datas.@each.isDeleted)  | 
	|
|  deleteds Liste des contacts supprimés  | 
	|
|  deletedsCount Nombre de contacts supprimés  | 
	|
| Route handler |  model() Retourne une instance de Contacts initialisée avec le datas des contacts provenant du store  | 
	
| actions |  delete(contact) Supprime le contact (sans sauvegarde dans le store)  | 
	
|  cancelDeletion(deleteds) Annule la suppression de tous les contacts supprimés  | 
	
Affiche le formulaire d'ajout d'un contact
| Route handler |  model() Retourne l'instance de contact à modifier  | 
	
|---|---|
| actions |  addContact(datas) Ajoute un nouveau contact dans le store  | 
	
Affiche le formulaire de modification d'un contact
| Route handler |  model() Retourne l'instance de contact à modifier  | 
	
|---|---|
| actions |  updateContact(datas) Modifie le contact dans le store  |