Journal Un logiciel libre pour publier le catalogue d'une librairie en ligne (et autres produits)

Posté par  . Licence CC By‑SA.
31
29
mai
2020

Sommaire

J'ai développé un logiciel libre pour publier en ligne le catalogue d'une librairie. Les clients peuvent voir ce qu'il y a en rayon (ou ce qui a été), et passer commande. Il est assez générique pour définir et afficher d'autres produits.

Il est tout beau tout propre (merci Bulma CSS), voici à quoi ressemble un résultat de recherche:

Fonctionnalités

Il est fait pour marcher main dans la main avec le logiciel libre de gestion de librairie que je développe aussi, Abelujo. Le libraire fait ses opérations d'ajout et de vente de livre dans Abelujo, et le catalogue relie sa base de données régulièrement (et il la stocke en mémoire, donc tout le reste est rapide). Mais ABStock peut aussi lire des livres ou d'autres produits depuis un fichier txt, et le pourrait tout aussi bien depuis un CSV ou un JSON, ou depuis une autre base de données.

Le site est composé de:

  • la page d'accueil, qui comporte
    • un formulaire de recherche. On peut chercher par titre, auteur, éditeur, rayon et ISBN(s).
    • un échantillon aléatoire de la sélection du libraire
  • la page de sélection du libraire, pour mettre des livres en avant
  • la page de résultats de la recherche. L'internaute peut ajouter des livres à son panier.
  • et sur sa page panier, il remplit un formulaire pour passer commande. La commande est envoyée par courriel au libraire (le paiement en ligne n'a pas encore été jugé nécessaire, donc pas fait !)

Le site est fait pour être générique. On renseigne les informations et le texte propre à sa structure dans un fichier de config.

ABStock est simple à héberger soi-même (il suffit de lancer un exécutable), mais sachez que je propose l'hébergement payant sur mes serveurs. J'offre un support professionnel. N'hésitez pas à en parler autour de vous ! (Encore un peu beaucoup et j'arriverais à vivre (chichement) de mes logiciels libres !)

Contexte

Je travaillais pour un client libraire, quand bam on a été confinés et tout le monde s'est arrêté. Amazon tournait à plein et les sites de regroupement de libraires (type lalibrairie.com ou placedeslibraires.fr) étaient arrêtés et/ou ne pouvaient accepter de nouvelles inscriptions. Au bout de deux semaines, le calme n'était plus drôle, on a voulu réagir et on a développé ce site (je suis le seul dév, mais le libraire est mon "product owner"). Il a été déployé rapidement, le but étant que les clients gardent un lien avec sa librairie, et que lui n'aie pas un chiffre d'affaire à zéro. Du coup les clients ont commencé à lui passer commande et il organisait des horaires de retrait, en respectant les mesures de santé publique. Cela se passe dans une librairie de village dans un territoire rural, où les clients sont contents d'avoir (enfin) une (bonne) librairie près de chez eux.

Voici un communiqué du Syndicat de la Librairie Française sur l'état actuel de la librairie, un secteur très fragile, et leurs propositions de relance: http://www.syndicat-librairie.fr/plan_de_relance_les_propositions_du_slf_pour_les_librairies_independantes

La techno

Qui a deviné en quoi j'ai développé cette application ? En Common Lisp, bien sûr ! J'en ai parlé ici et là:

Je ne voulais pas le faire en Python, notamment à cause des difficultés de déploiement et de livraison, et parce que je trouve que c'est une gageure que de maintenir une application Python sur des années. Je suis devenu assez à l'aise en Lisp maintenant, donc après avoir exploré l'écosystème et avoir testé des frameworks ésotériques dans un langage ésotérique (Weblocks: cool, mais encore du travail), je me suis arrêté sur une stack sans surprises: des routes, des templates à la Django, du JavaScript en JavaScript.

Mon expérience de développement est toujours très bonne, mon expérience de déploiement me ravie également. Je peux déployer un exécutable, ou bien lancer le projet comme un script. Je peux me connecter au REPL du site en train de tourner, soit depuis le serveur et tmux soit depuis mon éditeur préféré depuis chez moi, et soit faire une mise à jour simple à chaud (très pratique pour mettre à jour les coordonnées ou les horaires d'ouverture du client), soit faire une grosse mise à jour à chaud, sans redémarrage, y compris s'il faut installer de nouvelles dépendances, pratique aussi (mais sur laquelle je reste plus prudent). Voici un petit exemple sur Github.

Eh oui, Common Lisp est toujours utile aujourd'hui. Voici des nouvelles récentes:

Pour se lancer, je conseille grandement le Cookbook: https://lispcookbook.github.io/cl-cookbook/

Une liste de librairies est à voir sur: https://github.com/CodyReichert/awesome-cl À noter un clone de numpy nommé numcl, et qu'on peut s'interfacer si besoin avec un process Python avec py4cl.

Mots finaux (lots à gagner)

Puisque j'ai toujours votre attention: quelle est votre première impression du nom ABStock ? (vous savez, c'est un nom temporaire… qui ne trouve pas meilleur candidat). J'ai décidé que je ne peux pas tout faire moi-même, et qu'il faut améliorer plein de trucs, autant en Python, qu'en HTML ou en Lisp. J'ai un petit budget pour motiver des contributeurs ou contributrices éventuel·les. Si tu ne fais rien en juin ou juillet, n'hésite pas à me contacter pour qu'on en discute.

Merci de votre attention et d'un coup de pouce éventuel !

  • # Pas mal du tout

    Posté par  . Évalué à 4 (+3/-0).

    Je ne suis pas dans le domaine mais "l'expérience utilisateur" m'a l'air très bien.
    Bonne continuation et merci pour ce logiciel.

  • # des noms

    Posté par  . Évalué à 3 (+3/-0).

    Amalibrairie
    LivrEnStock
    liverita
    libroliveri

    • [^] # Re: des noms

      Posté par  . Évalué à 2 (+0/-0).

      Merci. Y'a peut-être un truc à faire avec "ama".

      ABCatalogue

      ABC

      LibroStock

      LaVitrine

      LML

      PotDeMiel

      Alvéole

      3615

      CIEL (Catalogue Interactif En Ligne)

      • [^] # Re: des noms

        Posté par  (site Web personnel) . Évalué à 2 (+0/-0).

        J'aime beaucoup ABStock comme nom car il ouvre sur d'autres secteurs que le livre.

        Maintenant on peut aussi avoir un "C'est ouvert".

        CIEL est un logiciel de compta et donc probablement une marque déposée et à éviter.

        OS préféré Mageia 7, CMS préféré SPIP, suite bureautique préférée LibreOffice, logiciel de dessin préféré Inkscape.

    • [^] # Re: des noms

      Posté par  (site Web personnel) . Évalué à 3 (+1/-0).

      Livravous ?

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.