Barcode Scanning Desktop App

A desktop app for barcode scanning to enhance warehouse and inventory management.

Custom Software Development, SaaS, BI & Big Data Management, Software Re-engineering, Warehouse Management, Supply Chain Management, Logistics

Barcode scanning app

About our client

Our client is a boutique British software development agency that provides businesses with barcode scanning solutions. Their software is sometimes sold as a white-label product, customized to fit a client’s brand. Solutions they make are compatible with smartphones, tablets, and laser scanners, making it a versatile tool for managing warehouses, inventory, supply chains, and logistics. Our main task was to create the desktop application for the company's software ecosystem.


Country

the UK

Technology

Java 8, JavaScript

Cooperation

January - October 2020

When a company purchases our client's software, its managers add business details to the system.

Company information, like its logo and employee credentials, is saved to the MySQL relational database.

Product and delivery information is saved to Google’s NoSQL cloud database, Firestore.

When employees scan an item, information about it is retrieved from the Firestore database and displayed on the desktop app.

We will let you know if we see an area that can be optimized to save you time, maintenance costs or other resources. Some of our clients were start-ups when we started working with them and now they have multi-million revenue.

At the same time, an update about the item's current location is sent back to the database.

When all items from the current shipment have been scanned, the system automatically generates a delivery note on its web app’s back end.

The delivery note is then sent to our desktop app. The employee can choose to print it if necessary.

Creating a cross-platform desktop app

Our team’s main task on this project was to develop the desktop app for our client's product ecosystem. The company already had a web application through which its clients could register and set up their operations. The desktop app, however, was intended as a fast and efficient on-site solution for managing goods arriving or about to be dispatched at a certain location.

All desktop software is connected to the Firestore database via the Internet. Therefore, if a company has multiple warehouses or distribution centers, each facility can instantly access all required information about products and their current location.

Using JavaFX for the UI

We used Java 8 and the JavaFX framework to create the app. The main benefit of this approach is the support of multiple platforms, including Windows, Linux and macOS. Cross-platform compatibility also ensures consistency of user experience.

JavaFX technology allows developers to easily create appealing GUIs (Graphical User Interfaces). Furthermore, being lightweight and hardware-accelerated, JavaFX ensures optimal performance.

We made the UI responsive, meaning that interface elements automatically adjust in size to fit the dimensions of the software window.

User and device authorisation

To start using the software, employees must enter personal login information provided by their management. Afterward, they submit the serial number of the device they intend to use for barcode scanning. This authentication process enhances security, ensures product traceability and promotes employee accountability.

Item information, lists & discrepancy alerts

Our client's customers add information about products they are dealing with to the Firestore database via web app we created. Thus, whenever a warehouse employee scans an item, all the relevant information, such as brand name, manufacturer, image and description, is shown on the screen.

Additionally, the Firestore database contains information about the shipments, including the destination and quantity of transported goods. Items that belong to a particular shipment are displayed as a list. If there is a discrepancy between expected and processed items, users will see an alert. Thus, if something is missing, the program will specify which goods are absent. If an item is extra or its quantity doesn’t match, the software will spotlight it with a red background.

Manual product info submission

If a barcode is damaged and cannot be scanned, software users can manually enter a product's PLU code (price look-up code) using a keyboard or a keypad. Product quantity can be changed manually too. This can be vital if an employee accidentally scans an item twice.

Automatic delivery note generation

Once all goods from a specific shipment have been scanned, the user is sent to a page with an automatically generated delivery note. Behind the scenes, the desktop app sends a request to the web app’s back end, which returns the delivery note in PDF format.

Printer usage and integration

The app has two types of settings – the printer configuration and a timer indicating how long users can remain inactive before they are automatically logged out from the system.

When the PDF file with the delivery note is formed, users can print it. They can select a previously saved printer or add a new one. To add a new printer, users need to enter the printer’s local IP address in the designated field. A printer must be connected to the same network as the user’s computer.

Automatic logout of idle users

For security reasons, users who remain inactive for an extended period are logged out of the system. A company can determine and set up this period using a dedicated timer on the settings page.

Project databases – Firestore and MySQL

Two databases were used on the project: a NoSQL database from Google called Firestore and a relational database called MySQL. Information about barcode app clients, including company name, logo, employee authorization credentials, etc., is stored in the relational database, as it is clear what types of data to expect here. However, when it comes to product and shipment information, specifications can vary. For example, a clothing manufacturer would need to define the colors and sizes of their goods, while a pharmaceutical company – the temperature at which its products must be stored. Therefore, a NoSQL database is better for such data.

Enhancing barcode’s legacy web app

Our team also assisted our client with refactoring and optimizing their legacy web software. This involved fixing errors, adding minor new features, and enhancing its overall performance. We utilized several technologies, including JavaScript, HTML5, CSS3, Java Servlet API, and JQuery. The JQuery library simplified JavaScript-to-HTML interactions, while Java Servlet API supported the barcode's backend. Our developers interacted with it while working on desktop app development and web app improvement.

10 months

of successful cooperation between client and Softkit

3 weeks

To create the desktop app

1 professional

Dedicated to the project team