Multi-Task File Monitoring and Upload System

Job ID: 37399975

Budget: €30 – €250 EUR

Description:
This system is designed to manage multiple monitoring tasks, with each task dedicated to watching over a specific file within a Windows environment. Each task will verify the content of its designated file at a set interval, ensuring that the contents are composed only of numeric characters and specific delimiters (; , .). Upon successful validation, the system will upload the file to a remote server using a unique token for each task, which can be done through a RESTful API. The system will provide visual feedback through a system tray icon, indicating the overall status, and will allow users to configure each task independently through a GUI.

Functional Requirements:

Multi-Task Management:
The system should be able to run multiple monitoring tasks simultaneously.
Each task must be independently configurable, with settings for:
The file path to monitor.
The upload interval.
The unique API token for authentication.

The upload endpoint URL or server address should be hardcoded.

Configuration GUI:
The GUI should allow users to create, edit, and delete tasks.
Each task’s configuration should be stored in a separate JSON object within a configuration file.
Users should be able to modify the configurations of existing tasks without affecting others.

Monitoring and Validation:
Each task independently monitors its specified file for changes.
When a change is detected, the task validates the file's content for the required pattern.
Invalid content results in an error state for the task, which should be logged and indicated by the system tray icon.

Uploading:
Valid files are uploaded by their respective tasks using the associated token and endpoint.
Upload errors are handled individually by each task, with appropriate error logging and system tray icon updates.

System Tray Icon:
The system tray icon should reflect the status of all tasks, showing:
Green when all tasks are operating without errors.
Red if one or more tasks encounter an error.
The context menu of the icon should offer access to the configuration GUI and the option to quit the system.

Concurrency:
Each monitoring task operates on its own thread to maintain system responsiveness and task isolation.

Error Handling:
The system should handle exceptions for each task independently, ensuring robustness and minimizing the impact of errors across tasks.

Technical Requirements:

Compatibility with Windows operating systems is required.
The system should be packaged as an executable with all necessary dependencies.
The programming language and frameworks used must support advanced concurrency and networking capabilities for simultaneous file monitoring and uploading.

Security Considerations:

Secure handling of multiple API tokens and credentials is essential.
Secure file transfer
Error handling must be carefully designed to prevent leakage of sensitive information across tasks.
Related categories: C Programming Python Windows Desktop RESTful API