I thought I’d give an update on my project, DreigonPOS, a point of sale program for cafes. I’ve been working on this alot lately, I’ve implemented excel import and exporting, automatic Deals, and more.
First off I’ll explain the features of DreigonPOS.
The POS features a login dialog on startup that accepts a username and password combo or pin code entry (which could be improved with the use of swipe cards, or rfid tags for quick logon). Employees can also switch out from the main program back to this dialog to change user, without having to restart the program.
On the main screen of the program you have a “Shopping Cart” in the top left, which holds the items selected from the various buttons on the right panel which consist of categories, subcategories and items for sale. In the bottom left there is a calculator style numpad for inputting cash received, discounts and multiples for adding more than one item to the cart at a time.
I’ll have to explain the backend data model before I explain anything further so it makes sense. The backend data model includes Categories which are used for reporting and sorting the items into smaller groups, Items which belong to categories and represent the item that is being sold. There are also Deals which are combinations of Items which are automatically detected when they are added to the cart and represent things like meal deals which provide discounts to customers. When a sale is to be completed, a Sale is created, which holds a List of SaleItems and details when the sale was made, and who made the sale as well as the total including tax. The SaleItems show what items were sold as well as the quantity and price at the time of sale. Lastly in the data model there are Employees which act as the users.
From the main window you can pull up recent sales, to reprint a receipt or just remember what was on the order. You can also open windows to edit inventory, which is details items can be sold, view sales, to see and export reports, and employees to manage users who can access the system.
In the Inventory window you can see a excel style list of inventory items, including Categories, Items, and Deals. You can create new fields, or delete or update existing ones. This window features a windows style file browser for selecting icons, dropdown lists for selecting categories, and a tree style item selector for creating groups of items for deals. Also from the inventory window you can export the inventory data to excel and import it back in, in case you want to edit in excel rather than the inbuilt tables.
The Sales window show sales inside an adjustable history range. This window can be used to view sales in detail and generate excel reports based on a selected range.
Lastly the Employee window allows excel style table editing for Employees. The amount of information that can be viewed and changed is based on the employee’s access level.
There are a few more backend details of this program that help it work, including a backend server style SQLite database using cubeSQL which allows the database to separated from the POS station and centralized for multiple user access. The database connection manager can install the database from scratch, launch the cubeSQL server if it is on the local machine and easily update the database in a way similar to Android sqlite databases. Program files are stored in the computer’s appdata and hold things like icons, receipts and log files. One of the best things this project has taught me is how to deploy an application to the end user, which unfortunately was not taught so much at uni.
There’s still so much more to come with DreigonPOS, and I think it could be a real competitor to existing POS systems. It’d be really good if I could get a thermal receipt printer and rfid/nfc/magnetic strip reader to develop for those peripherals.