Affichage des articles dont le libellé est PHP. Afficher tous les articles
Affichage des articles dont le libellé est PHP. Afficher tous les articles

samedi 10 novembre 2012

Logiciel de gestion du matériel pour un club de plongée


J'ai commencé depuis quelques temps à faire de la plongée (j'en avais fait un petit peu il y a très longtemps mais j'avais arrêté pendant pas mal de temps). A cette occasion j'ai passé une formation de technicien TIV (technicien d'inspection visuelle) afin d'aider mon club dans les inspections des bouteilles.

Pour les non-initiés, le travail d'inspection consiste - comme son nom l'indique - à inspecter l'intérieur des bouteilles de plongée une fois par an. L'opération se fait en vidant ces dernières de leur air (il vaut mieux !), suivi d'un démontage de la robinetterie pour enfin accéder à l'intérieur de la bouteille. De là, l'inspecteur doit regarder s'il y trouve d'éventuel défaut (rouille, état de la robinetterie etc.).

En France, la législation qui entoure tout ça est relativement rigoureuse (heureusement d'ailleurs !) et vous devez impérativement procéder à une ré-épreuve tous les deux ans (pour un particulier) ou tous les cinq ans (dans le cadre d'un club de plongée). Cette opération de ré-épreuve est confiée à des organismes habilités et consiste à soumettre la bouteille à 1,5 fois ça pression de service (ie 300 bars de pression de réépreuve pour une bouteille de 200 bars). Par ailleurs, cette opération ne se fait pas avec du gaz (risque d'explosion en cas de rupture de l'enveloppe de la bouteille) mais avec un liquide.

Dans le cas d'un club, ces ré-épreuves toutes les 5 ans sont donc conditionnées par au moins une inspection visuelle annuelle pour s'assurer qu'aucun problème de corrosion grave n'est en train d'apparaître pendant ce laps de temps.

Bref, vous l'avez deviné, il faut gérer un stock de bouteille et s'assurer qu'aucune n'a été oubliée et surtout ne pas oublier de passer les bouteilles en ré épreuve tous les cinq ans.

Bref, quand j'ai voulu donner un coup de main sur ce sujet, je me suis rendu compte que le club n'avait rien pour le faire automatiquement (seulement une feuille de tableur et des papelards).

Je me suis donc mis en recherche d'une solution et c'est à cette occasion que j'ai constaté qu'aucun logiciel libre n'existait sur le marché pour ce type de besoin (il existe une seule application mais qui se base sur OpenOffice et qui se présente sous la forme d'un binaire pour Windows).

Comme il se trouve que j'ai eu un peu de temps libre pendant cette été, j'ai proposé à mon club d'en faire une petite application Web à base de PHP/MySQL. Je viens donc aujourd'hui vous en faire part pour ceux que ça pourrait intéresser. L'application est téléchargeable à l'adresse suivante : http://code.google.com/p/gestion-bloc-tiv/downloads/list

Concernant l'installation du logiciel en lui même, plutôt que de me répéter, je préfére vous renvoyer directement aux instructions originales : http://code.google.com/p/gestion-bloc-tiv/source/browse/trunk/tiv/README (je vous rassure, c'est relativement simple : import d'un schéma + modification de deux fichiers).

L'interface du logiciel en lui même est relativement simple et n'est pas protégé. Je vous recommande d'ailleurs de faire appel à des fichiers .htpasswd et .htaccess afin de ne pas trop laisser ces données accessibles à tout un chacun (c'est quand même des informations relativement sensible).


Elle se présente sous la forme d'onglet :

  • Accueil vous donnera un résumé des blocs ayant besoin d'une réépreuve ou d'une inspection visuelle ;
  • Administration vous permettra de procéder à la création de nouveaux objets dans votre base (bloc, détendeur, inspecteur TIV etc.) ;
  • Matériel vous permettra de consulter votre matériel ;
  • Personnes / inspecteurs TIV vous donnera un accès aux personnes et inspecteurs du club ainsi qu'aux prêts en cours ;
  • En fin l'onglet Status des blocs vous donnera une vision de vos différents blocs.

Le reste de l'interface reste relativement simple (à mes yeux) : vous cliquez sur les éléments qui vous intéressent, vous modifiez, vous appuyez sur le bouton modifier et voilà.

Une partie relativement intéressante vient dans l'onglet Administration (section préparation d'un TIV) puisque vous pourrez depuis ce point procéder à la création des fiches TIVs nécessaire à votre inspection. Vous pourrez à cette occasion récupérer un fichier PDF que vous pourrez imprimer (et éventuellement stocker dans un coin) et qui fera une pré-affectation des tous les blocs aux différents inspecteurs TIV dans votre club.

L'application en est pour l'instant à la 0.2 (téléchargement par ici) et je n'ai pas prévu de faire de gros ajout. Les retours et demandes d'évolution seront les bienvenues.

Pour info, elle a été testée sur Ubuntu et l'hébergeur 1and1.

Sur ceux, bon TIV !

dimanche 5 septembre 2010

Utilisation d'un robot avec Mediawiki

Il y a de ça quelques temps, j'ai eu l'occasion de travailler sur un robot de mise à jour automatique des populations sur les articles des communes de Charente-Maritime. Le principe est assez simple : les articles de commune utilisent tous un système de modèle afin de donner un aspect uniforme à tous les articles. Jetons un coup d'oeil au code source de l'article Wikipedia sur la ville de La Rochelle :


{{Infobox Communes de France
| nomcommune = La Rochelle
| image = La Rochelle Vieux-Port.JPG
| image-desc = Les tours du vieux-port de La Rochelle
[...]
| insee = 17300
| cp = 17000
| maire = [[Maxime Bono]]
[...]
| km² = 28.43
| sans = 76848
| date-sans = 2007
| aire-urbaine = 186271
| nomhab = Rochelaise, Rochelais
| siteweb = http://www.ville-larochelle.fr/
| géoloc-département = Charente-Maritime
}}


Comme vous pouvez le constater, l'article utilise un modèle Mediawiki (ici le modèle Infobox Communes de France) et utilise des paramètres nommés (aire-urbaine=186271 par exemple). L'idée de l'automate est donc de venir modifier les paramètres sans et date-sans (respectivement la population et la date de ce recensement) à partir de fichier plat. Ceci bien sûr afin d'éviter de faire le travail de mise à jour des centaines de communes de France à la main.

Pour les plus curieux, le code source du robot se trouve à l'adresse suivante : DroopigBot sur google code

Bref, le robot a fonctionné sur les communes de Charente-Maritime (ainsi que sur une partie de la Vendée) et m'a donné une idée lumineuse : alimenter automatiquement notre wiki de documentation interne. En effet, nous avions tout un tas de site différent dispersé avec des fonctionnalités différentes :

  • Un inventaire de machine

  • Un spip de documentation (avec une version complètement obsolète)

  • Un inventaire par mail de nos instances de serveurs Java

  • Mais également plein de chose avec des fichiers plats dans plein d'endroit différent



J'ai donc récupéré le code que j'avais utilisé pour mes communes afin d'en faire quelque chose de plus simple sous la forme d'un script d'extraction et de mise à jour de contenu d'article.

Je ne vais pas tout vous présenter mais juste l'utilitaire en ligne de commande qui me permet de faire cette mise à jour : update_article.sh. Vous pouvez le récupérer à l'adresse suivante : http://code.google.com/p/droopigbot/source/browse/#svn/trunk/public_html.

Pour le configurer, c'est assez simple : créer un utilisateur avec droit d'écriture sur votre mediawiki, créer un fichier robot_config.inc.php avec les informations de connexion. Ci-dessous un exemple pour ce fichier :
$robot = new DroopigBot("Nomdubot", "passdubot", "http://addresse-du-serveur/wiki");
?>


Une fois enregistré, votre robot est prêt à fonctionner. Faisons un test simple d'extraction :

drayan@robert:~/dev/droopigbot/public_html$ ./update_article.sh --name 'Page de test' --dump
Un article de test.


Alimentons maintenant un fichier pour mettre à jour cet article :
drayan@robert:~/dev/droopigbot/public_html$ cat > essai.txt
Mon article a été mise à jour.

Et j'en suis très content.


Lançons la mise à jour :
drayan@robert:~/dev/droopigbot/public_html$ ./update_article.sh --name 'Page de test' --update ./essai.txt --no-simulation --message 'Mise à jour par un robot'
Updating 'Page de test' with './essai.txt' content


Si on jette un coup d'oeil à l'article, nous voyons qu'il a été mis à jour :



Allons maintenant voir l'historique :


Reste maintenant plus qu'à faire vos scripts de mise à jour de votre wiki :)