Dedicated to the Openbravo POS Decade
January 2015 marks 10 years since the Openbravo POS application . Over the years, Openbravo POS (including forks) has become the leader in the world of open source software for retail automation (POS, Point of Sale - a retail outlet or, more specifically, a cashier’s workplace). This article is a preliminary summary of what was and was not possible to implement in the Openbravo POS project over the past 10 years.
Adrian Romero from Spain was the founding father, permanent leader and almost sole committer of the project . The project's original name from 2005 to 2007 was Tina POS, but in August 2007 there was a conflict with this brand and I had to rename the project to Libre POS. Unlike the first, the second name did not last half a year, as Adrian switched to Openbravo and the first part of the name was “branded”, leaving only “POS” at the end of the old one, which emphasized from this moment the project belongs to the ecosystem of this ERP -systems as a complement to retail. Also in February 2008, the first version of Openbravo POS was released immediately after the number 2.00.
At the same time, I, looking for an ERP-system running under Linux, learned about the existence of the Openbravo project. And the Openbravo POS application was the starting point in mastering the source code of this project. I started by translating the interface into Russian. But in the end, he could not resist, and during the localization of the application for the market of the countries of the former USSR, he added support for a cash register, label printer, fiscal registrar and label printing scales to the existing receipt printer, customer display, scanner, scales and data collection terminal. For which, a year later, in the spring of 2009, in Barcelona, he received the Openbravo Community Awards , not as the best localizer, but as the best Openbravo POS developer in 2008.
Enterprise behind the counter
For me, the main thing in Openbravo POS was that in a small (at first glance) desktop application, the power of a complete enterprise solution was hidden with the ability to adapt to any small business automation task. This was achieved due to the strengths listed below, which were built into Openbravo POS almost initially.
- The first is cross-platform. Here in 2008 everything was very simple, where Java SE 1.6 was launched, where the application worked.
- Connection through JDBC to almost any DBMS. It can be either embedded HSQLDB, Apache Derby or already implemented as part of my Firebird project , or full-fledged server MySQL, PostgreSQL or Oracle.
- Convenient panel interface with settings through resources stored in the database. And since, long before the appearance of touch screens on mobile devices, touch control was a de facto standard for POS, the Openbravo POS interface was immediately developed for use on touchscreen monitors.
- Having the opportunity, all in the same resources, to implement templates for printing on a receipt printer and scripts for execution, without the need to change the code of the application itself.
- To build reports in the application, a very powerful JasperReports library was originally integrated . It outperformed even the application itself that caused it.
- But the greatest value for me in this project was open source code, which very well illustrated the capabilities of the application with peripheral equipment. This was achieved not only through the use of the RXTX and JavaPOS libraries , but also due to the competent symbiosis of the business logic of the application and the capabilities of specific equipment. In Openbravo POS, everything can be done even without connecting peripherals, but then it will be the next accounting system, which there are many even in the OpenSource sphere. And only after connecting the receipt printer, customer display, scanner and scales, the power hidden in this system becomes visible. Only then is it possible to not only keep records, but to do it at maximum speed, and this is the main task for the cashier’s workplace software.
a swan song
At the same time, 2009 was the last year of Openbravo POS development, the version 2.30 released in December was the last one where major changes were made, in minor versions 2.30.1 and 2.30.2 only a couple of bugs were fixed and the logic of tax calculation was redone ( Now you can set taxes for a period of time). In the version of Openbravo POS 2.30, several functions were laid that even now distinguish it from other POS, both proprietary and free.
Each unit of a product or service is assigned a parameter (characteristic) that determines its consumer properties (size, color, etc.) or identifies its individual units (batch number, serial number, etc.). In the future, in the context of these attributes, you can keep records and generate reports.
Pentaho Data Integration Sync
To exchange data with external systems, it was proposed to use the Pentaho ETL solution , which allowed integrating the point-of-sale software into the accounting system already implemented at the enterprise. For example, the release includes schemes for downloading directories in Openbravo POS and uploading sales via the REST web interface in Openbravo ERP.
Even then, it was clear that it was impossible to develop only the desktop version of the application. Implementing POS has to take into account the customer’s need for the use of mobile devices. To solve this problem, it was proposed to use a Java servlet connected together with a desktop application to a single database. To illustrate this approach, the Openbravo POS 2.30 release included a web application based on the Struts 1 framework that allowed the waiter to accept orders from a PDA.
Unfortunately, these changes were not further developed in the framework of Openbravo POS and since 2010 the project has been frozen, and in the future development continued only within the framework of forks based on the Openbravo POS source code. This was due to the fact that the company Openbravo abandoned the idea of using a desktop application as a client for ERP and decided to make an online web client based on the Openbravo 3 platform , calling it Openbravo Web POS . At the same time, developers are provided with the source code of Openbravo Web POS, but its distribution became possible only by subscribing to the professional version of Openbravo 3. Also, except for the application for managing equipment, the development of which is still led by Adrian Romero, in this project, nothing reminds of the desktop version of Openbravo POS.
Further, from 2010, the mechanism laid down by the open source and the GNU GPL license began to operate, that is, applications based on the Openbravo POS source code began to appear. The following are the most popular ones.
- uniCenta POS . Today it is the most popular fork, it not only implements something new all the time, but its authors also try to collect interesting from other branches of Openbravo POS and implement uniCenta POS in the code. The list of changes compared to the original version is huge, but from the shortcomings I can note that until now the latest patches from Openbravo POS 2.30.1 and 2.30.2 have not been added to it.
- POSper . Not so dynamically developing, but an interesting branch from the point of view of development from Openbravo POS. Instead of Ant, it uses Maven to build it, which provides the ability to constantly update libraries and track dependencies.
- SmartPOS and Wanda POS . By themselves, these are two different projects, Wanda POS was released in October 2014 and was already based on the uniCenta POS source code. But they are united by one thing, they are POS for iDempiere . iDempiere is the next generation of ADempiere ERP . She uses the web interface as well as Openbravo, but the Red1 project leader decided that she still needed a desktop client and chose Openbravo POS as its client. At the same time, in turn, ADempiere and Openbravo are forks of Compierearising from the increasing closure of this ERP. And now the story is repeated on the example of Openbravo, the remaining open part of the Openbravo project is used by participants from the parallel developing community of ADempiere.
- Russian version of Openbravo POS . This is already my project, I developed it from 2008 to 2012. The main thing that he aimed at was to support the trading equipment used in the territory of the former USSR, this mainly consisted in the implementation of work with the Cyrillic alphabet, which I already mentioned . Since I did not see further development in this vein for myself, I decided to develop the code within the framework of yet another, but already fork NORD POS . Its main goal is to be a platform for developing compact Java servlets for the mobile web , but I’ll talk about this in more detail in another article.
The main thing that unites all branches that have spun off from the parent project is a single database structure . It is not very complicated, but thanks to an unchanged kernel it allows you to maintain compatibility between any of the branches, as illustrated by the nordpos.mobi project . In it, I continued to develop the idea of a web module for PDAs, and the resulting Java servlets can be connected both to the original Openbravo POS database and to the fork databases built on it.
Since 2008, I have been one of the most active participants in this project. For me, these 7 years certainly were not in vain; I gained new knowledge, new acquaintances and new ideas. The development of open source software can be done not for the sake of big money, but simply for the idea that someone will need your work in the future, and if you eventually cool off to your brainchild, then there will always be someone who will pick it up and develop it further without abandoning "at the most interesting point".
EXAMPLE introduction of Squier