Working with a Fingerprint Scanner
I was busy at the last moment. I got a project to build a web application that works on mobile and desktop. It also should work with a fingerprint scanner to authenticate users of a certain role.
What an amazing experience to do this project. It is a warehouse solution and was complicated enough. Here are the specifications:
- The web application should be responsive. Work great on mobile and desktop. Because some users of certain roles need to open it on smartphones and others such as admin need to open it on desktop computers such as laptops.
- The web application should be able to scan the QR (Quick Response) code. Another challenge here because it is a web application and not a mobile application.
- Importing data from Excel spreadsheets.
- Sending email notifications.
- Typical user roles authorization and not important stuff to discuss here.
What I want to explain here is the first point of the specification above. But the second one is interesting too. My client was impressed. They knew the project was difficult and that was why they assigned me. Let's get started with the second one.
Scanning a QR code on a web application is rare. Thanks to QR Scanner that made me able to do that. It is working on desktop using webcam and mobile using the rear camera.
Scanning a fingerprint on a web application is never happen. So, I made another application for the Windows desktop, the operating system that my client use for the production.
The hardware I picked is ZK9500. Unfortunately, it works only for Windows. There is no driver/software to make it works on any operating system such as macOS, Linux, iOS, or Android. That was what I know. Maybe I missed it.
To make the application that able to work with the hardware, what you need is SDK (Software Development Kit). The available programming languages of the SDK are Java, C#, C/C++, and VB.NET. SDK is a library in some programming languages with documentation. You need to import it before you can use the provided function/method.
I picked Java because that is the most familiar programming language for me in all of them. I worked on Eclipse, a simple IDE (Integrated Development Environment), to make a Java Swing application.
I haven't worked with Java for a long time. That was the moment that I need to make the Java Swing application again. The last one is about ten years ago.
Another struggle was I need to see a sample application of Java in advance. The sample code was made about five years ago. So I need to replicate the environment, the JDK (Java Development Kit), and the Eclipse version, then compile and build the application.
The last one is communicating them. Of course it is using HTTP endpoints. I made some for it.