#Démarrer avec Grails
####Références :
- Grails.org,
- Quick start,
- Grails documentation,
- Download last version,
- Plugin twitter-bootstrap,
- template utilisé pour cette application,
- Heroku.
##Prérequis :
- avoir installé la dernière version de grails (testé avec la version 2.2.0) :
grails -version
, - avoir installé la dernière version du SDK Heroku :
heroku --version
.
##Etape 1 : créer le squelette de l'application
- générer le template d'application Grails
grails create-app wishlist
- créer un répository git
cd wishlist ; git init .
- importer le projet dans un IDE
- démarrer l'application
grails run-app
##Etape 2 : sécuriser l'application
- ajouter le plugin spring-security-core et générer les classes nécessaires (documentation)
- ajouter deux rôles ("ROLE_USER" et "ROLE_ADMIN")
- ajouter deux utilisateurs, un administrateur et un utilisateur classique, affectés du bon rôle dans la classe Bootstrap.groovy
- ajouter un contrôleur Home qui retourne la chaîne "Hello world" dans sa méthode index
- modifier le routage pour que la racine de l'application tombe sur la méthode et le contrôleur précédent
- faire en sorte que seuls les utilisateurs authentifiés peuvent accéder au contrôleur Home (rôle IS_AUTHENTICATED_FULLY)
- modifier la chaîne retournée par la méthode index du contrôleur Home pour qu'elle retourne "Hello $username". Nécessite l'injection du service :
def springSecurityService
##Etape 3 : customizer les vues avec le plugin twitter-bootstrap
- ajouter le plugin twitter-bootstrap (documentation)
- modifier le contrôleur Home et sa méthode index pour qu'elle retourne la vue racine index.gsp :
render view: "../index.gsp"
- modifier la vue index.gsp pour qu'elle affiche le texte "Hello $username", en utilisant la taglib
<g:message code="..."/>
. Il faut passer le modèle à la vue. Un petit nettoyage de la vue et du template par défaut est le bienvenue (pour supprimer le contenu généré par défaut par Grails). - customiser le template en rajoutant une barre de navigation et un menu à gauche (cf. template choisi)
##Etape 4 : administrer les utilisateurs
- générer le contrôleur de gestion des utilisateurs et le modifier pour qu'à l'ajout d'un utilisateur, un rôle lui soit attribué (sinon, il ne sera pas possible de se logger avec) :
grails create-controller com.pvardanega.User
- faites en sorte que les vues soient générées automatiquement au runtime (scaffolding dynamique)
- modifier le menu pour pouvoir lister et, à minima, ajouter un utilisateur
- customizer les vues de l’utilisateurs (scaffolding statique)
##Etape 5 : gérer sa liste de cadeaux
- créer la classe du modèle Product définit par un titre et un prix ; et la relier à un utilisateur unique (documentation)
- générer le contrôleur et les vues correspondants :
grails generate-all com.pvardanega.Product
- customizer les vues pour régler le problème d'affichage dans les listes
##Etape 6 : déployer l'application dans le cloud
- si vous n'avez pas de compte, en créer sur Heroku
- se connecter au service d'heroku en ligne de commande
heroku login
- créer une application heroku en ligne de commande 'heroku create applicationName`
- pusher le code sur heroku
git push heroku master
- tester votre application
http://applicationName.herokuapp.com
#Des questions? Lever la main !