Skip to content

Desktop Module (C#) for Fingerprint Reading Solution for Time Tracking using Digital Persona© U.are.U© 4500 fingerprint reader. Web App Module (Angular) here: https://github.com/mrmgomes/ontheclock-admin

Notifications You must be signed in to change notification settings

mrmgomes/ontheclock-desktop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OTC - Desktop (for Windows)

OTC (On The Clock) is an open source application made by mrmgomes which purpose is to manage punch in/punch out fingerprint operations and it is currently under development so there are a few things missing and they WILL BE FIXED. But feel free to contribute if you feel like! :-)

THIS IS NOT BEING DEVELOPED FOR COMMERCIAL PURPOSES BY ANY MEANS.

It is composed of two modules:

  • OTC Desktop (this repository): A C# Desktop application for Windows which purpose is to manage staff members fingerprints and punching in/out through fingerprint reading. This module has been tested with fingerprint reader Digital Persona© U.are.U© 4500
  • OTC Admin : An Angular 9 Web app + a sample NodeJS API inside the /api folder

Prerequisites for building and running this module

  1. Visual Studio with .NET 4.5
  2. Own a Digital Persona© U.are.U© 4500 fingerprint reader and install its drivers on your computer
  3. Own Digital Persona SDK (put the DLL files in your project folder)
  4. A Database to store staff/punch data

Things you need to know (please read)

  • This guide will walk you through the default steps to get the solution up and running AS IS. Any modifications (i.e. different fingerprint readers, different databases systems and so on) are up to you. I've put some effort on trying to leave comments codewide to make eventual adaptations easy.
  • If you want to get things running quickly I suggest you use MongoDB as this desktop app was built on this.

Getting started

1. Clone this project

Assuming you have all the prerequites fulfilled, you can clone this repo by either running

git clone https://github.com/mrmgomes/ontheclock-desktop.git

or opening Visual Studio and selecting the option Clone a repository shown in the splash screen.

2. Open the project (skip this if you cloned this repo directly from VS)

You can open Visual Studio and browse for the project Solution File or by double-clicking it directly from your File System.

3. Install packages

Project packages are usually installed by NuGet Package Manager. This feature is enabled by default on Visual Studio. If it's not (you will get some errors on VS if packages aren't found), open Tools > NuGet Package Manager > Package Manager Settings. Then under NuGet Package Manager > General check both:

  • Manage NuGet Packages for Solution
  • Restore NuGet Packages

Missing packages should start downloading.

4. Copy Digital Persona DLL files

Copy

  • DPFPDevNET.dll
  • DPFPEngNET.dll
  • DPFPGuiNET.dll
  • DPFPShrNET.dll
  • DPFPVerNET.dll

to the bin/Debug folder

5. Configuration

Locate the Config/EnvironmentSettings.xml file and change the following values according to your database:

<database>
  <url>YOUR_DATABASE_CONNECTION_STRING</url>
  <name>YOUR_DATABASE_NAME</name>
  <punches_table_name>YOUR_PUNCHES_TABLE_NAME</punches_table_name>
  <staff_table_name>YOUR_STAFF_TABLE_NAME</staff_table_name>
  <users_table_name>YOUR_USERS_TABLE_NAME</users_table_name>
</database>

6. Start the software

Once you run the software you have two options:

  • Update a staff member fingerprint (File > Staff Member > Update Fingerprint)
  • Open the "clock" for staff members to punch in/out (Punching > Open)

Instructions

Fingerprint update

File > Staff Member > Update Fingerprint

  • Staff members must be created previously on the OTC - Admin web app;
  • Staff member's document number must be provided in order to proceed with the fingerprint update process;
  • If a match is found, the staff member's info is retrieved from the database and show in the app's interface;
  • To start the capture process the Fingerprint Scanning button must be pressed;
  • Four samples of the same fingerprint will be requested before updating staff member's fingerprint;

Punching in/out

Punching > Open

  • This form listens to the fingerprint reader events as it loads. So no further action is required to start capturing;
  • Finger must be kept on the reader until staff/punch info shows on screen;

Useful information

  • Staff data is retrieved from the database and saved into the DB/StaffRepository.xml file once the Fingerprint update process is done;
  • Fingerprint data (i.e. byte array, base64 string, images) are only saved into the DB/StaffRepository.xml and IS NOT saved in the database as this information is only relevant locally and would impact on the app performance due to its size. The fingerprint flag is set to true on each updated record. So if you use this app on several machines I advise you to copy the DB/StaffRepository.xml file manually to each of them;
  • Punch data is saved both locally to DB/PunchRepository.xml and to the database as its payload is useful for reporting (OTC - Admin Web App);

Known issues

  • After updating a member's fingerprint, opening the punching form throws an error. So the app is opened and the first form opened is the Punching one it works correctly;

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

About

Desktop Module (C#) for Fingerprint Reading Solution for Time Tracking using Digital Persona© U.are.U© 4500 fingerprint reader. Web App Module (Angular) here: https://github.com/mrmgomes/ontheclock-admin

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages