Journal Abelujo, logiciel libre de gestion de stock de librairies

Posté par  . Licence CC By‑SA.
Étiquettes :
11
26
avr.
2016

Salut,

À la suite d'Alessandria, logiciel de gestion de (petites) bibliothèques, je viens présenter Abelujo, un logiciel libre de gestion de stock de librairies et sa bibliothèque bookshops, pour récupérer les informations des livres.

Fonctionnalités

Le but d'Abelujo est de gérer le stock de livres d'une librairie:

  • récupérer les notices depuis une recherche libre ou un isbn. Bookshops donne de très bons résultats (explications plus bas).
  • chercher dans son stock,
  • gérer les ventes, voir l'historique des mouvements du stock,
  • effectuer des inventaires (par rayon, par lieu),
  • travailler avec des listes de livres (idées, recommandations clients, etc),
  • travailler avec des colis (à envoyer, à réceptionner),
  • gérer les dépôts,
  • faciliter le réassort (c'est à dire les commandes),
  • exporter les listes en pdf (avec codes-barres), txt et csv (au format approprié pour le site de Dilicom, service professionnel qui permet entre autres de passer les commandes),
  • travailler avec une douchette (lecteur de codes-barres),
  • analyser son stock (valeur du stock, meilleures et pires ventes, rotation,…)

Le logiciel est traduit en anglais et (partiellement) en Espagnol. On peut chercher des livres espagnols.

Presque tout de cette liste est implémenté. Les fonctionnalités qui font défaut sont au moins les colis, la gestion des clients, et d'intéressantes analyses.

On considère Abelujo en version bêta: l'appli est prête à être utilisée, elle peut déjà rendre de bons services, mais demande encore quelques améliorations pour une utilisation quotidienne.

Choix techniques

Abelujo est une application web développée en Django 1.9 pour le serveur, Angularjs 1.3 pour le client. Les deux communiquent via du json servi par une api maison (pas (encore?) Django Rest Framework).

On n'écrit pas du Javascript mais du Livescript, qui est trop bien (très concis et expressif), notamment pour manipuler des données. Livescript ressemble à CoffeeScript, mais couplé à sa bibliothèque prelude on obtient un langage fortement orienté programmation fonctionnelle.

État de l'art et public visé

Il n'existe pas d'autre logiciel libre de gestion de librairie à notre connaissance. Les logiciels professionnels du commerce (Ellipses, Librisoft,…) et les bases de données (Electre, Dilicom,…) sont inabordables pour les associations et pour beaucoup de libraires. Or, il y a un monde entre gérer son stock avec une feuille Excel et un cahier et les logiciels du commerce, dans lequel Abelujo compte bien aider. Nous comptons proposer un service d'hébergement et de support.

Par contre d'autres projets cousins, comme Alessandria ou Inventaire.io, ont le même problème de recherche de notices. Les solutions actuelles n'étaient pas satisfaisantes pour des résultats français (ou autre qu'anglais), c'est pourquoi nous sommes partis sur une autre solution.

Bookshops, recherche de notices et résultats de qualité

En bref:

pip install bookshops
livres 9782742720682
ou

from bookshops.frFR.librairiedeparis.librairiedeparisScraper import Scraper as frenchScraper

scraper = frenchScraper("search keywords") 
cards = scraper.search()
# we get a list of dictionnaries with the title, the authors, etc.

Nous allons chercher les informations là où elles sont, sur des sites de librairies (actuellement librairiedeparis.fr, après avoir testé decitre.fr). Les résultats sont donc aussi bons que lorsque vous faites une recherche manuelle sur ce site.

Nous en discutions ici avec les deux projets sus-cités.

Suivre le projet

Nous avons une mailing liste et publions régulièrement sur Diaspora (qui propose un flux RSS).

Comment aider ? 

Ah, de multiples façons :)

Tu peux tester la démo et nous dire ce qui marche bien et ce qui marche moins bien;

Si tu gères une librairie (une associative, une professionnelle), viens discuter pour t'assurer qu'Abelujo répondra à tes besoins ! Aujourd'hui nous avons besoin de plus de retours.

Si Abelujo t'intéresses pour une utilisation à la maison, viens discuter quand même.

Si t'as de l'expérience en interfaces utilisateur, design web, Docker, webscraping, portage python 2 à 3, Angularjs, DRF, Django, déploiement d'applications, viens prendre un café !

Tu peux regarder les tickets ouverts.

Pour le mot de la fin: Abelujo veut dire ruche en Espéranto, et Ruche est le projet qui a permit Abelujo.

  • # Quelques retours sur la recherche

    Posté par  (site web personnel) . Évalué à 2.

    Salut,

    J'ai fait un test rapide via la démo et voici un retour rapide :
    - La recherche est un peu lente (environ 10 secondes pour ajouter une "Nouvelle entrée", ça va prendre du temps de rentrer toute la bibliothèque…
    - La barre de recherche en cours est mal placée, en haut c'est pas top
    - Les résultats de la recherche sont pas mal, mais:
    * Ne pas prendre toute la largeur de l'écran quand celui dépasse une certaine taille: sur un 24" le tableau est beaucoup trop large ça nuit à la lecture
    * Je ne sais pas comment sont triés les résultats mais c'est perfectible: ma recherche était "Le Huit", il est arrivé en 10ème position

    En tout cas bon courage et bonne continuation :)

    • [^] # Re: Quelques retours sur la recherche

      Posté par  . Évalué à 2.

      salut, merci pour les retours !

      • je suis d'accord, la recherche est assez lente, mais je n'ai pas la main dessus ou très peu. C'est lié au site distant qui est lui-même un peu lent. Pour rentrer toute la bibliothèque, la stratégie serait de le faire à partir d'une liste d'isbn et de laisser tourner un grand coup (avec parallélisation), ce que propose aussi la lib bookshops. Par contre certaines actions (ajout d'un livre à une liste,…) sont assez lentes et améliorables.
      • si tu parles de la barre de recherche en cours bleu qui apparaît et disparaît à chaque appel du serveur, il s'agit d'un plugin Angularjs populaire (youtube, etc) que je customiserais plus tard :D
      • j'avais pas pensé aux méga écrans, merci
      • le tri des résultats est directement lié au site distant (librairiedeparis.fr)
  • # Maintenance

    Posté par  . Évalué à 4.

    Bonjour,

    Je suis très intéressé pour une association, par contre j'ai quelques remarques sur l'installation:

    Quels sont les prérequis ? (C'est généralement un chapitre avant l'installation).

    Lors de l'installation, il y a:

    sudo apt-get install python-pip nodejs nodejs-legacy npm
    Ça c'est super, et très pratique pour installer.

    sudo pip install virtualenvwrapper
    sudo npm install gulp -g # a JS build system.
    # you need: sudo apt-get install python-pip
    sudo pip install virtualenvwrapper
    Cela l'est nettement moins. Qu'on installe des trucs sous l'utilisateur dédié qui va faire tourner Abelujo, ça ne me choque pas, que l'on lance des trucs en sudo qui vont éparpiller des fichiers un peu partout dans le système, non maintenu par des paquets de l'OS et avec potentiellement des interactions avec d'autres trucs qui tournent sur la machine, je trouve ça nettement moins chouette. Est-il indispensable d'installer ça en root ?

    • [^] # Re: Maintenance

      Posté par  . Évalué à 2.

      Salut, j'ai pas nettement compris ce que tu aimes moins. C'est le sudo pour installer virtualenvwrapper ? Oui c'est le seul paquet pip qui demande une installation globale. Ce n'est pas une librairie logicielle, c'est l'outil qui permet en retour d'installer tous les autres paquets pip indépendamment dans un environnement virtuel. Il ne va pas clasher avec d'autres trucs qui tournent sur la machine, et il est maintenu par le gestionnaire de paquets pip, donc ça va il est pas trop en vrac je trouve.

      Ok pour expliquer plus clairement les prérequis.

  • # Illégal

    Posté par  . Évalué à 3. Dernière modification le 27 avril 2016 à 04:20.

    Bonjour,

    Malheureusement, sauf si vous avez une autorisation spécifique du site que vous interrogez, votre logiciel est illégal au regard du droit européen. Une jurisprudence de la cour européenne de décembre 2013 donne les critères suivants pour qualifier cette illégalité, et vous êtes en plein dedans :

    […] dès lors que ce métamoteur de recherche dédié:

    – fournit à l’utilisateur final un formulaire de recherche offrant, en substance, les mêmes fonctionnalités que le formulaire de la base de données;

    – traduit «en temps réel» les requêtes des utilisateurs finaux dans le moteur de recherche dont est équipée la base de données, de sorte que toutes les données de cette base sont explorées, et

    – présente à l’utilisateur final les résultats trouvés sous l’apparence extérieure de son site Internet, en réunissant les doublons en un seul élément, mais dans un ordre fondé sur des critères qui sont comparables à ceux utilisés par le moteur de recherche de la base de données concernée pour présenter les résultats.

    Source : http://curia.europa.eu/juris/document/document.jsf?docid=145914&doclang=FR

    J'ai un moment utilisé un logiciel libre qui allait interroger un webservice amazon pour récupérer les informations liées à un ISBN, ce qui fonctionnait bien, je ne sais pas si d'autres webservices du même type se sont développé depuis que vous pourriez utiliser.

    Membre de l'april, et vous ? https://april.org/adherer -- Infini, l'internet libre et non commercial : https://infini.fr

    • [^] # Re: Illégal

      Posté par  . Évalué à 1.

      Ah, super lien merci.
      Je note au moins 2 différences importantes entre Abelujo et les deux parties mises en cause dans cette jurisprudence, c'est que la jurisprudence concerne 2 concurrents, où le métamoteur de recherche porte préjudice au site source pour cause de fonctionnalités similaires (points 41 à 44, 48), et qu'Abelujo ne s'adresse pas au "public" mais à un nombre restreint de personnes (point 51).

      • [^] # Re: Illégal

        Posté par  . Évalué à 3.

        Tous ces éléments de contexte ne font qu'expliquer la procédure, ce qui va rentrer dans la jurisprudence se situe après le pour faire droit. Je n'ai aucun doute de l'illégalité de cette extraction de données, mais tu peux essayer de trouver un conseil juridique pour te le confirmer (tu en as probablement inclus avec ton assurance habitation qui pourra te répondre si tu n'as pas encore monté de société, sinon il faut voir avec les associations d'aides aux entrepreneurs locales).

        Concernant le webservice d'amazon, il est documenté ici : http://docs.aws.amazon.com/AWSECommerceService/latest/DG/EX_LookupbyISBN.html ; en cherchant "isbn webservice" sur un moteur de recherche j'ai vu d'autres réponses.

        Mais sinon puisque tu utilises python il semble y avoir des solutions déjà développées, par exemple ceci : https://pypi.python.org/pypi/isbntools

        Membre de l'april, et vous ? https://april.org/adherer -- Infini, l'internet libre et non commercial : https://infini.fr

        • [^] # Re: Illégal

          Posté par  . Évalué à 1.

          Je connaissais le service d'Amazon et préférais ce travail supplémentaire pour rester dans le monde de la librairie indépendante !
          Merci pour les infos précises.

  • # pour les librairies

    Posté par  (site web personnel) . Évalué à 4.

    bonjour

    je suis libraire et libriste et j'ai été bien malheureuse, quand on a ouvert la boutique, de devoir m'équiper sous windows ! (et je peste encore au moins 2 fois par semaines contre cet OS m…dique)

    Merci pour ce projet que je vais tester aussitôt.

    À la lecture rapide du billet, je dirais qu'il manque une gestion de caisse. Il faudrait aussi la possibilité de se connecter à la base dilicom pour les librairies qui peuvent se le permettre, et ce serait parfait !

    Personnellement, je milite déjà pour que les logiciels métiers des librairies puissent au moins tourner sur linux. L'ouverture du code sera une 2e étape !

    Sarah

    • [^] # Re: pour les librairies

      Posté par  . Évalué à 1.

      Bonjour,
      Quelques précisions svp ! Par gestion de caisse, à quoi pensez-vous exactement ? (cela change selon mes intercoluteurs) À voir le CA de la journée, les marges, le nbr de ventes, de clients,… ou bien à gérer le fond de caisse ?
      Quant à Dilicom, il est aujourd'hui possible d'exporter des listes/paniers de livres au format csv pour le donner directement au site de Dilicom. Cela vous semble-t-il une bonne base ?
      Contactez-moi, qu'on en discute de vive voix !

Suivre le flux des commentaires

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