/Combus-Backend

🚌 μž₯μ• μΈμ˜ λ²„μŠ€ μŠΉν•˜μ°¨λ₯Ό λ•λŠ” μ„œλΉ„μŠ€ β™Ώ

Primary LanguagePython

🚌 Combus: 2024 Google Solution Challenge TOP 100

🚎 What is Combus?

Combus provides solutions to lower the inequality on using bus in South Korea. It provides bus reservation and boarding assistance services for the disabled, especially AI bus route number detection and Speech-To-Text reservation for the visually impaired.

πŸ“½οΈ Combus Demo Video

ᄏα…₯ᆷᄇα…₯스 목ᄋα…₯α†Έ



🚏 Combus Team Crew

πŸ§‘β€πŸ’» YouJung Jang πŸ§‘β€πŸ’» JiHyun Lee πŸ§‘β€πŸ’» SinYoung Kang πŸ§‘β€πŸ’» YuNa Jeong

Leader / Backend

Backend / AI

Bus Driver App Frontend

Passenger App Frontend



πŸ“ How to setup Local Combus Server

2. Get the Service key from each APIs below


[1] Korea Public Data Portal for Bus Information Open API

To get the service key from Korea Public Data Portal, Sign up and apply for open APIs below, then you'll get the service key
copy the service key and then paste it at src/main/resources/applicaion.yml line 16

Open API name application link
Get Seoul Bus Arrival Info https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15000314
Get Seoul Bus Position Info https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15000332
Get Seoul Bus Route Info https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15000193
Get Seoul Bus Stop Info https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15000303

πŸ‘‰Click here for more detailed infromation about how to apply!


[2] Google Video Intelligence API

Set up the project through GCP console and fill out the combusVideo JSON file with your own keys.
πŸ“ src/main/resources/combusvideo-413101-ccb434c20a8f.json


3. Execute the init.sql script on your local database server.

πŸ“ file location: src/main/resources/init.sql


4. Now you're ready to run the Combus Server!

πŸ“² Try out with Combus UI from Combus Frontend Repository



πŸ—‚οΈ App Types

Check out the code at Combus Frontend Repository

Passenger App Bus Driver App
App MyApplication ComBus_DriverApp
User Visually impaired and wheelchair users Bus Driver
Function - Select boarding and drop off stops through GPS location
- Bus boarding reservation, voice reservation, and voice service
- Bus number verification service via camera
- Check bus real-time location and scroll through routes automatically
- Next stop reservation info pop-up notification



🎬 How to use Combus

πŸ“± User App

πŸ”Ή General reservation method

  1. Enter the user verification code and press 'START' to log in.
  2. Press 'CREATE' to select the boarding stop among the nearby stops based on the current location.
    (βœ‹Set the current location to South Korea, Seoul)
  3. Select the target bus from the bus list passing through the selected boarding stop.
  4. Choose a drop-off stop among the bus stops.
  5. Reservation completed

πŸ”Ή Voice reservation method

  1. Press 'VOICE' to voice the user verification code and press the 'START' button to log in.
  2. Press 'CREATE WITH VOICE' to start the voice reservation.
  3. Listen to the voice description and press 'START' to recognize the voice.
  4. Designate boarding stop, bus, and drop-off stop and complete the reservation.

πŸ”Ή How to verify bus number after booking

  1. Press 'WEBCAM FOR BUS VERIFICATION' to check the camera screen.
  2. When the bus arrives, press 'START CAPTURE' to start recording the video, and press 'STOP CAPTURE' to stop recording the video.
  3. Check the information below the 'START CAPTURE' button. It'll tell you if it's right bus or not.

πŸ”Ή How to use it after making a reservation

  1. When boarding, press 'BOARDING CONFIRM' to change the status.
  2. When you get off, change the status by pressing 'DROPPING OFF CONFIRM'.

πŸ“± Bus driver App

πŸ”Ή How to check location and reservation information

  1. Enter the driver verification code and press 'LOGIN' to log in.
  2. It scrolls automatically and shows the current bus location with the yellow bus stamp. (Automatic refresh every 30 seconds)
  3. Check the reservation information for each stop.
    (Reservation: Count of boarding passengers / Drop off: Count of dropping off passengers / Wheelchair shape on the right side if there is a wheelchair reservation)
  4. Press each bus stop to check the boarding and drop off passenger's information at each stop.
  5. On the home screen, if the next bus stop has any boarding or drop off passenger based on the current bus location, a pop-up notification appears for 10 second. Press Auto Close or X to close it.



πŸ“‘ Combus System Architecture

스크란샷 2024-02-28 02 34 12

πŸ“‘ API Docs



🎨 Design

πŸ”— Figma