A template based web-service module facilitating the generation and realisation of web-based user studies.
Compared to jsPsych this web-application is more of a complete setup for developers who are familiar with writing Java based REST APIs and developing JavaScript Multi-Page applications. It basically frees you of things like session management, handling experiment configuration per participant and simplifies creating reports per Screen
(think of "task") and Participant
.
The app is realized as a DeepaMehta 4 Plugin, which is a FLOSS application development framework and designed as an microservice architecture. It uses Neo4j, Apache Lucene and Jetty among other technologies. You can find out more about DeepaMehta 4 on its github or project page. The DM 4 Standard Distribution males it easy to deploy this application on your desktop or web server.
The central concepts in this application are Screen
and Screen Report
. Participants are simply modelled as Users identified via a HTTP Session.
You can write a Screen Configuration
file in TAB seperated CSV to control the flow of Screens across all your participants.
This release comes with three standard templates implementing a "Welcome", "Start" and "Pause" Screen. These should get you going when implementing your own Screens
for a user study.
If you need a guide to get started with this environment please find the Help page which documents on how to setup a simple demo experiment.
For adapting the plugin please find the details in the Plugin Development Guide of DeepaMehta 4.
For the realisation of new Screens
(think of as Task Implementation
or Introduction Page
) developers are assisted when importing screen.js
and using the screen-Object (see here and here to read about all currently available utility methods).
<script src="/de.akmiraketen.web-experiments/script/screen.js"></script>// 0) Override this method to initialize your screen // At this point you can easily access data about the current Participant and Screen screen.init = function() { // 1) Access to this screen configuration, e.g. to read out its "condition" var configuration = screen.getConfiguration() // 2) initialize reporting for this screen and user screen.startReport() // 3) set this screen as seen so the participant does not see this screen again setTimeout(screen.setScreenAsSeen, 5000) } // 1) Example to report a "click" action (for the screen and user) when the "map" is clicked map.on('click', function(e) { screen.postActionReport({ "de.akmiraketen.action_name": "de.akmiraketen.click", "value": { "name" : e.latlng.toString(), "type": "map", "id" : "-1" } }) })
Please find help on this at the help/README.md page in this repo.
Installation just works with dm4.filerepo.per_workspace=false
.
If you are not familiar with DeepaMehta 4 Plugin Development you can get kickstarted in this PluginDevelopmentGuide.
Download: http://download.deepamehta.de/nightly/dm48-web-experiments-0.5.jar
New in this version: Compatible with DeepaMehta 4.8 and a new Getting Started page.
Source Code: https://github.com/mukil/web-experiments/tree/rewrite
Download: https://github.com/mukil/web-experiments/releases
New in this Version:
Complete Rewrite of version 0.2. Comes now with support for Screen Templates and a JavaScript Interface (screen.js
) supporting developers in implementing new Templates. Additionally it comes with a revised Screen Configuration model and reduced complexity for reporting arbitrary data.
In this version we released a simple set of three standard templates (in folder templates/standard
in this repository) for Web-Experiments
which hopefully get you going quick when implementing your experiment.
Source Code: https://github.com/mukil/web-experiments/tree/b2b483306558388d1957eade5c29612b82dee0fa
Download: https://github.com/mukil/web-experiments/releases
New in this Version: The source code repository now comes with an extensive documentation.
The very first Release, developed under heavy constraints.
Source Code: https://github.com/mukil/web-experiments/commit/fcf95efa04440932793244ecdae90c7bee64f533
Download: https://github.com/mukil/web-experiments/releases
Malte Reißig, 2014-2016 Leibniz-Institut für Länderkunde e. V.