Application Kata "Timetable information"

Develop an application for timetable information.

The user enters the start and destination stops and a departure date. The application then finds connections, which it lists in descending order of quality. The quality is based on the journey duration, proximity to the departure date and the number of transfers.

The information is provided on the basis of a series of timetables for different lines. Each line has a name and extends over several stops. For each stop there are many departure times throughout the day and a journey time to the next stop, e.g.

Line U1 North
Jungfernstieg 8:00 8:05 8:10 8:20 ...
Stephansplatz 8:04 8:09 8:14 8:24 ...
Hallerstraße 8:09 8:14 8:19 8:29 ...
Jungfernstieg-Stephansplatz: 2 minutes
Stephansplatz-Hallerstraße: 3 minutes

Stops are served in both directions (e.g. Jungfernstieg -> Hallerstraße and Hallerstraße -> Jungfernstieg). There are timetables for both directions - but the lines are different (e.g. U1 North and U1 South).

Connections consist of stops at which passengers board, change and alight, as well as details of the lines and key times.

Variation #1

As an alternative to the departure time, a desired arrival time can be specified.

Variation #2

The user can define secondary conditions, e.g. a minimum transfer time, that fewer transfers are more important than shorter travel times or that one means of transport is to be preferred (e.g. subway rather than bus).

Variation #3

From the connection overview, the user can switch to the timetable of a line to see alternative departure times from a connecting stop.

en_USEnglish