Sous le capot du Club iGen

Anthony Nelzin-Santos |

Nous avons déjà (longuement) abordé les aspects économiques et journalistiques du Club iGen, mais un site web, c’est aussi de la technique. De fait, la conception du Club iGen concerne tout autant les journalistes que les développeurs. À tel point que certains journalistes tapent aussi des lignes de code, et que les développeurs participent aussi aux conférences de rédaction.

Lorsque nous avons commencé à travailler sur le Club iGen, à l’été 2016, nous avons mis en place la pile technologique suivante :

  • Drupal nous permet de gérer le contenu et les comptes des utilisateurs ;
  • Stripe nous permet de gérer le paiement et le renouvellement des abonnements ;
  • notre API nous permet de communiquer avec Drupal et Stripe ;
  • un framework JavaScript nous permet de manipuler les données de l’API ;
  • notre framework CSS nous permet de mettre en forme les données présentées par le framework JS.

Pour être tout à fait complet, il faudrait dire que nous faisons tourner nos serveurs sous Debian, ou parler de répartition de charge et de réseau de diffusion de contenu. Il faudrait expliquer que les données de Drupal sont stockées dans des bases MySQL, ou que la recherche est assurée par Solr. Mais cela dépasse (légèrement) le cadre de cet article, et n’est pas spécifique au Club.

Les grands principes de cette architecture sont maintenant bien éprouvés : le développement de notre API a informé la refonte de notre application iOS, qui en retour a informé des ajustements de notre modèle de données, et ce jeu d’allers-retours continue aujourd’hui. Sans cette API, nous aurions eu toutes les peines du monde à changer de framework JS, lorsque nous avons abandonné Angular au profit de Vue.js.

En faisant l’interface avec Drupal, que nous utilisons pour nos sites depuis plus d’une décennie, elle est devenue le cœur de nos services. Charger la liste d’articles, publier un commentaire, mettre un test en favoris… toutes ces fonctions passent par l’API. À l’instar de l’application, le site du Club iGen sera considéré comme un client de l’API, et les deux seront presque entièrement synchronisés.

Pourquoi « presque » ? D’abord parce que les préférences d’apparence ne seront pas synchronisées, puisqu’on ne lit pas sur un iPhone comme on lit sur un iMac 27 pouces. Ensuite parce que nous n’avons pas encore résolu l’épineuse question de la synchronisation des statuts de lecture, qui peut sembler simple mais représente un vrai problème d’architecture logicielle.

Mais ce problème sera résolu, et par ailleurs, toutes les autres options seront synchronisées. Vous retrouverez ainsi vos favoris sur tous vos appareils, et vos filtres pour masquer certains utilisateurs ou certains mots-clefs seront activés dans l’application comme sur le site web.

Maintenant que nous abordons le dernier week-end de notre projet Kickstarter, nous allons pouvoir nous concentrer à nouveau sur le développement du Club iGen. Jusqu’au lancement de la version bêta au printemps, nous vous tiendrons informés de l’avancée des travaux de manière régulière, en plus de vous expliquer certains choix techniques ou de vous présenter certaines fonctions.

Tags
avatar cedricp | 

Pareil. Je n’utilise presque plus le site internet. Trop de pub et demande beaucoup de ressources a Safari sur Mac : roulette multicolore, crash.

avatar Ruben715 | 

Allez les amis, encore 5.000€ et on sera tous invités à Lyon !

avatar lord danone | 

Pour en revenir au sujet, quels sites tournent sur Vue chez macg? Et les technos de votre API?

avatar Christophe Laporte | 

@lord danone

Les sites tournent sur drupal. Comme on l’avait expliqué dans le papier, la version alpha du club tourne sur vue. On avait auparavant fait des essais avec react. Mais ça ne nous a pas totalement convaincu. On a également songé à faire le club sur drupal. Sur certains points ça aurait été plus simple. Mais on voulait essayer autre chose.

avatar thierry37 | 

Pourquoi Dupral quand on lit "80% du web tourne sur un site WordPress" ?

Pour être justement différent ?
Ou juste parce que c'est votre connaissance depuis le début ?

avatar Christophe Laporte | 

@thierry37

Quand on a fait le choix de drupal WordPress n’était pas encore aussi populaire. Et pour les sites de contenus drupal reste une référence. WordPress c’est très bien aussi

avatar melaure | 

Merci pour ces détails techniques.

Suite au réactions précédentes, est-ce que le choix de Drupal n'est pas aussi judicieux coté sécurité (parce que WordPress ou Joomla sont quand même souvent victimes de différents hacks ...) ?

Et coté perfs, MySQL tient vraiment bien la charge avec le nombre conséquent de requêtes que vous devez avoir ?

Pages

CONNEXION UTILISATEUR