gb-rail-fares v5.1.0
British Rail Fares Engine
The British Rail Fares Engine is a library, API and user interface that can be used to return Britsh rail fares.
It relies on data from Rail Delivery Group. The rules around journey/fare validity are very specific to British rail and are not useful for other data sets.
It does not test the validity of journeys as it has no concept of a journey but it does provide a number of filters that can be applied without a journey:
CalendarRestrictionFilterchecks if the ticket code has any calendar restrictionsAdvancePurchaseFilterchecks the Advance Purchase booking horizon has been metRailcardBanFilterchecks whether there is a blanket ban on the railcard for a given dateSuppressedFareFilterremoves non-derivable fares that are used to suppress flow faresTicketTypeDateFilterchecks the ticket type start, end and quote dates
Some rules like the validity codes return dates are in-built to the FareService.
Testing
npm testSetup
It is assumed that MySQL is installed locally and there is a database called fares set up. The database credentials can be overriden by setting environment variables DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_HOST DATABASE_NAME.
npm run data Run
Starting the service will load some data into memory (~30 seconds) and then start the service on port 8002. Browsing http://localhost:8002 will display the test user interface.
npm startContributing
Issues and PRs are very welcome.
License
This software is licensed under GNU GPLv3.
Copyright Linus Norton.
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago