On this page we have provided several resources to help you using the application.
This application provides safe storage for data collected from web-experiments. This guide will describe the process of using this application.
Make sure that your fellow researchers have logged in to this application at least once before registering your experiment, otherwise you won't be able to add them to your experiment.
On the 'My Experiments' page, click 'Create new experiment'. You will be asked for some information:
Title: The name of your experiment
Experiment folder: The name of the folder you want to hold
your experiment on the server.
Researchers: everyone (including you) that should have access
to the data and to the experiment web-share
If you do not intend to use our server to host your experiment, please contact us. This application will not accept data from experiments not hosted on an approved server.
Once your experiment has been created, we need to create your webshare. This should take 1 to 2 working days, you will be notified when we have done so.
When your experiment has been created, you should be able to find the access key to your experiment on the details page.
If you are using an experiment provided by us, it should already contain the code necessary to upload the data. You only need to add the access key.
If not, you can find it in the block called '(Developer) Uploading data from JavaScript' below.
You can now upload your experiment to the webshare. Details on how to mount the webshare can be found in the block below.
Make sure the HTML file is called index.html. Otherwise, the server cannot find which file should be displayed without explicitly adding it to the URL.
There might already be a file called index.html in your folder, as we place a placeholder page when creating new folders. It's safe to overwrite this file.
By default, all experiments are closed to new uploads. When you are ready to send your experiment to participants, you should open it by changing its status on the 'Edit experiment' page.
Once you've finished collecting data, you can download the data on the details page.
It's a good idea to close your experiment at this point, so
no new data will be added.
Closing the experiment will not take your experiment offline.
You should remove your experiment from the experiment server as
well
Note: Some data might not be uploaded correctly, in which case the transforming said data to CSV will fail. When downloading all data, an export report will added to the zip file. This file will report for every datapoint if transforming it to CSV failed or succeeded.
Downloading the file as raw data should always work, allowing you to see the malformed data if needed.
To host your web-experiment, we provide a folder on our experiment server. To upload your experiment, you have to connect to the WebDav share for your experiment.
You can find the location of your share on the details page of your experiment. (Under 'location' in the sidebar, it should start with 'webdav')
You should now have access to your folder. Upload your experiment by copying the files to this folder. Make sure your experiment's main HTML file is called index.html!
You should now have access to your folder. Upload your experiment by copying the files to this folder. Make sure your experiment's main HTML file is called index.html!
You should now have access to your folder. Upload your experiment by copying the files to this folder. Make sure your experiment's main HTML file is called index.html!
You should now have access to your folder. Upload your experiment by copying the files to this folder. Make sure your experiment's main HTML file is called index.html!
You should now have access to your folder. Upload your experiment by copying the files to this folder. Make sure your experiment's main HTML file is called index.html!
This page requires some changes to your JavaScript. Feel free to email us if you need assistance.
Many experiments are designed to use multiple item lists, and assign participants randomly to those lists. There are currently two ways to achieve that with jsPsych:
Simple randomization requires little effort, and is already implemented in our templates. It relies on randomly generated numbers to evenly distribute participants between lists over time.
In some cases, you might want better control over the distribution of participants to lists. This is where target groups might be useful.
By adding target groups to your experiment, you can decide how many participants should be assigned per list, and the datastore server would take care to assign participants to lists in a balanced fashion. To do that, it keeps track of ongoing and completed runs of the experiment.
Each target group has a name that should correspond to the relevant list name, and a completion target, which indicates the number of completed runs that should be reached. When a target group has its completion target fulfilled, no new participants will be assigned to the corresponding list. You can also modify completion targets to dynamically control the number of participants while the experiment is running.
The next paragraphs outline how participant assignment works in somewhat finer detail. You can safely skip to Implementation and assume that participants are evenly distributed between groups, but it is provided here for reference. To simplify things we will describe the algorithm with just two lists—A and B—but it works for any number of groups.
Suppose that the server keeps track of the next group in turn using a variable called next_group
, then:
next_group
.next_group
is A, set it to B. Otherwise, set it to A.next_group
to that.
If you would like to use target groups with one of our jsPsych templates, look for a section in main.js
that starts with:
// Option 1: client side randomization:
and comment out the part below it. Then uncomment the section following:
// Option 2: server side balancing:
(Note: in older templates these sections are located in index.html
instead.)
Make sure your experiment is set to Open for target groups to work.
The relevant code for interacting with the target groups feature is found in the
uil.utils.session
module.
To upload your experiment, you need to upload your experiment to the web-share we have provided. See Access your experiment folder.
I made changes to the experiment files, but I'm not seeing them when running the experiment from the server!When you open an experiment in your browser, it may be saved in the browser's cache for some time. When later uploading a new version of the experiment, your browser might still load the saved version from cache instead of the newest one.
There are several different ways to work around that:
Any changes to the name requires the lab-staff to do some manual changes as well. Please contact us if you need to get the name changed.
I'm trying to upload data to the application, but nothing is being saved!Make sure that the status of your experiment is set to 'Open'. The current status of your experiment is shown both on the main page as well as the details page.
You can change the status of your experiment on the edit page.
Why are my fellow researchers not listed when trying to add them to my experiment?Make sure they have logged into the application at least once. Due to technical limitations, this application is not aware of anyone that has not logged in.
If you are a teacher in a course and want your students to use this application, it might be easier if all your students are already registered before the course starts. Please contact the lab staff, they will be able to do add your students to the application in bulk.
I just added a new researcher to my experiment, but they cannot access the experiment share.Giving access to the experiment shares is a manual process. Please contact us to update the access configuration.
I closed my experiment in this application, but it's still available on the experiment server.The data and experiment servers aren't linked directly for security reasons. Thus, we cannot take your experiment offline automatically when you close the experiment.
If you're using JSPsych, you can use our library to automatically redirect your participant to a generic 'closed' page. You can also manually query the status of your experiment if you're not using JSPsych.
If you are using one of our templates, chances are that this is already set up. Otherwise, please contact us for instructions on how to set this up.
Your question not listed here? Contact us!
This page requires some changes to your JavaScript. Feel free to email us if you need assistance.
If you are using one of our JSPsych boilerplates, we probably already have implemented this for you. Please see the documentation of your boilerplate for more information.
If you are building your own JSPsych experiment, you can use our library. This library is also used by our boilerplates, and is guaranteed to work with this application.
You can find out more about our JSPsych utilities library at GitHub
To let your web-experiment upload data to this application, you will need to add a special function that uploads said data. Add the following function to your experiment's JavaScript.
function saveData(data) { let access_key = "{YOUR ACCESS KEY HERE}" let xhr = new XMLHttpRequest(); xhr.open('POST', 'https://experiment-datastore.lab.hum.uu.nl/api/' + access_key + '/upload/'); xhr.setRequestHeader('Content-Type', 'text/plain'); // Don't change, server only accepts plain text xhr.send(data); }
Remember to replace "{YOUR ACCESS KEY HERE}" with your key. This can be found on the details page of your experiment, under 'Access Key'
Finally, you need to call this function at the end of your experiment. This is done by calling `saveData` with the intended data:
saveData(experiment_data);
It is recommended that your data is formatted as either a plain JavaScript object or a JSON string.