26 lines
2.0 KiB
Markdown
26 lines
2.0 KiB
Markdown
---
|
||
title: OwlBoard
|
||
author: Frederick Boniface
|
||
date: '2023-08-16'
|
||
---
|
||
|
||
[Git Organisation](https://git.fjla.uk/owlboard) [Live Website](https://owlboard.info)
|
||
|
||
OwlBoard came about because I was sick of dealing with clunky tools that were slow, outdated, and not user-friendly.
|
||
|
||
I had a clear goal in mind: make something smoother, faster, and more modern to shake up the tool landscape.
|
||
|
||
I decided to take control of the data side of things and built a Python-based db-manager app. It works on a schedule to handle database collections, polish data from different sources, and neatly store it all in the database.
|
||
|
||
db-manager eventually grew to pull data from Network Rail's CORPUS and TIMETABLE feeds, as well as downloading PIS and Reason Code data from a git repository.
|
||
|
||
OwlBoard started with a simple idea: real-time station departure boards. I used an Express backend alongside a basic HTML/CSS/JS frontend PWA. But as I added more features, it became obvious that a sturdier framework was needed. Both users and developers were struggling with more menus and messier code.
|
||
|
||
Enter Svelte, especially SvelteKit. I wasn't just hopping on a trend – I liked that it allowed me to work with plain JS, HTML, and CSS in components. This made my learning curve easier and sped up improvements for users.
|
||
|
||
When API responses got lengthy, I turned to TypeScript. It was like flipping a switch, helping me understand what's happening behind the scenes and reducing how much I relied on console.log.
|
||
|
||
Later on, I integrated VSTP data from Network Rail using Go. I set up a message handler, subscribed to the VSTP feed using a STOMP library, and processed messages like the db-manager does. This ensured that the database's timetable collection was always up to date, thanks to how I managed transactions.
|
||
|
||
Looking ahead, I'm focused on fine-tuning the interactions between the backend and frontend. I want to make things smoother by sending less data, especially important when dealing with shaky data connections.
|