Experimentr
Backend (Node.js, redis), frontend (js), and analysis (R) for web-based visualization studies.
Install / Use
/learn @codementum/ExperimentrREADME
Experimentr is a hosting/data-collection backend and module-based frontend for web-based visualization studies.
This repo is a working experiment. The best way to get started is to copy this repo and edit it for your experiment.
Experimentr.js
Experimentr.js is a front-end framework for experiments.
Experiment stages are defined in modules. Modules consist of a small amount of HTML and Javascript and correspond to one stage of the experiment (such as a post-test).
Experimentr.js also contains several helper functions for experiments, such as timing. Check the source for more.
Modules
Experiment modules are defined in public/modules.
Here is an example questionnaire module.
Modules will be loaded in order using the experimentr.sequence() function:
experimentr.sequence([
'modules/consent',
'modules/self-assessment-manikin',
'modules/emotion-prime-story',
'modules/demographics',
'modules/nasa-tlx'
]).start();
In some modules the Next button is not needed, so it can be hidden and shown via experimentr.hideNext() and experimentr.showNext().
Each module must be unique and cannot be loaded twice in experimentr.sequence(). For example, if you use the same questionnaire as a pre-test and post-test, the same questionnaire HTML must appear in two uniquely named files.
For example modules, please see public/modules/.
How Experimentr Works
Once experimentr.js loads, it creates a div in <body>: <div id="experimentr">.
Experimentr then adds three elements to the page:
- ``#experimentr` div: to hold the module and controls
- ``#module` div: holds module content
- ``#control` div: holds controls for the modules
Running the server
Start redis:
redis-server redis.conf
Run the server:
node app.js
Then access the page at localhost:8000.
Installation
Before-Clone Installation Dependencies:
Node.js
To find installation instructions for your operating system (Linux, OSX, and Windows), please visit https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
Redis
Note: Redis is not installed through npm install and must be installed separately.
Redis can be manually downloaded at redis.io/download. Please note that Windows is not directly supported, however there is an experimental Windows port maintained by Microsoft. If you are on OSX and have brew installed, you can install Redis with the following: brew install redis.
Clone and Post-Clone Installation:
- clone this repo
- cd to this repo and run
npm install
Testing experiments
You can use debug as your workerId when testing live experiments to help make sure your data doesn't end up the experiment data.
See convert.js for details.
Another useful trick is to empty the redis database. To do so, run redis-cli to get the redis command line prompt, then type FLUSHDB to delete all current keys.
More redis commands can be found at http://redis.io/commands.
Citing Experimentr
Lane Harrison (2019). experimentr: a hosting/data-collection backend and module-based frontend for web-based visualization studies. v1.0.0, https://github.com/codementum/experimentr. DOI: 10.5281/zenodo.2564082
Related Skills
node-connect
354.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
112.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
354.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
354.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
