Lausanne public transport (TL)


The Caltar project is a Lausanne public transport initiative. It concerns the pricing system for members of the Vaud Fare Community. Since the network often undergoes changes, Transport Lausanne wanted to find a way to keep the public up to date on the latest fares.

The public transportation network (bus, metro, train, etc.) is divided into fare zones. The system automatically calculates the most likely itineraries and corresponding fares so that the automatic ticket machines will charge commuters the right amount. Nevertheless, this automated system doesn’t take into account factors such as network tips, commuter habits and occupancy rate. Some transport itineraries also have to be added manually, which is time-consuming and prone to error.

Transport public lausannois

Proposed solution

Transport Lausanne already had an app that commuters could refer to for information on the public transportation system. Antistatique was entrusted with the task of supplementing that app by adding editing functions and tools to import and export data.

PHP Silex micro-framework

We decided to use the PHP Silex micro-framework to integrate the existing app and begin developing with a strong base. This micro web framework offers:

  • A simple and adaptable structure that is useful when working with code that has been inherited, as it allows it to be refactored smoothly. The existing code can be integrated almost as is, then rewritten progressively.
  • Separation between logic and views
  • Possibility of carrying out tests
  • Use of Symfony 2 components (security, routing, forms, etc)

Oracle database

We used Oracle as the database management system for this project. We even created a quick installation guide for the PHP Oracle extension for OSX .

Geographic Information System

For this project, we used Google Maps’ Application Programming Interface to create a geographic data visual (zones, lines, etc).

A time-saver

...and a way to avoid human error!

  • Replaces manual process (excel file + SQL manipulation), which is subject to human error
  • Automatically creates intermediary connections
  • Imports / exports one network period to another
  • Validates connections