Skip to content
/ bus Public

React-based bus tracking web app for rapidPenang, rapidKL and rapidPahang in Malaysia (in development)

Notifications You must be signed in to change notification settings

weareblahs/bus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

bus?

...yes, that is the project name. Keep it simple. It's originally called "Is there any bus for this route near me?" but it's too long.

What's this?

This is a simple-to-use bus tracker that utilizes the GTFS realtime feed from the open data by Malaysian Government, which is then used to track buses. Data is provided by Prasarana via data.gov.my.

Status

Provider Data source Status Remarks
rapidPenang data.gov.my GTFS-Realtime data (Direct) Available (static only) Station stop data is inaccurate due to stop estimation between current coordinates and static station data
rapidKL data.gov.my GTFS-Realtime data (Direct) Available Station stop data is inaccurate due to stop estimation between current coordinates and static station data
rapidKuantan data.gov.my GTFS-Realtime data (Direct) Available (static only) Station stop data is inaccurate due to stop estimation between current coordinates and static station data
myBAS Johor Bahru data.gov.my Planned

What does "Direct" mean?

"Direct" means that this web app will fetch the available API endpoints on data.gov.my instead of relying on external APIs.

Issues

  • Global: Station info inaccurate for some stations (previous, current, next). Please see myRapid PULSE app for accurate info. Location data is accurate.
    • Known ones include: rapidPenang (for mainland and loop). Please do help me confirm about accuracy of rapidKL and rapidKuantan data.
  • Global: Some data shows "unknown location" for all 3 station placeholders. This is due to some bugs on the getNearest code.
  • Global: If the array is blank (no data), nothing will be shown except for "Bus info". There will be a placeholder soon.
  • Global: Searching for loop routes will result in getNearest counting the first appearance of the station instead of the second appearance.
  • rapidPenang and rapidKuantan: No realtime data available through this web app due to parsing reasons. Refer to myRapid PULSE for realtime bus data for these providers.
  • Global: Unable to parse days through static data, which I do not understand how trip IDs work in this case
  • Global: Search for static data does not work

Disclaimer

Do note that the data here is not completely accurate - it is recommended to check for myRapid PULSE (dynamic) or Google Maps (static) for more accurate info for bus arrival times.

About station data

Station names (including route names) are stored as a static JSON file under the data/stnInfo directory, while the file names being [PROVIDER]_[ROUTE_NUMBER][DIRECTION].json. For the direction:

  • A is the forward position. (example: 301A directs to JETI - RELAU in rapidPenang)

  • B is the reverse position. (example: 301B directs to RELAU - JETI in rapidPenang)

    Data includes:

  • Station name is stored under stop_name.

  • Latitude and Longitude of the station are stored respectively under stop_lat and stop_long.

  • Stop ID are stored under stop_id.

  • Station sequence are stored under stop_sequence. These data are originally from the open data mentioned as a GTFS data ZIP file (converted to JSON from CSV and removed duplicate entries for easy conversion).

See here for more information on the structure for static data.

Other plans for this project

  • Crowdsourced bus information (including bus type and others)
  • Crowdsources bus status, which user can report if the bus gets delayed and other info
  • Pin favorite bus routes so it will appear when web app launched
  • Framework-based app for Android
  • Geolocation, which requires an large update on route data
  • Reverse searching (search for station instead of routes), which (also) requires an large update on route data

Where can I see this project?

Currently in beta - which can be accessed via https://b.ntyx.dev. Alternatively, you can also access the web app via https://bqm.vercel.app.

Do note that a new version of bus? is coming soon, which a preview of it can be seen on https://bqmv2.vercel.app.

Credits

  • Data sourced from data.gov.my (see documentation here)
  • Icons sourced from Font Awesome's icon library via react-icons
  • getNearest algorithm from https://www.geodatasource.com, which the original license statement can be found on the distance function under /src/appComponents/getNearest.jsx.

About

React-based bus tracking web app for rapidPenang, rapidKL and rapidPahang in Malaysia (in development)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published