Conquest on Rails
Première itération
Création du projet et mise en place d’une page d’accueil. Implémentation de l’inscription, de la connexion et la déconnexion.
- Utilisation de la commande rails new avec son option pour utiliser MySQL.
- Découverte de Bundler et du Gemfile, explication sur les contraintes de versions telles que ~> 3.1.0.rc.
- Ajout de la gem Haml et installation via bundle install.
- Lancement du serveur avec rails server et accès via le navigateur.
- Découverte de database.yml et création de la base de données via rake db:create.
- Mise en place d’une page d’accueil
- Suppression du fichier public/index.html et test dans le navigateur.
- Définition d’une route pour la page d’accueil.
- Implémentation de l’action home et de la vue application/home.html.haml.
- Découverte du fichier application/layout.html.erb. Conversion en Haml.
- Mise en place du système d’inscription
- Génération du modèle User via rails generate model.
- Explication sur les migrations.
- Définition des validateurs et implémentation de la solution has_secure_password.
- Définition des routes vers les actions du contrôleur users. Explication sur les ressources et utilisation de rakes routes.
- Création du contrôleur users et de son action create.
- Ajout d’un formulaire d’inscription à la page d’accueil, utilisation des helpers.
- Implémentation de la méthode create du contrôleur avec connexion automatique.
- Création d’un helper pour les messages d’erreurs.
- Définition de la locale par défaut et traduction des messages d’erreurs.
- Mise en place du système de connexion
- Création d’un contrôleur sessions et de son action create et destroy.
- Création des routes appropriées.
- Création du formulaire sur la page d’accueil.
- Implémentation de l’action create.
- Création de la méthode current_user.
- Création du bouton déconnexion.
- Implémentation de l’action destroy.
- Améliration de la homepage pour ne plus afficher les formulaires pour un utilisateur connecté.
- Afficher un lien vers le dashboard du joueur et implémenter la route.
- Découverte de SCSS.
- Découverte du fichier manifest et de l’assets pipeline.
Deuxième itération
Le but de cette itération est de se retrouver dans une partie jouable, c'est à dire une partie avec cinq joueurs.
- Préparer le système de parties
- Créer un modèle Game.
- Créer un modèle Participation pour lier un joueur à une partie.
- Créer un modèle Territory et créer les territoires de base.
- Créer un modèle Ownership et l'associer à une partie, une participation et un territoire.
- Ajouter au Dashboard un lien pour rejoindre une nouvelle partie.
- Implémenter cette action de recherche d'une partie en manque de joueurs
- Si une partie est trouvée, le joueur y est inscrit et la partie démarre.
- Si aucune partie ne correspond, en créer une à la volée et y inscrire le joueur.
- Implémenter la méthode de démarrage d'une partie
- Allouer les territoires aléatoirement
- Affecter un régiment sur chaque territoire et le déduire de la réserve du joueur.
- Notifier par e-mail les joueurs d'une partie qui démarre à l'exception du dernier inscrit.
- Créer l'action d'affichage de la partie et créer sa vue.
- Implémenter cette vue pour dessiner la carte et les posessions.
- Affiche un compteur des régiments à déployer.
- Permettre le déploiement des troupes dans un temps donné
- Rendre la carte interactive lors de la phase de déploiement.
- ...
- Déterminer aléatoirement l'ordre de jeu.
- ...