/SNAPlabonline

Development of a web-app for online hearing experiments

Primary LanguageJavaScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

DOI

SNAPlab Online -- A Web Application for Online Psychoacoustics

This is a bare-bones, but functional Web App for online hearing experiments designed using the Django Framework. The templates are rendered using basic HTML5 and styled using Bootstrap. Task pages are implemented client-side using jsPsych within the jspsych app. However, a rudimentary server-side implementation with new HTTP responses to advance the experiment is also available within the tasks app.

Goals

The goals of this web app (some features not fully developed/tested) are:

  • Serve as a standalone web app that can be hosted on a virtual private server in the cloud (e.g., Linode).

  • Make it easy to create auditory behavioral tasks with commonly used task structures:

    • n-AFC tasks using the method of constant stimuli
    • n-AFC adapting on a single parameter on a grid
    • open set speech recognition tasks
    • surveys
  • Make it easy to organize a collection of tasks into an experiment that can be linked to recruitment platforms and thereby interfacing with anonymous labor markets such as Prolific.

  • Play uncompressed, high fidelity audio on a variety of browsers across both computers and mobile devices.

  • Implement anonymous sessions for subjects for security and HIPAA compliance.

  • Allow users with varying privileges:

    • Users with "experimenter" status
    • Users with "admin" status
    • Anonymous Users with (default) "subject" status
  • Allow response data to be written to a secure database and queried on the front-end.

  • Allow for future extensions and enhancements using python code.

Adapting the Code

The license for the code is highly permissive. Interested researchers are welcome to adapt the code as needed for their purposes. The best way to get a working copy is to clone this repository using git as:

git clone https://github.com/haribharadwaj/SNAPlabonline.git

The required libraries/dependencies for this project are captured in the Pipfile and Pipfile.lock files created by pipenv. Once you have the clone pipenv can be used to replicate the exact environment that this project was last tested on by saying:

pipenv sync

Note that cloning this repository will give you not only the code, but also the front-end elements like logos, and the HTML text that is specific to our lab. You will probably want to replace those with your own images/text. If you would like to keep/adapt the images/text that come with the repository, please note they are made available under CC BY-NC-SA 4.0, as noted in the License section.

Validation Data

A recent preprint describes our approach to web-based psychoacoustics in greater detail and documents the results from some basic validation experiments. Overall, the results are encouraging!

Mok BA, Viswanathan V, Borjigin A, Singh R, Kafi HI, & Bharadwaj HM (2021).
Web-based Psychoacoustics: Hearing Screening, Infrastructure, and Validation
bioRxiv 2021.05.10.443520; doi: https://doi.org/10.1101/2021.05.10.443520.

License

Text and images

The text and images contained in this repository (c) 2020 by Hari Bharadwaj are licensed under CC BY-NC-SA 4.0.

CCBYNCSA

Code

The source code for SNAPlabOnline (c) 2020 by Hari Bharadwaj is licensed under the BSD-3-Clause license.