The aim of the Smart Ticket project is to develop a prototype software system for navigation of a transport network. In order to create a specific application, the London Underground rail network will be used, but the final software will be applicable to any such network, whether for transport or some other purpose1.1. The system will be able to provide routes across the network to ticket machines, navigational devices and to users of the WWW. It must be possible for nodes -- stations in the rail network -- and lines on the network to be closed, and the system develop alternative routes across the network in real time.
In order to best meet the aims of flexibility and scalability of the system, it was decided to create a suite of programs, implementing a client-server architecture. The server would be a Unix machine connected to an IP network, and would do the work of determining the route, and managing multiple simultaneous clients. The clients would be easy to use graphical programs running on ticket machines and over the web. Additionally, a suite of administration tools would be developed for configuration of the system.
The user interface of the client software should be simple, intuitive and provide feedback and instruction to the operator. Additionally, given that the same software should be available on the web, and on ticket machines, it must not have platform specific requirements or need a high-resolution monitor. The administration tools would benefit from following a similar design approach, though it is not crucial, as these would most probably only be used by trained staff on PC platforms.
Dividing the project between myself, and my partner was straightforward, largely due to the client-server nature of the system. My partner was responsible for the development of the graph traversal engine and the data structure associated with it. I, meanwhile, created the server code into which the graph traversal engine1.2 would be fitted. I also developed the cross-platform graphical client software and the suite of administration tools, that would follow a similar model to the end-user clients.