Project Info

The Codefather thumbnail

Team Name

The Codefather

Team Members

8 members with unpublished profiles.

Project Description


We identified three main pain points affecting the quality of our journey on trains:

  • Quick and concise ETA at your destination: right now it's something that you check before the trip begins, but once you're in transit it's hard to go back and find the bus or train that you're on, you end up scrolling back in time to recreate your trip which can be innacurate and time consuming.
  • The lack of a unified platform for effective and instantaneous real-time announcements in case of delay or sudden stop or emergency. Currently, warnings come from either multiple twitter accounts or often incomprehensible voice announcements on the trains.
  • Congestion and uneven distribution of people in the train’s carriages. How many times have you heard Transport NSW yelling at people boarding trains "Please move to this or that carriage"?


For GovHack 2019 The Codefather developed TrainMate, a fully functioning mobile application for both Android and iOS that improves the life of commuters and people using the public transport system every day.

By scanning or entering the unique carriage ID in the app, TrainMate will find your route and allow you to select your destination and show a personal ETA for your trip.
We also include a visualisation to help evaluate the congestion onboard the train, letting the passengers choose a less busy carriage.

Additionally, TrainMate includes a messaging system to engage with other passengers on the train and receive broadcast announcements from Transport NSW in case of delay or sudden stop or emergency.
You're anonymous by default for privacy and safety reasons, so you can choose how you want to interact.

TrainMates mobile application is built in Dart, using the Flutter framework.

The backend consists of a series of AWS Lambdas that crunch the dataset coming from Transport NSW, enrich them and store them on Amazon Aurora. The chat component is built using Google’s Firebase framework.


The biggest challenge we faced is in the accuracy of the dataset and the ability to match passengers with the train they're travelling on.
We utilised an obfuscated carriage id based on the assumption that the raw dataset would have a means of mapping that to the true id (and thus not affect feasibility).

Alternative solutions include deploying AWS IOT-powered devices with cameras at key train stations to identify which trains and carriages are active on which routes.
Other options include GPS location matching with real-time train position, as well as utilising Bluetooth mesh for connecting passengers directly in the local area.


  • TrainMate is a privacy-focused application that improves the quality of travelling with public transport while easing the congestion of train passengers.
  • TrainMate spurs engagement and social interaction with other people on the train
    • As highlighted in the Research paper from the University of Chicago "Mistakenly Seeking Solitude"*, having positive social relationships has been put forward as a key ingredient for happiness.


Some improvements and stretch goals we're considering

  • Increase engagement with the social chat platform through gamification and content creation such as promoted topics
  • Investigate supporting multiple channels or groups and direct messaging
  • Add Natural Language Processing to auto-moderate chat messages
  • Integrate multiple sources of information and alerts to provide higher value content
  • Extending to other NSW transports like buses, light rail, ferries
  • Extending to other networks throughout Australia integrating data from different sources

🎯 So, why would you use TrainMate?

  • It instantly gives you the most important information for your journey
  • It connects you to other members of your community safely and securely
  • No personal information is transmitted or stored on our servers


🎳 The Team

  • Alberto Camillo
  • Farooq Ahmed
  • Irwin Razaghi
  • Jack Song
  • Jono Gillett
  • Mahesh Chauhan
  • Martin Zhang
  • Simon Wardan

🌐 Links

  • Backend
  • Frontend
  • Android APK
    • Note: this version ignores the carriage number and selects a current train trip at random so you can demo the app without needing to know actual carriage number


Data Story

There are a lot of really rich data sources around transport in NSW and Australia, but most of the current usage revolves around what happens before you travel, aimed to help find the correct form of transport and information about that particular journey. At the core of TrainMate we use Real Time train data from Transport NSW datasets. The manipulation and use of these data allow the mobile app to provide a constant up-to-date ETA to people travelling by train every day.

Evidence of Work


Project Image

Team DataSets

Public Transport - Timetables - For Realtime

Description of Use Static timetables, stop locations and route shape information in GTFS format for operators that support realtime.

Data Set

Timetables Complete GTFS

Description of Use Static timetables, stop locations, and route shape information in General Transit Feed Specification (GTFS) format for all operators, including regional, trackwork and transport routes not available in realtime feeds.

Data Set

NSW Trains 4Trak GTFS & GTFS-R Technical Documentation

Description of Use NSW Trains 4Trak GTFS & GTFS-R Technical Documentation Real time Sydney/NSW trains data is the core of TrainMate. We use trains' location and information to identify in which train the user is and what's the ETA for the user's trip's destination.

Data Set

Sydney Trains Realtime GTFS & GTFS- R Technical Document

Description of Use Sydney Trains Realtime GTFS & GTFS- R Technical Documentation. Real time Sydney/NSW trains data is the core of TrainMate. We use trains' location and information to identify in which train the user is and what's the ETA for the user's trip's destination.

Data Set

Challenge Entries

Public Transport for the Future

How might we combine data with modern technologies - such as AI/ML, IoT, Analytics or Natural Language interfaces - to better our public transport services. Outcomes could take the form of new commuter experiences, reduced environmental impact, or helping plan for the future.

Go to Challenge | 45 teams have entered this challenge.

🌟 Improving the customer experience of government services

How can government data be used to improve the experience of citizens interacting with government?

Go to Challenge | 24 teams have entered this challenge.

What are the key levers that can be affected to ease congestion in NSW?

Using open data and other data sources, what can you infer that can be changed by Transport for NSW to help ease congestion? This can be congestion from people, cars, train passengers, on a platform or queuing for a bus or just generally on a road. What has happened in the past? What information can we provide customers, bus drivers or employers to assist in easing congestion? Note: this is not just road congestion. It can be viewed holistically or at a microlevel – for say an intersection.

Go to Challenge | 7 teams have entered this challenge.