Hello future colleague! In this assessment, we request that you implement an HTTP application that converts CSV data sets to JSON data sets. The application will provide the following endpoints:
Create a task with URI pointing to CSV dataset which will be converted to Json and reuturns taskId.
- 2 tasks can be run at the same time
- the task is executed immediately if
running-tasks < 2
Return informations about the task:
- lines processed
- avg lines processed (count/sec)
- state (
SCHEDULED/RUNNING/DONE/FAILED/CANCELED
) - result (uri where the JSON file can be downloaded)
Keep the connection open until the task isn't in a terminal state and send the updated response every 2 seconds.
Tasks in SCHEDULED
or RUNNING
state can be canceled.
Endpoint providing generated JSON files.
- Keep the state only in memory except generated json files.
- Take into account that input files don't have to fit into memory.
CSV datasets for testing purposes can be found at the following links:
Feel free to ask any questions through email or github.
Good Luck!