Le logiciel projet_a est l'outil de base du projet de sites et de communauté virtuelle d'artistes. Sa réalisation en mode « agile » permet de faire aussi progresser le reste du projet pendant son avancement.

Articles

1. La structure des données

Une base de données enregistre la structure des sites des artistes et celui du projet A ainsi que les commentaires échangés ou publiés. Les images et le code des générateurs sont stockés à part.

2. Interpolation dans les chaines et textes

Comment contrôler le format des chaines de caractères non HTML et intégrer des méta-données dans les textes HTML.

3. Les composants graphiques

Les composants graphiques sont les constituants des générateurs de pages qui leur permettent d'afficher des groupes d'images, mais aussi d'assurer la gestion de leur disposition.

4. Genèse d'un composant

Cet article est une description didactique, phase par phase, de l'écriture du composant p4008_google_search pris comme exemple. Par la même occasion, il permet de revoir quelques bases de la programmation Ruby et HAML ainsi que du passage de paramètres dans le logiciel projet_a.

5. Gestion du cache

Utilité d'un cache. Caractéristiques. Difficultés. Solutions Rails. Cas du projet A : problème et solution.

Démarche du développement

Le développement du projet A est au départ une démarche solitaire, ce qui permet de structurer rapidement le cœur du projet et de fournir en quelques mois une première version opérationnelle pour tester les principaux concepts.

Toutes les compétences d'un projet Web dont le volet graphique est important sont nécessaires. Toute personne intéressée pour participer au projet peut se faire connaitre à la boite Contact : développement Rails, Javascript, CSS, SQL, Linux ou graphisme Web.

Le développement du logiciel s'intègre dans le projet A plus global de communauté virtuelle d'artistes. Il est effectué suivant une méthode « agile » : on développe quelques fonctionnalités ; on fabrique une maquette ; on vérifie auprès des utilisateurs ; on fait quelques retouches ; on ajoute de nouvelles fonctionnalités ; et ainsi, pas à pas, en voyant et en faisant voir littéralement le projet se construire sous toutes ses facettes.

Avancement de la réalisation

  • Version 0.1 (2011-05) : tables de base, génération des premières pages
  • Version 0.2 (2011-07) : ajout des commentaires, composants graphiques
  • Version 0.3 (2011-09) : site communautaire, composants en base
  • Version 0.4 (2011-10) : sites en plusieurs langues
  • Version 0.5 (2011-12) : relation utilisateurs - sites → abonnements, membres, droits multiples
  • Version 0.6 (2012-01) : moules d'aide à la saisie pour guider les webmestres
  • Version 0.7 (2012-02) : objets joints aux œuvres, accès aux informations, profil utilisateur en fonction du site → sites d'association
  • Version 0.8 (2012-09) : groupes d'utilisateurs, périodes de publication des articles et des œuvres
  • Version 0.9 (2014-01, en cours) : gestion unifiée des ingrédients

Le numéro de la version en ligne figure dans le bas de page de l'accueil du site communautaire et de tous les écrans en mode gestion.

Langage et composants

  • Langage : Ruby 2.1.3
  • Plateforme : Ruby on Rails 3.2.21
  • Composants Ruby additionnels :
    • haml (langage des vues)
    • dalli (cache)
    • Kaminari (pagination)
    • RMagick (traitement des images)
    • exception_notification (notification des erreurs par messagerie)
    • byebug (développement)
    • unicorn (interface avec le serveur web nginx)
  • Composants Javascript :
    • JQuery, JQuery-UI,
    • Tiny-MCE (éditeur de texte)
    • JPlayer (son)
    • Treeview (arbre)
    • Fullscreenr (image en plein écran)
  • Base de données : PostgreSQL
  • Composants Linux
    • memcached (serveur de cache)
    • nginx (serveur web)
    • postfix (serveur de messagerie)
    • ImageMagick (traitement des images)
    • Pandoc (conversion Latex → HTML)

Écrans de gestion

Les écrans de gestion du logiciel sont réservés aux gestionnaires de site et aux administrateurs. Ils donnent une vision très concrète du produit.

Voir l'article Copie des écrans de gestion.

Articles en projet

  • Gestion du cache
  • Les composants
  • Recettes de développement
↑ Haut