A platform to create and administer experiments.
Documentation available here
You will need the following things properly installed on your computer.
Experimenter is designed to talk to a JamDB server for all data storage. In most cases you will be provided a remote staging server for development purposes, but for advanced development, these setup scripts can help define a basic skeleton for your project.
git clone <repository-url>
this repository- change into the new directory
yarn install --pure-lockfile
bower install
To use the video capture facilities of Experimenter, you will also need to place the file VideoRecorder.swf
in your <project_name>/public/
folder. This file is not part of the git repository; it is from the HDFVR flash video
recorder and must be obtained from a team member with access to the licensed version. They can also provide the
necessary configuration to talk to a valid and licensed streaming media server (eg Wowza); see below.
cd lib
git submodule init
git submodule update
The exp-player and exp-models addons live in the lib directory. This is Ember's conventional place for putting in-repo-addons (see package.json also). If you need to develop on either of the exp-* addons, simply do your work in the submodule directory (lib/exp-) and when you're ready commit and push the changes like usual.
To login via OSF:
- create .env file in top directory
- in .env file include:
OSF_CLIENT_ID="\<client ID for staging account\>"
OSF_SCOPE="osf.users.profile_read"
OSF_URL="https://staging-accounts.osf.io"
SENTRY_DSN=""
WOWZA_PHP='{}'
WOWZA_ASP='{}'
First:
- make sure jamdb is running, see: https://github.com/CenterForOpenScience/jamdb
- then:
yarn run bootstrap
This:
- Makes the experimenter namespace in jamdb.
- Creates an admins collection under the experimenter namespace.
- Configures jamdb to use the schemas from
schemas/*.json
to validate records in the corresponding collections. - Sets up permissions as defined in
dev/permissions.py
- Populates the appropriate collections with the sample data in
dev/data
. Seedev/data/admins.json
for example logins; use:
namespace=experimenter
collection=admins
username=<id>
password=password
Then:
ember server
- Visit your app at http://localhost:4200.
Sometimes, you will want to install an additional third-party package. In place of npm, this project uses yarn
.
Most of the commands are the same, but this alternative tool
provides a way for two developers to guarantee they are using the same versions of underlying code. (by running
yarn install --pure-lockfile
) This can help avoid a situation where things break unexpectedly when run on a different
computer.
Whenever you choose to update your dependencies (yarn add x
or yarn install
), make sure that code still runs, then
be sure to commit the modified yarn.lock
file, which represents the "current
known working state" for your app.
Make use of the many generators for code, try ember help generate
for more details
ember test
ember test --server
ember build
(development)ember build --environment production
(production)
Specify what it takes to deploy your app.
Want to help save science? Want to get paid to develop free, open source software? Check out our openings!