Eshin Jolly

Managing Amazon's Mechanical Turk with a nice user interface

In the Cosan Lab, like many other reserach groups, we often run experiments or surveys on the web using Amazon’s Mechanical Turk marketplace. One of the constant pain points we’ve run into is on the administration side of things. In other words, quickly and reliably creating and managing HITs and contacting and paying Workers, which Mturk’s ownsite is lackluster for (when using custom URLs). There already exist several great libraries like psiturk which act as a stort of “one-stop-shop” for building, managing and hosting web studies. However, we’ve often found that it’s helpful to decouple administration from the tasks themselves such as in the case of multiplayer synchronous experiments. While there are several great software libraries for programmatically controlling Mturk as a requestor such as Boto in Python, this can be a bit of a chore and still presents a hurdle for less experienced or younger students (e.g. undergraduates) in the lab who were less comfortable with programming.

To help out with this I started developing a graphical desktop application (GUI) to make life a bit easier. Its working name is SvelteTurk, because I’ve fallen absolutely in love with a Javascript framework called Svelte. What attracted me to Svelte was not only it’s ease of use and intuition-building design, but that it was, and is, explicitly used in a context where not every team member has to be highly technically proficient: editorial teams at the The New York Times. Many of their latest interactive graphics especially around coronavirus, are built and embedded alongside content using Svelte. Further, the original author, Rich Harris is a very compelling and thought-provoking speaker when it comes to rethinking the approach to modern web development.

Combined with another framework called Electron which makes it relatively straighforward to build cross-platform desktop applications using the languages of the web (HTML, CSS, JS), Svelteturk allows you to create, manage, review, and edit MTurk HITs, interact with Workers, and handle Qualifications, without writing a single line of code or using Mturk’s clunky web interface. It’s very much a work-in-progress and I’ve only been handling bug-fixes or adding new features as needed internally. However, it’s entirely open source and as always contributions are welcome! Clicking the image below will take you to the documentation site that has a ton more information.

SvelteTurk only handles nodes and connections highlighted in green, namely the creation and management of HITs via communication with MTurk and a local database. It's up to you to build your experiment or survey and store appropriate data as see you see fit.