Inspiration

Those -20c days when you see the train depart just as you arrive at the station. Our inspiration is saving the 20min painful wait for the next train.

What it does

Our app provides a constant display of the train arrival times using a Raspberry Pi connected to a monitor. This keeps the user informed of this crucial information at a glance so they can make intelligent decision on when to leave to catch the train.

How we built it

We used the python gtfs_kit module to parse the Calgary Transit open data to generate a list of departure times from the nearby train station. This data is collected and processed on a Azure cloud instance running a custom Rust server which offloads the time consuming data-crunching onto the cloud. Multiple clients can simultaneously connect to the JSON data-stream supplied by the Azure server and display it to the user. We built a custom full-stack application.

Challenges we ran into

We originally wanted to implement the UI using a django web-server but this proved to time consuming. We had a lot of issues with portability and python virtual environments.

Accomplishments that we're proud of

This was our teams first deployment of a cloud server and we are really excited that it worked! We are really delighted about how well we were able to collaborate to produce this project on time.

What we learned

django sucks, terminal better.

What's next for Train Stopper - CHUT Industries

In future we imagine this as a inexpensive IOT device with an inbuilt display that can be left in a public place (like a university clubroom) or at home. We would like to integrate crowd sourced and real-time transit GPS data to improve the reliability beyond what Calgary Transit offers.

Built With

Share this project:

Updates