node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org ยป


British Rail Fares Engine Build Status

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. The journey planner and fares service integrates fares from this fares engine with journeys from a journey planner and validates the two.


npm test


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.

If you have a username and password for DTD you can set the credentials with SFTP_USERNAME and SFTP_PASSWORD, you can also override the host with SFTP_HOSTNAME.

SFTP_USERNAME=dtd_username SFTP_PASSWORD=dtd_password npm run data-download
npm run data-clean 


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


Issues and PRs are very welcome.


This software is licensed under GNU GPLv3.

Copyright 2017 Linus Norton.