Project Description

“Aubin” is a new journey planner app designed for the autistic community. Unlike other journey planner apps, Aubin combines journey planner and travel companion information and calculates the least stressful journey for the user, not the fastest or cheapest.


Aubin was produced for the Rail Safety and Standards Board in partnership with rail specialist agency Jnction.

Client brief

There are roughly 700,000 people classified as being on the autistic spectrum in the UK today, and for many travelling on the railways can be a stressful and even overwhelming experience. The aim of Aubin is to make independent travel a reality for more autistic people, and aid parents and carers of those who may not be able to travel alone.

Using new route planning technology and detailed descriptions of each transport interchange and routes, Aubin finds the least stressful route for the user. In the event of disruption, Aubin will also suggest alternative routes or modes of travel by using saved preferences to help the user get to their destination.

User benefits

For many autistic people, travel on public transport can stressful and confusing, with many avoiding using it altogether. Aubin is designed to give autistic users confidence and help make independent travel more practical, encouraging more people on the autistic spectrum to travel by rail.

  • Ability to pre-set users’ travel preferences to avoid stressors, including specific modes of transport, accessibility options and other stress level indicators
  • Takes this pre-set information and plans the most appropriate journey (and not simply the fastest or shortest route as typically is the case with other Journey Planner applications).
  • Introduces the concept of “Stress Minutes” to each journey that quantifies the level of stress that will incur by taking that journey


  • A custom-designed route planning technology and detailed descriptions of each transport interchange to help plan less stressful routes.
  • Alternative route suggestions when there is disruption on a route, using saved preferences to help the traveller get to their destination.
  • A digital autism alert card to assist passengers who find verbal communication with communication with other passengers and transport staff.
  • An emergency call function to contact a parent or friend quickly and easily.


  • Built around a core of RESTful API to provide the front ends (web-app or mobile native-app) with industry-standard interfaces.
  • Components, written in PHP7.2, backend into MySQL (and Amazon Aurora) databases and leverage Memcached for super-fast responses.
  • Backends also leverage Structured storage for speed.
  • Written from the ground-up in Object Oriented PHP 7.2
  • Custom weighted directed graphs to represent the rail network loaded from the published timetables, links this to a custom database of railway infrastructure to calculate stress minutes for routes.
  • The Darwin push port (a Stomp interface) provides a live stream of data for same-date planning, as does a TfL HTTP Digest.
  • APIs return JSON data.

Success story

The Department for Transport has announced the Aubin project was one of the winners of RSSB’s Rail Accessibility Competition. The winning innovative, high-tech schemes will be developed to support disabled people’s access to the railway.

The Rail Accessibility Competition offers grants to any organisations or individuals whose innovative ideas will make a difference to the lives of disabled passengers travelling on the railway. The competition, which was launched in September 2017, was run by RSSB, funded by the Government, and supported by industry and disability groups.

Mark Phillips, Chief Executive of RSSB, said:

‘I am delighted that the Rail Accessibility Competition run by RSSB has inspired these exciting, innovative projects. These ideas will help achieve our aim of improving overall access to the railways for disabled”

Read more about it here:

Code extract

The CIF data wasnt very searchable so, this functioncreates arrFoundStopList, arrStopTimes, arrTrainInfo to be used for fast searching

Sample screenshots