In January 2015, Openbravo POS is 10 years old. Over the years, Openbravo POS (including fork) has become the leader in the world of open source software for retail automation (POS, Point of Sale - point of sale or, more specifically, cashier’s workplace). This article is a preliminary summary of what has been and has not been implemented in the Openbravo POS project over the past 10 years.
Name history
The father of the founder, the permanent leader and almost the sole committer of the project was Adrian Romero from Spain. The project’s original name from 2005 to 2007 was Tina POS, but in August 2007 there was a conflict with this brand and had to rename the project Libre POS. Unlike the first, the second name did not last half a year, since Adrian went to work at Openbravo and the first part of the name was “branded”, leaving only the old “POS” at the end, which emphasized from this point on the project’s belonging to the ERP ecosystem -systems as a retail add-on. Also in February 2008, the first version of Openbravo POS came out immediately after the number 2.00. At the same time, when I was looking for an Linux-based ERP system, I found out about the existence of the Openbravo project. And the Openbravo POS application became 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, already to the existing check printer, customer display, scanner, scales and data collection terminal, added support for the cash register, label printer, fiscal recorder and scales with label printing. For that, a year later, in the spring of 2009, in Barcelona, ​​I received the Openbravo Community Awards , not as the best localizer, but as the best developer in 2008 of Openbravo POS.
')
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 full-fledged enterprise solution was hidden with the ability to adjust to any small business automation tasks. This was achieved due to the strengths listed below, which were incorporated into Openbravo POS almost from the very beginning.
The first is cross-platform. Here in 2008, everything was very simple, where Java SE 1.6 was launched, where the application worked.
Connect via JDBC to almost any DBMS. It can be, as embedded systems HSQLDB, Apache Derby or implemented already within the framework of my Firebird project , or full-fledged server-based MySQL, PostgreSQL or Oracle.
Convenient panel interface with customization through resources stored in the database. And since, long before the appearance of touch screens on mobile devices, for POS, touch control was the de facto standard, 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 to run, without having to change the code of the application itself.
For building reports, a very powerful JasperReports library was originally integrated into the application. In terms of functionality, it exceeded even the application itself.
But the greatest value for me in this project was open source, which very well illustrated the capabilities of the application with peripheral equipment. This was achieved not only due to the use of RXTX and JavaPOS libraries , but also due to the competent symbiosis of the application business logic and capabilities of specific equipment. In Openbravo POS, everything can be done without connecting trading peripherals, but then it will be another accounting system, which even in the field of OpenSource a lot. And only after connecting the receipt printer, customer display, scanner and scales, the power hidden in this system becomes visible. Only then it is possible not only to keep records, but to do it with 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 the development of Openbravo POS, which was released in December, version 2.30, where the major changes were made, in minor versions 2.30.1 and 2.30.2 only a couple of bugs were fixed and the tax calculation logic was altered ( There is an opportunity to set taxes for a period of time). In the Openbravo POS 2.30 version, there were several functions that now distinguish it from other POS, both proprietary and free.
Attribute accounting
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.). Further in the context of these attributes, you can keep records and generate reports.
Synchronization Pentaho Data Integration
To exchange data with external systems, it was proposed to use ETL solution from Pentaho , this allowed integrating the point of sale software into the accounting system already implemented in the enterprise. For example, the release includes schemes for downloading reference books to Openbravo POS and uploading sales through a REST web interface to Openbravo ERP.
PDA module
Even then it was clear that it was impossible to develop only the desktop version of the application. Introducing POS has to take into account the need of the customer to use mobile devices. To solve this problem, it was proposed to use a Java servlet connected to a single database along with the desktop application. To illustrate this approach, the release of Openbravo POS 2.30 included a web application based on the Struts 1 framework that allowed the waiter to accept orders from a PDA.
Unfortunately, in the future, these changes in the framework of Openbravo POS did not develop and since 2010 the project was frozen, and further development was carried out only within the framework of forks based on the source code of Openbravo POS. This was due to the fact that Openbravo abandoned the idea of ​​using the 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, the developers are provided with the source code of Openbravo Web POS, but its distribution became possible only when subscribing to the professional version of Openbravo 3. Also, apart from the hardware management application , which is still being developed by Adrian Romero, in this project there is nothing about the desktop version of Openbravo POS does not resemble.
Fork time
Then, from 2010, the mechanism laid out 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 is not only something new is being implemented all the time, but its authors are also trying to collect interesting from other branches of Openbravo POS and implement it in uniCenta POS code. The list of changes compared to the original version is huge, but from the shortcomings I can say that so far 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 interesting from the point of view of development, a branch from Openbravo POS. Instead of Ant, Maven is used to build it, which makes it possible 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 ADempiere ERP . It also uses the web interface like Openbravo, but the leader of the Red1 project decided that it still needed a desktop client and chose Openbravo POS as its client. At the same time, in turn, ADempiere and Openbravo are Compiere forks, arising from the growing closeness of this ERP. And now the story is repeated with the example of Openbravo, the participants from the parallel developing community ADempiere use the remaining open part of the Openbravo project.
Russian version of Openbravo POS . This is my project, I developed it from 2008 to 2012. The main thing on which he was aimed is the support of commercial equipment used in the former USSR, mainly it consisted in the implementation of work with Cyrillic, which I have already mentioned . Since I did not see further development in this vein for myself, I decided to develop the code as part of another, but already my own NORD POS fork. Its main goal is to be a platform for developing a compact Java servlet for the mobile web , but I will discuss this in more detail in another article.
The main thing that unites all the branches that have sprung from the parent project is the single database structure . It is not very complicated, but due to the invariable core 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 forks databases built on it.
Conclusion
Since 2008, I am one of the most active participants in this project. For me, these 7 years have certainly not been in vain, I received new knowledge, new acquaintances and new ideas. The development of open source software can be borrowed not for the sake of big money, but simply for the sake of the thought that someone will need your work in the future, and if you eventually cool off to your brainchild, there will always be someone who will pick it up and develop it further without abandoning "at the most interesting point".