HTML5-based open source scientific models, visualizations, graphing, and probeware from the Concord Consortium. This framework is deployed in the following places. These sites contain many examples of what it can do:
- lab-framework.concord.org (production)
- lab-framework.concord.org/branch/master/ (development)
- Clone the git repository
cd lab
npm install
npm run build
- open another new terminal and run
npm start
- open http://localhost:9191
Lab is using Jest test framework.
npm test
will run all tests.npm run test:coverage
will execute all tests and display code coverage stats.
Note that most of the JS source files use paths relative to "src/lab" directory instead to the file itself. It's caused by the fact that this project has been using RequireJS and has been converted semi-automatically. It's fine but it requires custom configuration in a few places:
- Webpack:
resolve: { modules: [path.resolve(__dirname, "./src/lab"), "node_modules"] }
- Jest, package.json:
"modulePaths": [ "<rootDir>/src/lab" ]
- NodeJS scripts have to setup NODE_PATH env variable (too see example config check
md2d-node-api.js
).
If you think you'd like to contribute to Lab as an external developer:
-
Create a local clone from the repository located here: http://github.com/concord-consortium/lab. This will by default have the git-remote name: origin.
-
Make a fork of http://github.com/concord-consortium/lab to your account on github.
-
Make a new git-remote referencing your fork. I recommend making the remote name your github user name. For example my username is
stepheneb
so I would add a remote to my fork like this:git remote add stepheneb git@github.com:stepheneb/lab.git
-
Create your changes on a topic branch. Please include tests if you can. When your commits are ready push your topic branch to your fork and send a pull request.
Lab framework tests are automated using open source support from BrowserStack and SauceLabs.
For more information, please visit lab-selenium-tests repository.
SVG support is required to run Lab. IE 9+, FF, Chrome, Safari, iOS Safari, Chrome for Android all support SVG