C# API Development for Comprehensive Biometric Device Management

Job ID: 38627813

Budget: $250 – $750 USD

Description:

We are seeking an experienced C# developer to create a RESTful API using .NET framework to manage biometric devices (e.g., ZKTeco, uFace 800, MB2000). The API will support a range of functionalities, including device registration, user management, biometric data handling, synchronization, transaction logs, system configuration, and receiving automatic transaction data pushed by the devices.

Features:
1. Device Management
Register, Update, and Remove Devices
API endpoints to manage biometric devices within the system.
Monitor device status (online/offline) and view device details.
Endpoints:
GET /api/devices: Retrieve all registered devices.
GET /api/devices/{deviceId}: Get details of a specific device.
POST /api/devices: Register a new device.
PUT /api/devices/{deviceId}: Update device details.
DELETE /api/devices/{deviceId}: Remove a device from the system.
GET /api/devices/{deviceId}/status: Check device connection status.

2. Time and Date Management
Configure Device Time and Date
API to set the date and time on individual devices and sync them with the server time.
Endpoints:
POST /api/devices/{deviceId}/set-time: Set time/date for a specific device.
GET /api/devices/{deviceId}/get-time: Retrieve current time from the device.

3. User Management
Add, Update, and Remove Users
API endpoints to manage user data on devices and store biometric data in the cloud.
Endpoints:
GET /api/users: Retrieve a list of all users.
GET /api/users/{userId}: Get details of a specific user.
POST /api/users: Add a new user.
PUT /api/users/{userId}: Update existing user data.
DELETE /api/users/{userId}: Remove a user from the system.

4. Biometric Data Handling
Retrieve and Manage Biometric Data (Fingerprints, Face Templates)
API to manage users' biometric data (fingerprint and face templates) on devices.
Endpoints:
GET /api/devices/{deviceId}/users/{userId}/fingerprints: Get fingerprint data from a device and save in DataBase.
GET /api/devices/{deviceId}/users/{userId}/face-template: Get face template data from a device and save in DataBase.
POST /api/devices/{deviceId}/users/{userId}/fingerprints: Upload fingerprint data to a device.
POST /api/devices/{deviceId}/users/{userId}/face-template: Upload face template to a device.

5. Attendance and Transaction Logs
Retrieve and Manage Attendance Logs
API to retrieve and manage attendance transaction logs from devices.
Endpoints:
GET /api/transactions: Retrieve all attendance logs.
GET /api/transactions?deviceId={deviceId}&date={date}: Get logs for a specific device on a specific date.
GET /api/transactions/{transactionId}: Get detailed information on a specific transaction.
GET /api/devices/{deviceId}/transactions: Get all logs for a specific device.
POST /api/devices/{deviceId}/sync-transactions: Sync attendance logs from a device.

6. Transaction Receiving API (Auto-Push Data)
Receive Automatic Transactions Pushed by Devices
API endpoint to automatically receive transaction logs (attendance records) pushed by biometric devices when a new transaction occurs (e.g., user check-in or check-out).
Endpoint:
POST /api/transactions/receive: Receive and process transaction data pushed by the device (e.g., user, device ID, timestamp, and biometric data).

7. Device Synchronization
Sync Device Data (Users, Transactions)
API endpoints for syncing biometric data between devices and the cloud database.
Endpoints:
GET /api/sync/logs: Retrieve sync logs for all devices.
POST /api/sync/devices/{deviceId}: Manually trigger sync for a device.
GET /api/sync/devices/{deviceId}: Check last sync status for a device.
GET /api/sync/status: Get the overall sync status for all devices.

8. Alerts and Error Management
Monitor Device Alerts and Errors
API to retrieve and manage system alerts for device disconnections, sync errors, and other issues.
Endpoints:
GET /api/errors: Retrieve all device errors and system issues.
POST /api/errors/resolve/{errorId}: Mark an error as resolved.
GET /api/alerts: Get active system alerts for device or sync issues.

9. System Configuration and Cloud Communication
Manage System Settings (Cloud, Port Configurations, etc.)
API to manage system-level settings such as cloud configurations and port settings for device communication.
Endpoints:
GET /api/system/settings: Get current system settings.
PUT /api/system/settings: Update system settings.
GET /api/system/logs: Retrieve system logs for API activity.

10. Backup and Restore
Manage System Backups
API for creating and restoring system backups, ensuring data security and recoverability.
Endpoints:
POST /api/system/backup: Trigger a manual backup.
GET /api/system/backup/logs: Retrieve the history of backups.
POST /api/system/restore: Restore from a backup file.

11. Authentication and Authorization
Secure API with Authentication
Implement secure login, roles, and permissions for API users.
Endpoints:
POST /api/auth/login: Log in and obtain a JWT/OAuth2 token.
POST /api/auth/logout: Log out and invalidate the session token.
GET /api/auth/roles: Retrieve available user roles and permissions.


12. API Documentation
Provide Detailed API Documentation
Expose Swagger documentation for developers to understand and test API endpoints.
Endpoints:
GET /api/docs: Access Swagger/OpenAPI documentation.

Deliverables:
Fully functional RESTful API developed in C# using .NET framework 4.6.1.
Integration with biometric device SDKs (ZKTeco, uFace 800, MB2000, etc.).
Comprehensive API documentation using Swagger.
Secure API with JWT or OAuth2 authentication.
Database design for storing user, transaction, and device data (MySql).
Robust error handling and logging.
Source code with comments and deployment instructions.

Expected Skills:
Expertise in C# and .NET framework 4.6.1 for API development.
Familiarity with biometric device SDKs like ZKTeco.
Experience with MySQL for data storage.
Strong knowledge of RESTful API best practices and security.
Understanding of JWT/OAuth2 for secure authentication.
Related categories: .NET C# Programming RESTful API Biometrics