{"id":28273663,"url":"https://github.com/darukio/pyzktecoclocks","last_synced_at":"2026-04-25T12:32:45.307Z","repository":{"id":291689213,"uuid":"764640862","full_name":"Darukio/PyZKTecoClocks","owner":"Darukio","description":"GUI for managing ZKTeco attendance clocks, offering manual operations such as device reboot, connection testing, time synchronization and on-demand attendance data download.","archived":false,"fork":false,"pushed_at":"2025-05-06T02:33:07.000Z","size":2646,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-15T19:45:40.342Z","etag":null,"topics":["attendance-management-system","eventlet","pyqt5","python","python-3","windows-10","windows-11","zkteco"],"latest_commit_sha":null,"homepage":"https://darukio.github.io/PyZKTecoClocks/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Darukio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-02-28T12:58:16.000Z","updated_at":"2025-05-06T02:33:11.000Z","dependencies_parsed_at":"2025-05-06T03:37:44.413Z","dependency_job_id":null,"html_url":"https://github.com/Darukio/PyZKTecoClocks","commit_stats":null,"previous_names":["darukio/pyzktecoclocks"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Darukio/PyZKTecoClocks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darukio%2FPyZKTecoClocks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darukio%2FPyZKTecoClocks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darukio%2FPyZKTecoClocks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darukio%2FPyZKTecoClocks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Darukio","download_url":"https://codeload.github.com/Darukio/PyZKTecoClocks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darukio%2FPyZKTecoClocks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32262801,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["attendance-management-system","eventlet","pyqt5","python","python-3","windows-10","windows-11","zkteco"],"created_at":"2025-05-21T00:19:09.942Z","updated_at":"2026-04-25T12:32:45.285Z","avatar_url":"https://github.com/Darukio.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PyZKTecoClocks\n[![Docs](https://img.shields.io/badge/docs-online-blue.svg)](https://darukio.github.io/PyZKTecoClocks/) [![Service](https://img.shields.io/badge/service-online-blue.svg)](https://github.com/Darukio/PyZKTecoClocksService)\n\n## [![English](https://img.shields.io/badge/language-en-red.svg)](#)\n\n**Library and applications to manage ZKTeco attendance clocks from Python.**\n\n### Features\n\n- **Attendance Clock Program**: Desktop interface for manual operations (restart devices, test connections, synchronize time, and download attendance records).\n- **Attendance Clock Service**: Executable to schedule and automate attendance tasks in the background.\n- Flexible configuration using `config.ini`, `schedule.txt` and `info_devices.txt`.\n- Detailed logging and data backup capabilities in `%ProgramData%`.\n\n### Installation\n\n#### Prerequisites\n\n- Python 3.7+\n- Windows 10 or later\n\n#### Dependencies\n\nAll required packages are listed in `requirements.txt`.\n\n```bash\n# Run in cmd or PowerShell as administrator\nSet-ExecutionPolicy RemoteSigned\n# If needed, navigate to the project directory\ngit clone https://github.com/Darukio/PyZKTecoClocks.git \u0026\u0026 cd PyZKTecoClocks\ngit submodule update --remote --recursive\npython install.py  # Installs dependencies globally\n```\n\n#### Building Executables\n\n**Program:**\n\nRun the following command in a Command Prompt or PowerShell window.\n\n```bash\npyinstaller.exe --noconsole --clean --onefile \\\n  --version-file version_info.txt \\\n  --hidden-import=eventlet.hubs.epolls \\\n  --hidden-import=eventlet.hubs.kqueue \\\n  --hidden-import=eventlet.hubs.selects \\\n  --hidden-import=dns \\\n  --hidden-import=dns.dnssec \\\n  --hidden-import=dns.e164 \\\n  --hidden-import=dns.hash \\\n  --hidden-import=dns.namedict \\\n  --hidden-import=dns.tsigkeyring \\\n  --hidden-import=dns.update \\\n  --hidden-import=dns.version \\\n  --hidden-import=dns.zone \\\n  --hidden-import=dns.versioned \\\n  -n \"Programa Reloj de Asistencias\" \\\n  -i \"resources/fingerprint.ico\" \\\n  --add-data \"json/errors.json;json/\" \\\n  --add-data \"resources/window/*;resources/window\" \\\n  --add-data \"resources/system_tray/*;resources/system_tray\" \\\n  --add-data \"resources/fingerprint.ico;resources/\" \\\n  --noupx \\\n  --log-level=INFO \\\n  --debug all \\\n  main.py\n```\n\n### Project Structure\n```\n.\n├───docs                                # Documentation for MkDocs (includes USAGE.md)\n│   └───mkdocs\n│       └───docs                        # Actual Markdown files used by MkDocs\n│                                       # (index, usage, installation, etc.)\n├───json                                # JSON files used as data persistence\n├───resources                           # Visual and UI resources\n│   ├───system_tray                     # Icons and assets used in the system tray\n│   └───window                          # Files related to application windows\n└───src                                 # Main source code of the program\n    ├───business_logic                  # Core business logic of the application\n    │                                   # Data processing, validation, business rules\n    ├───common                          # Shared code between the main program and the service\n    │   ├───business_logic              # Reusable business logic\n    │   │   └───models                  # Common data models (e.g. Attendance, Device)\n    │   ├───connection                  # Modules for connecting to devices\n    │   │   └───zk                      # Specific implementation for ZKTeco devices\n    │   └───utils                       # Utility functions, helpers, validators, logging, etc.\n    └───ui\n        └───components                  # UI components (widgets, windows, dialogs)\n```\n\n### Usage\n\nFor detailed installation and usage instructions, see the [Usage Guide](https://darukio.github.io/PyZKTecoClocks/USAGE/). Key sections include:\n\n- [Introduction](https://darukio.github.io/PyZKTecoClocks/USAGE/#introduccion)\n- [User Interface](https://darukio.github.io/PyZKTecoClocks/USAGE/#interfaz-de-usuario)\n- [Attendance Clock Program](https://darukio.github.io/PyZKTecoClocks/USAGE/#programa-reloj-de-asistencias)\n- [Attendance Clock Service](https://darukio.github.io/PyZKTecoClocks/USAGE/#servicio-reloj-de-asistencias)\n- [Configuration File](https://darukio.github.io/PyZKTecoClocks/USAGE/#archivo-de-configuracion-configini)\n\n---\n\n## [![Español](https://img.shields.io/badge/language-es-red.svg)](#)\n\n**Librería y aplicaciones para gestionar relojes de asistencia ZKTeco desde Python.**\n\n### Características\n\n- **Programa Reloj de Asistencias**: Interfaz de escritorio para operaciones manuales (reiniciar dispositivos, probar conexiones, sincronizar hora y descargar marcaciones).\n- **Servicio Reloj de Asistencias**: Ejecutable para programar y automatizar tareas de marcaciones en segundo plano.\n- Configuración flexible mediante `config.ini`, `schedule.txt` e `info_devices.txt`.\n- Registro detallado (logs) y capacidad de copia de seguridad de datos en `%ProgramData%`.\n\n### Instalación\n\n#### Prerrequisitos\n\n- Python 3.7+\n- Windows 10 o superior\n\n#### Dependencias\n\nTodos los paquetes necesarios están listados en `requirements.txt`.\n\n```bash\n# Ejecutar en cmd o PowerShell con permisos de administrador\nSet-ExecutionPolicy RemoteSigned\n# Si es necesario, navegar al directorio del proyecto\ngit clone https://github.com/Darukio/PyZKTecoClocks.git \u0026\u0026 cd PyZKTecoClocks\ngit submodule update --remote --recursive\npython install.py  # Instala las dependencias de forma global\n```\n\n#### Creación de ejecutables\n\n**Programa:**\n\nEjecutar el siguiente comando en cmd o PowerShell.\n\n```bash\npyinstaller.exe --noconsole --clean --onefile \\\n  --version-file version_info.txt \\\n  --hidden-import=eventlet.hubs.epolls \\\n  --hidden-import=eventlet.hubs.kqueue \\\n  --hidden-import=eventlet.hubs.selects \\\n  --hidden-import=dns \\\n  --hidden-import=dns.dnssec \\\n  --hidden-import=dns.e164 \\\n  --hidden-import=dns.hash \\\n  --hidden-import=dns.namedict \\\n  --hidden-import=dns.tsigkeyring \\\n  --hidden-import=dns.update \\\n  --hidden-import=dns.version \\\n  --hidden-import=dns.zone \\\n  --hidden-import=dns.versioned \\\n  -n \"Programa Reloj de Asistencias\" \\\n  -i \"resources/fingerprint.ico\" \\\n  --add-data \"json/errors.json;json/\" \\\n  --add-data \"resources/window/*;resources/window\" \\\n  --add-data \"resources/system_tray/*;resources/system_tray\" \\\n  --add-data \"resources/fingerprint.ico;resources/\" \\\n  --noupx \\\n  --log-level=INFO \\\n  --debug all \\\n  main.py\n```\n\n### Estructura del proyecto\n\n```\n.\n├───docs                                # Documentación para MkDocs (incluye USAGE.md)\n│   └───mkdocs\n│       └───docs                        # Archivos Markdown reales usados por MkDocs\n│                                       # (índice, uso, instalación, etc.)\n├───json                                # Archivos JSON usados como persistencia de datos\n├───resources                           # Recursos visuales y de interfaz gráfica\n│   ├───system_tray                     # Iconos y recursos usados en la bandeja del sistema\n│   └───window                          # Archivos relacionados con las ventanas de la aplicación\n└───src                                 # Código fuente principal del programa\n    ├───business_logic                  # Lógica de negocio principal de la aplicación\n    │                                   # Procesamiento de datos, validación, reglas de negocio\n    ├───common                          # Código compartido entre el programa principal y el servicio\n    │   ├───business_logic              # Lógica de negocio reutilizable\n    │   │   └───models                  # Modelos de datos comunes (p. ej. Attendance, Device)\n    │   ├───connection                  # Módulos para conectar con dispositivos\n    │   │   └───zk                      # Implementación específica para dispositivos ZKTeco\n    │   └───utils                       # Funciones utilitarias, helpers, validadores, logging, etc.\n    └───ui\n        └───components                  # Componentes de la interfaz (widgets, ventanas, diálogos)\n```\n\n### Uso\n\nPara instrucciones detalladas de instalación y uso, consulte la [Guía de Uso](https://darukio.github.io/PyZKTecoClocks/USAGE/). Secciones destacadas:\n\n- [Introducción](https://darukio.github.io/PyZKTecoClocks/USAGE/#introduccion)\n- [Interfaz de usuario](https://darukio.github.io/PyZKTecoClocks/USAGE/#interfaz-de-usuario)\n- [Programa Reloj de Asistencias](https://darukio.github.io/PyZKTecoClocks/USAGE/#programa-reloj-de-asistencias)\n- [Servicio Reloj de Asistencias](https://darukio.github.io/PyZKTecoClocks/USAGE/#servicio-reloj-de-asistencias)\n- [Archivo de configuración](https://darukio.github.io/PyZKTecoClocks/USAGE/#archivo-de-configuracion-configini)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarukio%2Fpyzktecoclocks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarukio%2Fpyzktecoclocks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarukio%2Fpyzktecoclocks/lists"}