Share My Creation Point Of Sales (POS)

This is a Point of Sales (POS) system under development.
The basic functions such as Discount, Price override, Barcode scan, Item Void, Hold/Call Bill and Reprint Receipt are available. It also has an Admin or "backend" login for changing system setting, manage users and inventory and generate sales report. It can run on Linux desktop and Windows. I am also developing an Android version and plan to eventually release iOS and macOS versions. Desktop version prints to thermal receipt printer (80mm) using USB, WiFi and serial port and Android version can print to BLE/Bluetooth portable printer (50mm). I am not selling the source code but I hope this software will become our company's product for many years to come.

1.png
2.png

3.png
4.png


Cloud Dashboard (Web) - real-time synchronisation of sales (under development)
1676985887159.png


Customer Center (Web) - request trial and order license (also build in API for license activation)
1719460465574.png


Customer Support (Web) - Support Ticketing System
 
Last edited:

AnandGupta

Expert
Licensed User
Longtime User
Your color combinations are always soothing to eyes.
How you manage to get them ?
 

aeric

Expert
Licensed User
Longtime User
Anyone interested can install a current beta version. Default installation expires in 7 days. Sign up and activate the software to extend to 30 days. I am testing the license server. It’s not bulletproof to stop piracy. Just a proof of concept.

note: No need to sign up from the web. Sign up can be done through the app when opening the app second time.
 
Last edited:

aeric

Expert
Licensed User
Longtime User
Dear beta testers,
Sorry that I forgot to tell about the log in accounts.
Cashier: staff id: 1, pin code: 1
Admin: staff id: 9, pin code: 9

You can check items (inventory) after log in as admin. For testing, you can key in item code 001 to 006 and press enter key at the number pad on the right. Button A is a shortcut key to enter 001 or 002 for my testing purpose. You can also print out the barcode to scan with barcode scanner. This is enabled by activate the rapid scan function. Button C is for Cancel the selected item. Reports are not completed for now. More functions will be added later. This system is designed to run on a very old Posiflex POS hardware with 1024x768 touch screen on Linux. So far it works fine. I haven’t tested it on a POS hardware running Windows OS.

The database is saved in C:/Users/<YourUserName>/AppData/Roaming/Cxxxxxxxxxx/Mxxxxx (edited)
You can open the SQLite file to see the tables.

Please ask if you have any question.

Edit: Sample barcodes removed
 
Last edited:

aeric

Expert
Licensed User
Longtime User
Dear beta testers,

The new version is released but is not working with old database. If you are registered and activated the license, please keep the license file and uninstall version 1.0.0 beta 5. Download and install the latest version 1.0.0 beta 6 then replace the license file. License should be automatically updated for another 30 days. Smoother update will be consider once this software is more stable.

The current version has some improvements in UI design, daily sales reports, end of day report, payment confirmation dialog and cashier layout.

edit: Download link removed

1647197800659.png
1647197900548.png
1647197279394.png
 
Last edited:

Magma

Expert
Licensed User
Longtime User
Hi aeric..
tried to run it at Windows 7 - 64bit and got the following error...

B4X:
Call B4XPages.GetManager.LogEvents = True to enable logging B4XPages events.
MD01-0007-EVAL-0001
helper$ResumableSub_CheckWin11.resume (java line: -1)
java.lang.NumberFormatException: For input string: "Microsoft Windows [???? 6.1.
7601"
        at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(Unkn
own Source)
        at java.base/jdk.internal.math.FloatingDecimal.parseDouble(Unknown Sourc
e)
        at java.base/java.lang.Double.parseDouble(Unknown Source)
        at b4j/xxxxxx.xxx.xxx.beta.helper$ResumableSub_CheckWin11.resume(Un
known Source)
        at b4j/anywheresoftware.b4a.BA.checkAndRunWaitForEvent(Unknown Source)
        at b4j/anywheresoftware.b4a.BA.raiseEvent2(Unknown Source)
        at b4j/anywheresoftware.b4a.BA$3.run(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLat
er$10(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLat
er$11(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unk
nown Source)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native M
ethod)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(
Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)

seems you are reading "ver"
but in Greek versions get this:

B4X:
Microsoft Windows [Έκδοση 6.1.7601]

Έκδοση = ver
 
Last edited:

aeric

Expert
Licensed User
Longtime User
Hi aeric..
tried to run it at Windows 7 - 64bit and got the following error...

B4X:
Call B4XPages.GetManager.LogEvents = True to enable logging B4XPages events.
MD01-0007-EVAL-0001
helper$ResumableSub_CheckWin11.resume (java line: -1)
java.lang.NumberFormatException: For input string: "Microsoft Windows [???? 6.1.
7601"
        at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(Unkn
own Source)
        at java.base/jdk.internal.math.FloatingDecimal.parseDouble(Unknown Sourc
e)
        at java.base/java.lang.Double.parseDouble(Unknown Source)
        at b4j/xxxxxx.xxx.xxx.beta.helper$ResumableSub_CheckWin11.resume(Un
known Source)
        at b4j/anywheresoftware.b4a.BA.checkAndRunWaitForEvent(Unknown Source)
        at b4j/anywheresoftware.b4a.BA.raiseEvent2(Unknown Source)
        at b4j/anywheresoftware.b4a.BA$3.run(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLat
er$10(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLat
er$11(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unk
nown Source)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native M
ethod)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(
Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)

seems you are reading "ver"
but in Greek versions get this:

B4X:
Microsoft Windows [Έκδοση 6.1.7601]

Έκδοση = ver
Sorry, I never expected Windows in Greek version. Maybe I fix it in next update.
 
Last edited:

Magma

Expert
Licensed User
Longtime User

Magma

Expert
Licensed User
Longtime User
Hi there...

just download it.. installed ok.. but when sign up completed... and enter ther serial number sent...

test1.jpg
test2.jpg


by the way after two or three... tries... and one cancel... took in.. saying me 0 days plan... but tried and work as 1 and as 9 user...

I think your idea made it touch "case" the letters is very good... excellent i can say... you can make little bigger space of rows and font at the reports/b4xtable and will be better !!!

In general lines I believe that you have "all" setupped clean ok... ofcourse i was working from virtualbox and was a little slow... but seems ok.

1) One thing you can have the option ofcourse you can have it as admin when the cashier press print to auto-print - direct to printer without asking again to press button
print...

2) One other thing if you want to change when writting item code like 001 and pressing enter from the keyboard you can make it call the enter of touch... also if typing "1" and not "001" and if there isn't "1" item -> make the POS automatically select "001" - i believe will be nice (or you can set it as an option - to count zeros in front or not)...

I liked the "touch" interface a lot... but you can sync the keyboard too..

Perfect Job ! :)
 
Last edited:

aeric

Expert
Licensed User
Longtime User
but when sign up completed...
I also found there are problems connecting to the server recently. Not sure what was the issue. I just renewed Let’s Encrypt last month. Trying a few times will work.

I think your idea made it touch "case" the letters is very good...
Which part?
I am developing a touch friendly system because I found there are many systems not touch friendly in the market.
you can make little bigger space of rows and font at the reports/b4xtable
I agree. I need more time to fine tune the B4XTable and reports layout. I just finished the "Statement of Account" report which was requested by a friend. Took me 3 days to finish up the report using PDFJet and B4XTable.

In general lines I believe that you have "all" setupped clean ok... ofcourse i was working from virtualbox and was a little slow... but seems ok.
Generally, it is designed not to work in VirtualBox because I have licensing protection build-in. About performance, I don't worry much as I design to make it run on old machines on Linux. I also tested to run it on a Raspberry Pi 4 model B with RasberryPi OS and Ubuntu 22.04. It also run very smooth on real POS machine with 2GB RAM and 1.9GHz Celeron Duo Core.

1) One thing you can have the option ofcourse you can have it as admin when the cashier press print to auto-print - direct to printer without asking again to press button
print...
Yes, this feature is already build in but is turned OFF by default. You can turn it on from Admin -> System Settings -> Print -> Send To Print.
Make sure a thermal receipt printer is already installed and configured under "Receipt Printer".

1651768333582.png


2) One other thing if you want to change when writting item code like 001 and pressing enter from the keyboard you can make it call the enter of touch... also if typing "1" and not "001" and if there isn't "1" item -> make the POS automatically select "001" - i believe will be nice (or you can set it as an option - to count zeros in front or not)...
It is up to user to use whatever item code format. Since I design as a touch numpad input, it must be in n-digit number format.
User can input "1", "01", "001" if their shop has less items to sell.
For this item or stock, it also has a Barcode field. I am starting with EAN-13. For good barcode scanner like Datalogic brand, it can quickly send the code to raise the TextEdit changed event but some cheap handheld scanners are too slow. That's why I add a rule to activate change event when it reach the barcode length. For good scanner, the length can be set to 0.

1651768869435.png


I liked the "touch" interface a lot... but you can sync the keyboard too..
Actually I want to minimize/avoid using keyboard and mouse input. The system is design for touch screen devices. I will enable Enter key press in the future.

Thanks for testing and providing feedback.
The development is a bit slow but at least there are some progress.

I will share more features in the future. Some features are hidden in the SQLite database.
For example, I have a table name "MD_SalesTempScannedItems". It is used to store scanned barcodes from an Android app. Meaning, I have a B4A app to work as a backup barcode scanner. This B4A app will send the barcodes to a B4J Server and then send to the POS system.

If you have more questions, welcome to ask.
 

Magma

Expert
Licensed User
Longtime User
It is up to user to use whatever item code format. Since I design as a touch numpad input, it must be in n-digit number format.
User can input "1", "01", "001" if their shop has less items to sell.
For this item or stock, it also has a Barcode field. I am starting with EAN-13. For good barcode scanner like Datalogic brand, it can quickly send the code to raise the TextEdit changed event but some cheap handheld scanners are too slow. That's why I add a rule to activate change event when it reach the barcode length. For good scanner, the length can be set to 0.
....you have a timer for scanner... ? reminds one techniquei had... in my invoice-erp system created in vb6...

i think is generally better add +Enter (at settings of barcode scanner)

A POS, Invoice, ... or ERP general.. take a lot of time... I understand... and if have changes at law .. it will keep you busy a lot !!! believe me (sometimes is better making simple games and then forget them)...


Yes, this feature is already build in but is turned OFF by default. You can turn it on from Admin -> System Settings -> Print -> Send To Print.
super !!!!

I am whishing you the best... your devotion will be paid, i am pretty sure for that !

a small ad,may be in Google Ads in a good price for end customers will be very helpful to sell it at least at your country ! /// May be you can sell it with a cheap system...
 

aeric

Expert
Licensed User
Longtime User
i think is generally better add +Enter (at settings of barcode scanner)
It was not working for my Clarigo C11 barcode scanner.
So, I will add more settings in the future for users to choose which work best for their device.

I haven't had a fix selling price for this system. Maybe $200+ for one time license with 1 year support and free paper roll receipts.
 
Top