Intégration du GanttCalendar

Suite à l’article sur le GanttCalendar, j’ai intégré ce plugin jquery dans une application web en PHP : « ExoPlanet ».

Intégration dans une application

Le plugin est tout à fait fonctionnel. Les évènements sont présentés sur 1 mois, le Gantt au dessus et la liste des évènements sous forme de tableau en dessous.

Le plugin a été intégré en quelques heures ; le paramétrage a été le plus long.

Time Counted Dev : Design & deploy

J’ai un peu de temps pour faire un déploiement complet d’une application en partant du début, avec l’outil qui génère du code PHP.

  • 18h40 : j’ai lancé Eclipse, je vérifie que mon serveur web et MySQL sont toujours en marche : http://localhost/phpmyadmin/index.php
  • 18h41 : je vais sur http://jc.specs.free.fr/ pour designer les entités de mon application (je choisis specs v2 car il est le plus abouti)
  • 18h44 : je crée l’application « Biblo-BD » : une bibliothèque d’albums de BD
  • 18h45 : en attentant que Free.fr réponde, je configure le projet sous Eclipse :
    • vue PHP : projet / nouveau « bibloBD »
    • je reprend le ZIP du template d’application (: fichiers de CodeIgniter, vue de connexion, helper pour les dates SQL et JS+CSS sympatiques) et je décompresse tout ca dans mon répertoire eclipse
    • F5 sous Eclipse pour tout mettre à jour
    • 18h51 : je configure la base de données depuis le fichier « application/config/database » : $db['default']['database'] = « bibliobd »;
  • 18h53 : je repasse dans specs v2 pour définir les entités. Cette étape peut être relativement longue, surtout s’il y a beaucoup d’entités…
  • 19h07 : 4 entités sont créées (plutôt simple, avec des dépendances entre elles) :
    • Album (id, ref externe, dessinateur, scénariste, genre)
    • Auteur (id, nom, prénom, nationalité)
    • Genre (id, libellé)
    • Utilisateur (id, login, mot de passe) — juste pour se connecter…
  • 19h09 : je crée la base de données en local avec phpMyAdmin : « bibliobd » (avec tous les paramètres par défaut)
  • 19h10 : je génère le XML des entités (fichiers à télécharger), en créant un répertoire « sources » et j’y colle les 4 fichiers (+ un F5 dans Eclipse)
  • 19h12 : je jette un oeil sur les fichiers XML et je vérifie que la coloration du formatage XML est propre
  • 19h13 : je configure le générateur : j’ouvre le fichier « theme.cfg » pour changer quelques valeurs :
    • « theme=InternetDreams » : ce sera le thème visuel de l’application
    • « outDirFor_Classes=/home/julien/workspace/biblioBD/application/ » : le répertoire de destination des fichiers générés
    • « database=bibliobd »
    • « generate=all » : génère tous les types de fichiers
  • 19h16 : je lance la commande qui génère les fichiers :
    ./generate.py ../biblioBD/sources/*.xml
  • 19h19 : je fais un F5 dans Eclipse : je contrôle les fichiers générés
  • 19h20 : j’ouvre les fichiers SQL générés et je colle les ordres SQL de création de tables dans phpMyAdmin. Puis je lance les ordres de contraintes de clé étrangères.
  • 19h25 : je vais configurer le serveur web : /etc/apache2/conf.d/bilbiobd.conf
  • 19h29 : redémarrage d’apache
  • 19h30 : tentative de connexion : http://localhost/bibliobd/
  • 19h30 : configuration de la connexion web : fichier « application/config/config.php »
  • 19h32 : modification du contrôle d’accès : « application/controllers/welcome.php » (: faire en sorte qu’on arrive sur la page qui liste les BD). Par défaut, avec le compte « admin/admin », on se connecte.
  • 19h44 : navigation dans le code pour voir si tout est en place
  • 19h45 : utilisation de l’application pour créer des entités et voir si elles sont répercutées dans les autres écrans (saisie de l’URL directement)
  • 19h46 : modification des liens du menu par défaut afin de proposer des liens sur la gestion des entités : « application/helpers/views_helper.php », fonction « htmlNavigation »
  • 19h50 : contrôle des pages

Il reste à définir les règles spécifiques à chaque cas et la gestion des utilisateurs.

Résultat : 1h10 pour mettre en ligne une application de gestion complète, avec les liens entre les entités.

 

Optimisations possibles :

  • générer automatiquement le menu (opération complexe — la mise à jour manuelle est plus rapide)