Table of Contents
A bus search application for providing bus information in Taiwan.
Which let you:
- Find bus station or route information by search terms.
- Find the closest bus station near you by searching your location.
Our goal is providing more easiest and fastest way to get the bus information, with clean UI / UX and reliable software system.
-
System
- System will save your preference by default, and keep it 1 day.
- If any error occur, system will that you knows what happened by send you notification.
- System will ask your geolocation, but not force you.
- System will let you know they are busy by give you a cute car animation.
-
Home Page
-
Search
User can search by terms using search bar,
We make user interface as simple as possible to reduce the complexity of using, which depends on Hick's law.
-
Recommand Search
We provide
recommand searchresults when page load, which using user current position by default. -
Realtime Search
We provide
realtime searchwhen user typing, which will update the recommand search on the fly. -
Fuzzy Search
When user doesn't get the result they want, they can just hit
search submitor hitenter, system will provide the search results for them, which implementfuzzy searchbehind the scene.The priority of search below:
- if
termmatch theroute nameexactly or there's only onerouteresult, will navigate toroutewith route id. - if
termmatch thestation nameexactly or there's only onestationresult, will navigate tostationwith station id. - if there have many
stationsin results, will navigate tolocationswith station results. - if there have many
routesin results without anystations, will stay athomebut highlight the match results below. - if there's no match,
will navigate to
notfoundwith yourterm.
- if
-
Recently Search
When user navigate to the result, system will save the search history automatically, and present on the UI. system will keep your record 7 days, after that will expired.
-
-
Map
- Was implemented by
leaflet,react-leafletandmapbox. - We using
light-v10mapbox style.
- Was implemented by
-
Location Page
-
Fuzzy Result
When system get multiple
stationsresults, will lead user tolocationspage, user have a right to can choose the results by themself. -
Nearby
User can find nearby
stationsby specifylocation. -
URL
You can send
urllink to your friends, system will give them same result as yours. -
Station List
You can click
stationin list to navigate. -
Map
- We will give you
markerwithnumberon top, which map to the index of result list. - You can click
markerto navigate.
- We will give you
-
-
Station Page
-
URL
You can send
urllink to your friends, system will give them same result as yours. -
Routes List
-
Routes information in every item will show:
- Route name
- Next arrival time
- Route departure and destination
-
We provide current trip status below:
- Default
- Not Depart
- Skipped
- Terminate
- Unscheduled
-
Arrival Time
System will give you next arrival time every 5 seconds.
-
-
Map
- We highlight the
markerwhich you currently selected, withstation nameon top. - We will give you
nearby stationwithnumberon top, which map to the index of result list. - You can navigate to
nearby stationwith clicknearby station marker.
- We highlight the
-
-
Route Page
-
URL
You can send
urllink to your friends, system will give them same result as yours. -
Map
- We give user
current positionwhich depends on Geolocation from user's device. - We will give you
station markerbydirectionyou currently selected. - We will give you
station markerwithnumberon top, which map to the index of result list. - When user
zoom-inthenumberandnamewill show on top ofstation marker. - You can navigate to
station arrival timewith click onstation marker. - We will give you
route path.
- We give user
-
Station List
-
A tabs for changing
sub routesbetween multipledirection. -
Station information in every item will show:
- Station name
- Next arrival time
- Trip Status
-
A toggle for changing
arrival timebetweenremainoractualtime. -
When user click on
stationwill changemapcurrent focusmarker.
-
-
Route Information
-
A tabs for navigate
sectionin information page. -
Route name
-
Departure and Destination
-
Serve Location
-
Payment
-
Schedule
- Weekday
- Weekend
- Flexible Timetable
- Fixed Timetable
-
-
React based project with Typescript.
- Vite
- Tailwindcss
- React
- React Router
- Redux with RTK-Toolkit
- Leaflet
- Mapbox API
- Framer Motion
- date-fns
- ramda
- Vercel
Python with FastAPI Framework.
- Poetry
- FastAPI
- Google Geocoding
- Redis
- GCP CloudRun
Please make sure you already have:
npm installor using
yarnnpm run devor using
yarn devwhich will open https://localhost:3000 for this project,
NOTICE
Because we using Geolocation API,
this feature is available only in secure contexts (HTTPS),
please make sure run on https for local development.
See the open issues for a list of proposed features (and known issues).
- Top Feature Requests (Add your votes using the ๐ reaction)
- Top Bugs (Add your votes using the ๐ reaction)
- Newest Bugs
Reach out to the maintainer at one of the following places:
- GitHub Discussions
- Contact options listed on this GitHub profile
If you want to say thank you or/and support active development of Taiwan Bus Search:
- Add a GitHub Star to the project.
- Tweet about the Taiwan Bus Search.
- Write interesting articles about the project on Dev.to, Medium or your personal blog.
Together, we can make Taiwan Bus Search better!
First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.
Please read our contribution guidelines, and thank you for being involved!
For a full list of all authors and contributors, see the contributors page.
Taiwan Bus Search follows good practices of security, but 100% security cannot be assured. Taiwan Bus Search is provided "as is" without any warranty. Use at your own risk.
For more information and to report security issues, please refer to our security documentation.
This project is licensed under the GNU General Public License v3.
See LICENSE for more information.
Thanks you very much, can't bring this project out without:


