Hello there ERPNext Fellow Users, I am new to ERPNext but it didn’t take me long for to fall in love with the system . I don’t have the technical expertise in the development part and hence i am writing here with an idea of sponsoring / co-sponsoring a module development.
I saw that there is python script available which does the syncing directly from the attendance machine .
But this solution requires you to run the script on a local machine on same local network with attendance machine . But this gets complicated in environments where the organization is having multiple branches , They have to have a dedicated machine running the script in each branch . ( Dedicated machine for avoiding any human error issues ) . This might be good method for someone who cares data privacy and doesn’t mind wasting resources in such multi-location scenario.
I saw that there is a website which is providing Closed Source Commercial API service .
So these guys have their service broken down in multiple part and charging for each of those parts separately, price is not a problem but data privacy is. There also comes a question that why can we not have such thing made directly into our ERPNext.
I tried to understand a little bit on how these machines work based on the Python Script as mentioned above and some googling and i found that to connect to these biometric attendance machines remotely requires things such as port forwarding and Static IP address / DDNS . Further they need to connect to an API Server which processes the data forwards the data to ERPNext via API PUSH.
Anyway in conclusion what i propose is.
Is it possible to make a module where the machines can be connected directly to ERPNext.
This module will have option to add machine by selecting Make , Model , Serial Number etc.
Machines can be managed organized by location, company etc here easily.
This module further have links with HR Module where an user can be linked directly with a machine of your choice.
With this development there won’t be need of local machine to run script upon and instead the attendance machine is directly connected to ERPNext via internet.
There may be requirement of Port Forwarding , Static IP / DDNS at clients end but if possible can we also do development where the machines can use their cloud service connection settings to connect to ERPNext ( Example : ZKTeco does ADMS )
Would like to hear from you guys on this , is it feasible to make such solution ?. How much it will cost ? , Are there other peoples interested to co-sponsor this development with me and bring this easy to use solution to whole ERPNext Fans .
@shubhamtripathi at present there is no way to integrate the biometric device directly with erpnext. you have to rely on the web api like the you shared: Biometric Web API for Time and Attendance System | BioAPI | Cams Biometrics , The biometic machine has only the employee id, and api communicates only the employee id + attendance time. With these information, shared through API with ERPNext, you will not have any issue with privacy issue. As the API egnine does not maintain any attendance data or user information other than only user id recieved through biometric device.
At present, the in market, above web api link is only channel which pushes the data to the erpnext directly from biometric device without using any software support or public ip demand for the biometric device.
This is not quite correct. While the script indeed requires a machine, it does not have to be a local machine. You can run the tool in the same machine as your ERPNext instance and still achieve the same result. So the tool does not have to be run separately from your ERPNext machine.
This is also not the case. I have successfully used the script on one computer to integrate multiple branches spread across different locations and they all sync to my ERPNext instance via the single tool.
This is essentially a summary of how the script works. However, depending on how your branch network infrastructure is set up, you can achieve your desired result. You don’t need port forwarding and static ip and DDNS all at the same time. Your current network infrastructure will determine which of these you will require to achieve connectivity between your biometric machine and the sync tool.
The 3rd party service provider has invested time and resources to develop the integration for many kinds of devices and they also have servers running as the tools require this for the sync to happen, essentially serving as the bridge between your ERPNext instance and your biometric machine. So it is not surprising that they would want to charge for the service. However, your concerns about data privacy are valid.
To summarise, you can indeed use the tool to achieve the same result. The limitations however are as you have already noted which include having to know how to set port forwarding for all your branches and the tool only supports Zkteco devices. However, if you are willing to overlook these limitations, you can very well achieve integration while keeping full control of your data as this seems to be a key element in your decision.
On your suggestion to build the integration into ERPNext, it might be possible to build it into ERPNext but not as a core module. ERPNext is gradually transitioning away from a monolithic system and encouraging the development of features to be installed as separate apps. So I think this is where the focus should be in terms of your proposition. It is however left to be seen if there will be enough interest to sponsor/take on the project as I don’t know if there’s enough interest in the community in biometric attendance integration to co-sponsor it. But it is an interesting venture I might be interested in even though I have already achieved integration using the existing tool. I will be watching this thread to see if interest picks up.
@shubhamtripathi thanks for your detailed review about the issue. If possible can you please provide us more insights regarding how you achieved integration for multiple branches spread across different locations. Basically we need to integrate our device with an erpnext instance available on hosted cloud server. We have already auto run the python script on our instance but we are not able to fetch the biometric device on it. It will be a great help to the community.