This repo hosts the source code for the Timing71 website.
Timing71 is a web-based motorsport live timing aggregation and analysis suite, allowing users to view live timing with an enhanced display and real-time strategy analysis, as well as offering post-event replays and analysis.
Requires node v16 or greater.
yarn install
yarn run startTo run tests:
yarn run testThis repo does not contain any code relating to acquisition of data from
specific timing providers (Services in Timing71 parlance). Builds of this repo
that do not include the private @timing71/services package will therefore not
include the full feature set of Timing71 and not be able to process live timing
from upstream providers.
The code that interfaces with upstream timing providers should inherit from the
Service base class:
import { Service } from '@timing71/common';
class SomeTimingCompanyService extends Service {
constructor(onStateUpdate, onManifestUpdate, service) {
super(onStateUpdate, onManifestUpdate, service);
// whatever additional setup needs to happen
}
start(connectionService) {
// Begin collecting data - connectionService provides a `fetch` method as
// well as `createWebsocket`
}
stop() {
// perform any cleanup here
}
}For convenience, @timing71/common also provides an HTTPPollingService base
class for services relying on polling an HTTP URL for data.