# **Project Overview**

## **Application Vision/Goal:**

The two main public transit providers for Binghamton University students are OCCT and BC buses. Each provider has their own routes, schedules, and quirks, making the simple question “how do I get there” surprisingly difficult to answer, especially in a timely manner. This project will pull data from both services to get people to their destinations. 

Users will be able to input a start and end location and the app will respond with a route using either, both or neither bus providers to get there.

## **Scope:**

Allow viewing bus routes and pick start and end point and get bus route between them.

## **Deliverables:**

Google maps which you can click on 2 points to get route between them and get a visual of the bus routes for current time.

## **Success Criteria:**

Making something which is more functional than [Spencer's HackBU 2024 project](https://git.pagwin.xyz/Pagwin/BinghamonBetterBus), ([Video demo](https://youtu.be/5WcKPhMqveY)) hackBU project doesn't handle Broome county buses due to a bug and suggests comically bad bus routes.

## **Assumptions:**

- etaSPOT data is reasonably accurate
- Broome county GTFS data is reasonably accurate
- Google maps will continue to exist and allow for drawing of path on map

## **Risks:**

- if we want/need static OCCT data that will involve manual work
- potential combinatorial explosion causing calculation to take too long

## **Design / Architectural Review:**

Client server split maybe database

## **Test Environment:**

Unit tests for the backend.

---

# **Team Setup**

## **Team Members:**

- Spencer Powell
- Levi Lesches

## **Team Roles:**

- Spencer: server
- Levi: client

## **Team Norms:**

- handle CI for their side of the app

## **Application Stack:**

- Caddy for reverse proxy
- Flutter for client
- Google Maps API for visual
- Nodejs + Typescript for backend
- sqlite for db

### **Libraries/Frameworks:**

- JSON for api
- etaSpot for dynamic OCCT info
- maybe scraping for static OCCT info
- GTFS data for static BC info
