Skip to content

binhtt6/Attendance-Sync

 
 

Repository files navigation

🕒 Attendance Sync App

A Frappe/ERPNext application for automatically synchronizing attendance data from multiple biometric devices to the Frappe HRMS system.


📖 Overview

This app provides seamless integration between Hikvision (and compatible) biometric attendance devices and Frappe HRMS. It automatically fetches attendance logs from multiple devices and creates Employee Checkin records in the system.


✨ Features

  • Multi-Device Support: Configure and manage multiple attendance devices
  • Automatic Sync: Scheduled background job to fetch attendance data daily
  • Manual Sync: On-demand attendance data fetching for specific time periods
  • Duplicate Prevention: Automatically detects and prevents duplicate check-in records
  • Real-time Processing: Processes attendance logs in real-time
  • Employee Mapping: Links device employee IDs with Frappe Employee records

⚙️ Configuration

1. Device Configuration

Create Device Configuration records for each biometric device:

  • Go to Device Configuration
  • Click New
  • Fill in the device details:
Field Description Required
Device Name Unique identifier for the device ✅ Yes
Device IP Public IP address of the device (e.g., 103.237.255.40) ✅ Yes
Major Event type code (typically 5 for access control events) ✅ Yes
Minor Sub-event type code (typically 0 for general access) ✅ Yes
Device User Username for device authentication ✅ Yes
Device User Password Password for device authentication ✅ Yes

2. Employee Setup

Ensure employees have their device IDs configured:

  • Go to HR > Employee
  • Open an employee record
  • Set the Attendance Device ID field to match the employee ID in the biometric device

🚀 Usage

Automatic Daily Sync

  • Attendance data is fetched automatically from all configured devices daily.
  • No manual intervention is required.

Manual Sync

To fetch attendance data manually:

  1. Go to Device Configuration
  2. Select a device record
  3. Click Fetch Check-in
  4. Specify the date range
  5. Click Fetch to queue the attendance sync

The system will process the request in the background and create Employee Checkin records.


🛠️ API Integration

  • Secure Communication: Uses Digest Authentication with devices
  • Pagination Support: Handles large datasets efficiently
  • Event Filtering: Filters access control events (Major=5)
  • Error Handling: Robust handling for network issues

📝 Troubleshooting

Common Issues

  • No employee found for device ID Ensure the employee has the correct Attendance Device ID set and it matches the device record exactly.

  • Authentication failures Check device IP, username, password, and network connectivity.

  • Duplicate check-ins Duplicates are automatically prevented based on timestamp and employee.

  • No data fetched Verify the device has attendance logs for the specified period and the Major/Minor codes match the event types.

  • Logs Check background job logs and console for detailed error messages and sync status.


🔒 Permissions

  • Only users with System Manager role can configure devices and manually trigger syncs
  • Attendance data visibility is based on standard HRMS permissions

📞 Support

For any issues, feature requests, or collaboration: 📧 Email: omfsakib@gmail.com 🌐 Visit: omfsakib.pythonanywhere.com

📄 License

This app is licensed under the same terms as Frappe/ERPNext. See the license.txt file in the app directory for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 90.4%
  • JavaScript 9.6%