gb-rail-fares
    TypeScript icon, indicating that this package has built-in type declarations

    5.1.0 • Public • Published

    British Rail Fares Engine

    Travis npm npm David

    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:

    • CalendarRestrictionFilter checks if the ticket code has any calendar restrictions
    • AdvancePurchaseFilter checks the Advance Purchase booking horizon has been met
    • RailcardBanFilter checks whether there is a blanket ban on the railcard for a given date
    • SuppressedFareFilter removes non-derivable fares that are used to suppress flow fares
    • TicketTypeDateFilter checks the ticket type start, end and quote dates

    Some rules like the validity codes return dates are in-built to the FareService.

    Testing

    npm test
    

    Setup

    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 start
    

    Contributing

    Issues and PRs are very welcome.

    License

    This software is licensed under GNU GPLv3.

    Copyright Linus Norton.

    Install

    npm i gb-rail-fares

    DownloadsWeekly Downloads

    45

    Version

    5.1.0

    License

    GPL-3.0

    Unpacked Size

    661 kB

    Total Files

    171

    Last publish

    Collaborators

    • npm