Showing posts with label lemonpos. Show all posts
Showing posts with label lemonpos. Show all posts

Monday, April 18, 2011

Open source POS terminal

For those of you who are unfamiliar with retail terminology, a POS is a point of sale. A term belonging to what is essentially a computerized cash register. A problem with running a small business is the lack of affordable POS software packages, the cheapest ones running in the $500-$1000 just for the software. For people like my client in this case, this is simply to much money.


In this case, the client runs a mobile vending service. He is a sort of convenience store on wheels, and currently....has no way to keep track of his inventory or for that matter ring up purchases for customers. Since he doesn't have a large variety of products, the need for a bar code scanner isn't really necessary....however since he already has one I will attempt to get it working with our POS. The only real requirements are an inventory management suite and a POS terminal, which for this application we will use squeeze and lemon respectively.


Since we aren't quite sure how this will work (it surely is something I have never done before) I will be installing Ubuntu 10.10 on a virtual machine and attempt to install lemonpos on that so we can see how it works.

The Installation
As with all open source projects, you can obtain the source code directly from the projects website (http://lemonpos.org) but in this instance to make it easier for someone who isn't so linux savvy, and also to make updating easier, I will use the snaptic GUI in order to install both Mysql which is required for running the database, and lemon (which squeeze is packaged with.)



As you can see, synaptic automatically marks the prerequisite packages.


At this point, I am going to go ahead and mark mysql-admin for installation as well. It isn't quite as powerful as commandline for doing msql operations, but it takes off the edge for less experienced users.

All thats left to do now is hit apply, and depending on how fast your internet is, grab a drink.



During the install, mysql installer will prompt you for your mysql root password, make sure you remember it. This will allow you to log into mysql and manage all of your databases. I already have mysql installed however, so I don't have a screenshot of it.

Once the install process finishes, don't start lemon or squeeze up yet. Neither of them will function properly without a database specifically designed to work with lemon. Thankfully, the lemon devs included a handy script in order to create said database. This script is locate
in /usr/share/kde4/apps/lemon/ . cSimply run the following commands

'cd /usr/share/kde4/apps/lemon'
'cat lemon_mysql.sql | mysql -u root -p'

This script will then prompt you for your Mysql password (the one you entered earlier) and create a databased populated with the basic lemonpos necessities (such as a default user account).



After this step is done, start up mysql admin and login to your server using the username root and the password you set earlier, the default address will work unless your database is on another computer.

From Open Source Thinking: A project log
When you login, you will be greeted by the mysqladmin main screen. The script we ran earlier automatically created a database and user account with proper permissions to access it. All we need to do here is change the password to something you will remember (via the users screen, edit the user "lemonclient"), and then close mysql-admin.



At this point our database is ready to go, and we can fire up squeeze (the lemonpos managment interface).


When you first start up squeeze, a prompt will prompt you (ironically) for your database info. If you ran the script included with lemonpos the username will be 'lemonclient' the password will be the one you set in mysql-admin and the default database option of 'lemondb'. After entering this information, just hit accept and login to squeeze with the username; admin and password; linux.


Once you login you will see the squeeze main screen, if the buttons along the top aren't grayed out then you installed lemon properly and should be able to use the main program (lemon) once you enter in some inventory.


Overall I am quite impressed with the whole package, It is simple and rather easy to use. I did run into a few problems that were mainly due to the nature of running things on a virtual machine (It didn't want to connect to a remote database through my NAT) but aside from that I can tell that it is a powerful tool. You can run as many POS computers off of the same database up to the number of connections to the database allowed. Just for fun, I cloned by virtual machine twice and had 2 concurrent transactions happen at the same time with the same item, and the database turned out just fine thanks to the way lemon works.

It probably isn't necesarry to go over the functions of adding/removing inventory and actually checking someone out because frankly.....its very self-explanatory.