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
Technology
Cooperation
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