This is just a simple web page showing almost all transit stops in southern Ontario. As of now, there are a few agencies who don't publish publicly accessible data, or make it difficult to attain.
Major transit agencies included include YRT, TTC, OC Transpo, MiWay, GRT, and HSR.
This project was an absolute pain to develop. This was primarily because of the fact that my web dev experience is next to none, and thus me deciding to straight up dive into this project was probably a pretty stupid idea. It seems to make a lot more sense to have started with a simpler project, such as a personal website, but no, stupid old me thought it would be easy enough to make, and tryed anyways.
In general, most aspects were ok, but if you are to view the demo, you will definitely notice that it is very, very slow to load all of the agencies. In addition, it consumes enormous amounts of RAM, to the tune of 2 GB, which your computer may not be able to handle.
Thankfully, I have some experience in C and Python, and thus I was able to kind of get the hang of the new language and roll with it! I did, however, end up relying quite a bit on AI for debugging (and occasionally coding), as this is way above my pay grade.
After that challenge, there was the GTFS.
The problem with quite a few transit agencies is that they straight up do not (at least it seems) want you to get your hands on GTFS data.
What I mean by this is that for more than one transit agency they put their data behind registration walls, where, believe it or not, they asked for the company I worked with. As an open source developer, that was honestly kind of insulting. On the other hand, there were several agencies where they clearly said that this data is open for all to use, beit citizens, or companies.
As far as web pages go, this is a pretty standard project to run, you simply visit the website, and click on the different transit agencies to enable the markers.
Let's take the TTC for example.
After clicking the TTC's check box, you will, albeit after it lagging out for a few seconds, come to see the bus stops. As rendering every single stop would be a pretty stupid idea, it shows something like the following.
Next up, if want to zoom in onto the stops, you can easily just click one of the clusters, or naturally zoom into the area you are interested in.
Lets take downtown toronto for this example. Please note that YRT, UP Express and GO transit have also been enabled.
Here, I have my mouse hovering over the downtown area showing 1192 stops. You can see how the area around the area in which these stops are in has become blue.
Clicking on it gives you the following picture!
Next, if you so desire, you can continue to do this on and on until you find a place you like!
To Zoom in and out, it is honestly quite intuitive, simple press the '+' button to zoom in and the '-' button to zoom out. With your mouse, you can simply scroll up to zoom in and down to zoom out.
Every stop comes with stop information, and this can be gotten by clicking on the stop! Its quite simple, and for this example we'll take the GO Transit stop at Union Station.
The format in which information is given is simply Station Name (Agency)
As mentioned, AI was used for parts of the code. This was primarily in the App.jsx file's checklist function and template.
All the GTFS files were manually sourced, consuming likely the most amount of time, and the loadStops function is likely my greatest achievement, considering how little experience I have!
No part of this readMe, except alt text, was generated by AI.
You can take a look and explore the page yourself at https://transit-webapp-grt.vercel.app/