3.- An installer for the application.

For this reason we have in our bin path two commands more gtk-proxypos.py and proxypos-server. If one user want to load the gui is shorter write gtk-proxypos than proxypos-server --gtk or something like that. But if is needed give the option to load the gui as an option, it can be added, and also can be added the option to load the config file from another location "--conf=path-to-config-files"

Also I was thinking add some kind of plugin/addon manager, to avoid mess up with the main code and separate the pricipipal API from the customizations. In one hand the core API, and in the other the addons/plugins. This can help in make more easy add functionalities/hardware and keep the main code more clean, even if many people wan't to make their own customizations.

As example:
What happend if I add a custom route to the POS, I need to edit app.py to add it, but is a functionality that, in some cases, I'm the only one that is going to use it. 
What happend with an addon system? The server automatically look up for addons and load them. Even can be added the posibility read the addons that you need to load from OpenERP.

The more obvious is the print receipt function. What happend if I made an improvement on some other part of the main code that I wan't to merge with the main code, but I change this function. Represent a little more work for the main code mantainer.

Or even, What if I don't need to use the ESC/POS printer. Just think in the case I develop some hardware that let you find the products in the warehouse. Enter or scan the receipt and bring the products to you, or turn on some ligths that guide you to the products. Then why load the printer or template system?