Data often relates to real world items which have barcodes on them. Barcodes allow for quicker discovery, update and tracking of items. Wouldn't it be great if I can perform actions just by scanning a barcode. There are so many uses where it applies, for example:
- Managing entry of personal to a construction site when you are tracking the people at a construction site you need to scan the ID passes and update who is on site for security and safety.
- Asset checking and servicing when you have items that need to be checked or services for instances machinery at a construction site or factory, a travelling engineer assessing router at customer's home etc.. Here an engineer needs to be able to find details and register when and how they have serviced them.
- Stock Inventory Checking where users have large numbers of products or items they need to check into a location such as a warehouse or store room. Each item needs to be counted and then the stock number update manually.
- Document receipt often key documents have barcodes on them such as accountancy documents being received. These can simply be handled with a scan.
I also noticed that this idea was suggested on the inspiration board so other have a similar need for this kind of application.
What it does
Barcode scanner allows you to embed a camera based barcode scanner directly inside your Monday dashboards and boards. You don't need to install anything, it works on desktop and mobile and supports most common barcode formats.
Scan anything with all common barcode formats supported:
- Code 39
- Code 128
- QR Code
- Data Matrix
On scan fully configure the action that you want the barcode scanner to perform:
- Get Item Details you can configure how barcode scanner uses the scanned result and which field it will look up against you data table. When a result is found you the item will be displayed at the bottom of the screen with ability to open up the item view or update view.
- Modify Item when an item is scanned you can set how fields are updated. For instance Status field to "Scanned", Last Scan Date to current time, Stock count to be incremented by one.
- Add Update here an update post can be created on the item. This is ideally when you want to have a log of when items were scanned.
How I built it
I built it using the Monday OS Framework and created board view and dashboard widgets. I then connected Ant Design, ZXing and optimised the system to work on Monday OS. Then I looked at making the application work on mobile and direct via URL. This required an AWS Lambda + Gateway + Dynamo to handle the authentication process to pass in the token.
Challenges I ran into
The challenges I ran into were:
- making the application work on mobile to best enable a workforce it requires the app to be accessible on both desktop and mobile for factor so it really can be used in the engine house of an organisation or team. To do this I had to understand how the Monday mobile app works (which does not have camera permissions). I was able to use the dashboard widget and needed to detect when the app is running on mobile and trigger a push to the authentication process when you launch the scanner. If it is on mobile it leverages I had to resolve the differences between running separately and inside a dashboard. Now it works well and allows anyone to use barcode scanners on their mobile device.
- performance of the app it needs to work rapidly to gain the trust of the users. To do this I leveraged the zxing library but optimised a few of the image processing strategies to work in the Monday framework. This improved the recognition of barcodes tested by 20-30%.
Accomplishments that I'm proud of
I am proud of delivering an application that works well. I was not sure that it was possible until I had completed the build. Now that it is up and working I think it has turned out better than I had anticipated.
What I learned
I learned a lot about the monday js sdk and how it can be leveraged for really powerful applications. I also gained more understanding about the way barcode scanning is possible and how it can be optimised.
What's next for Barcode Scanner widget
Barcode scanner's next stage is to optimise the mobile journey and it would be great to talk to the monday team to understand how to facilitate that. Also I think that barcode scanner would next look at image based OCR capabilities to establish a full visual recognition solution for monday boards.