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.
- présentation du projet, documentation de l'existant, spécifications fonctionnelles: http://abelujo.cc/
- la démo (admin/admin)
- sources: https://gitlab.com/vindarel/abelujo/
- doc technique: http://dev.abelujo.cc/
- lib: https://gitlab.com/vindarel/bookshops/
- Diaspora: https://framasphere.org/u/abelujo
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:
ou
pip install bookshops
livres 9782742720682
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 Sylvain Berfini (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 dzecniv . Évalué à 2.
salut, merci pour les retours !
# Maintenance
Posté par Sébastien Koechlin . É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:
Ça c'est super, et très pratique pour installer.sudo apt-get install python-pip nodejs nodejs-legacy npm
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 ?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
[^] # Re: Maintenance
Posté par dzecniv . É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 Denis Dordoigne . É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 :
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 dzecniv . É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 Denis Dordoigne . É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 dzecniv . É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 sarah (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 dzecniv . É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.