Challenge Overview
Project Overview
Our client want to use Amazon mturk to invite game players to play set of games. Each Human Intelligence Task (HIT) will be for completing a "task" (analogous to a subset of levels in the game versions) in exchange for payment. Ideally, we would keep this as short and simple as possible - i.e. one "task" gets the payment (instead of multiple progressive levels).
Game players will need to navigate to client website in order to play the games, client will user mturk API to login players, and to perform some other mturk operations. Also client wants to allow multiple teams to user same mturk account but with limited access. We will be launching multiple challenges to build the infrastructure to automate and simplify this process.
Competition Task Overview
In this challenge we are adding more endpoints to the REST API.
API Requirements
We will implement the following API endpoints in this challenge :
- Retrieve List of Assignments of specific hit
- route : "GET /hit/:id/assignments"
- Any role can access this endpoint
- The method will be wrapper of this API http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_GetAssignmentsForHITOperation.html
- Retrieve Assignment
- route : "GET /assignment/:id"
- Any role can access this endpoint
- The method is wrapper to this API http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_GetAssignmentOperation.html
- Update Assignment Status
- route : "PUT /assignment/:id"
- This endpoint requires at least 'admin' role.
- This endpoint will approve, reject or approve rejected assignments.
- It requires two parameters :
- assignment id : as path parameter
- status : enum value (REJECT, APPROVE)
- reason : a string represents the feedback
- Depends on the status, the logic should be as follow :
- Retrieve the status of the assignment.
- If assignment status is Rejected :
- if passed in status parameter is approve then use this API to approve the assignment http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_ApproveRejectedAssignmentOperation.html
- Otherwise, return error to use that assignment is already rejected.
- If assignment status is Submitted
- If passed in status parameter is approve use this api http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_ApproveAssignmentOperation.html
- If passed in status parameter is reject use this api http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_RejectAssignmentOperation.html
- If assignment status is approved return error that assignment is already approved.
- Grant bounus
- Route "POST /assignment/:id/bonus"
- This endpoint requires at least 'admin' role.
- This method is wrapper for http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_GrantBonusOperation.html
- Notify worker.
- Route "POST /NotifyWorker/:workerId"
- This endpoint requires ast least 'admin' role.
- This method is wrapper for http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_NotifyWorkersOperation.html
Postman REST Client
- http://www.getpostman.com/
- Update a Postman json file with request for all operations in scope.
- Include sample requests
- Don't include sample environment data
Github Repository
API exists in private repository https://github.com/topcoderinc/csfv_mturk_api request access in challenge forums if you don't have it already.
Final Submission Guidelines
Submission Deliverables
Below is an overview of the deliverables:
- Git patch of the changes.
- Text file with notes to reviewer.
- Update README.md in the API git folder, this file should also be part of the patch file.
- You don't need to submit a word document for deployment guide.
- Submitting a video for how to setup and test api is a plus.
Final Submission
For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.