-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve UX of reviewing task results #1055
Comments
API v0GET /tasks Get all available tasks (to select one for review)
GET /qualifications Get all available qualifications (to select "approve" and "reject" qualifications)
POST /qualifications Create a new qualification
GET /task-units?{task_id=}{qualification_id=}{worker_id=}{limit=}{offset=} Get all workers results (filtered by task_id and/or qualification_id, etc)
GET /granted-qualifications?{task_id=}{qualification_id=}{worker_id=}{limit=}{offset=} Get all granted qualifications (filtered by task_id and/or qualification_id, etc)
POST /granted-qualifications/reject Reject worker's input
POST /granted-qualifications/approve Approve worker's input
|
Overall these basic endpoints make sense, but I want to clarify a bit on the design. I don't know where we'd use Some key endpoints will be An aside on the expected review flow: When going through review, the expectation is that we'll be able to review all of the units in one pass, ideally batched by worker. This behavior in the mock operates through the following steps.
This type of setup requires constructing and maintaining some kind of local state on the server, though the setup I've used so far is really not the right way to do it. |
API v1GET /tasks Get all available tasks (to select one for review)
GET /qualifications Get all available qualifications (to select "approve" and "reject" qualifications)
POST /qualifications Create a new qualification
GET /task-units?{task_id=}{qualification_id=}{worker_id=}{limit=}{offset=} Get all workers results (filtered by task_id and/or qualification_id, etc) - without the details of worker's output
GET /task-units-details?{unit_ids=} Get full input for specified workers results
POST /task-units/reject Reject worker's input
POST /task-units/soft-reject Soft-reject worker's input
POST /task-units/approve Approve worker's input
GET /granted-qualifications?{task_id=}{qualification_id=}{worker_id=}{limit=}{offset=} Get all granted qualifications (filtered by task_id and/or qualification_id, etc)
POST /granted-qualifications/grant Grant qualification to worker
POST /granted-qualifications/revoke Revoke qualification from worker
POST /workers/{id}/block Permanently block a worker
|
Note, Also, I imagine it makes sense to just move |
Makes sense, I've just edited API v1. |
Review flow
API v2GET /tasks Get all available tasks (to select one for review)
GET /qualifications Get all available qualifications (to select "approve" and "reject" qualifications)
POST /qualifications Create a new qualification
GET /tasks/{id}/worker-units-ids Get full, unpaginated list of unit IDs within a task (for subsequent client-side grouping by worker_id and
GET /task-units?{task_id=}{unit_ids=}{qualification_id=}{worker_id=} Get workers' results (filtered by task_id and/or unit_ids, etc) - without full details of input/output
GET /task-units-details?{unit_ids=} Get full input for specified workers results (
POST /task-units/reject Reject worker's input
POST /task-units/soft-reject Soft-reject worker's input
POST /task-units/approve Approve worker's input
GET /granted-qualifications?{task_id=}{qualification_id=}{worker_id=}{limit=}{offset=} Get all granted qualifications (filtered by task_id and/or qualification_id, etc)
POST /granted-qualifications/grant Grant qualification to worker
POST /granted-qualifications/revoke Revoke qualification from worker
POST /workers/{id}/block Permanently block a worker
GET /workers/{id}/stats?{task_id=}{requester_id=}{since=}{limit=} Get stats of recent work for the worker
|
This has been implemented in |
Need to write a simple review server with customizable front-end, to replace current command-line code.
The text was updated successfully, but these errors were encountered: