Skip to content
User interface for the OpenActive data model validator
JavaScript CSS HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
build
public
spec
src
.babelrc
.editorconfig
.env.dist
.eslintrc.json
.gitignore
.nvmrc
.travis.yml
LICENSE
README.md
nodemon.json
package.json
webpack.config.js

README.md

OpenActive Data Model Validator Site

This site uses the OpenActive Data Model Validator to allow developers to validate JSON models to the latest OpenActive Modelling Opportunity Data specification.

Build Status Known Vulnerabilities

Development

Getting started

$ git clone git@github.com:openactive/data-model-validator-site.git
$ cd data-model-validator-site
$ npm install

Running the local development server

$ npm run dev

This command makes use of concurrently to run both the express backend server alongside the webpack development server.

It will watch source files and perform live-reloads in the browser.

Building

To build using webpack, simply run:

$ npm run build

This will compile all source files and output to the /dist directory.

To run the production version, you can then run:

$ npm start

.env

You can create a local .env to customise certain aspects of the site.

# Override for the user agent string sent by the RPDE validator
# Default: "RPDE_Validator/version (+https://validator.openactive.io/rpde)"
REACT_APP_RPDE_USER_AGENT=

# The timeout for a request made by the RPDE validator (milliseconds)
# Must be non-zero
# Default: 10000
REACT_APP_RPDE_TIMEOUT_MS=

# The delay between requests made by the RPDE validator (milliseconds)
# Default: 0
REACT_APP_RPDE_REQUEST_DELAY_MS=

# The number of feed pages the RPDE validator should
# walk through
# Must be non-zero
# Default: 20
REACT_APP_RPDE_PAGE_LIMIT=

# The number of items to process in the model validator from an
# RPDE feed
# Must be non-zero
# Default: 10
REACT_APP_MODEL_RPDE_ITEM_LIMIT=

# Sets the number of seconds that the remote JSON loader should
# cache requests for.
# Default: 3600
REACT_APP_MODEL_REMOTE_CACHE_TTL_SECONDS=

# The tracking ID for Google Analytics
VALIDATOR_GOOGLE_ANALYTICS=

Google Analytics

To build with Google Analytics turned on, make sure you set the VALIDATOR_GOOGLE_ANALYTICS environment variable.

e.g.

$ export VALIDATOR_GOOGLE_ANALYTICS=UA-XXXX-Y
$ npm run build

Locally, you can also set this in your .env file.

Heroku builds should have this set in their config vars.

Deploying

To deploy to heroku, use the git method as described in the Heroku documentation

  • Install the Heroku CLI

  • Add the Heroku remote to your local machine:

    $ heroku git:remote -a data-model-validator
  • Push the latest changes to the new remote:

    $ git push heroku
    Counting objects: 17, done.
    Delta compression using up to 8 threads.
    Compressing objects: 100% (17/17), done.
    Writing objects: 100% (17/17), 3.34 KiB | 3.34 MiB/s, done.
    Total 17 (delta 11), reused 0 (delta 0)
    remote: Compressing source files... done.
    remote: Building source:
    remote: 
    remote: -----> Node.js app detected
    remote: 
    remote: -----> Creating runtime environment
    remote:        
    remote:        NPM_CONFIG_LOGLEVEL=error
    remote:        NODE_VERBOSE=false
    remote:        NODE_ENV=production
    remote:        NODE_MODULES_CACHE=false
    <SNIP>
    remote: -----> Compressing...
    remote:        Done: 35.7M
    remote: -----> Launching...
    remote:        Released v1
    remote:        https://data-model-validator.herokuapp.com/ deployed to Heroku
    remote: 
    remote: Verifying deploy... done.
    To https://git.heroku.com/data-model-validator.git
       cdc8b03..683d803  master -> master

Testing

Local

This project uses Jasmine for its tests. All spec files are located alongside the files that they target.

To run tests locally, run:

$ npm test

The test run will also include a run of eslint. To run the tests without these, use:

$ npm run test-no-lint

BrowserStack

We also make use of BrowserStack for cross-platform testing, ensuring a consistent experience across the latest browsers.

BrowserStack

You can’t perform that action at this time.