Inspiration

The inspiration for NexETA came from the universal frustration of "Map Fatigue"—the stress of constantly re-checking transit apps while getting ready to see if a bus is delayed. We realized that existing apps are passive; they show you where the bus is, but they don't tell you exactly when you need to move to catch it without wasting time standing at a stop.

What it does

NexETA is a smart transit assistant that reverses the tracking flow. Instead of watching a map, users set a "Ready to Leave" time and a custom walking buffer. The app utilizes a "Departure-First" logic: it monitors live bus ETAs and triggers a precision notification exactly at (Real-time ETA - Walking Buffer). This ensures you leave your seat at the perfect moment—never too early, and never too late.

How we built it

We built a robust, high-performance stack designed for 2026 standards:

Frontend: React Native with the New Architecture enabled for a fluid, modern UI.

Native Layer (Android): Developed in Kotlin to implement Foreground Services, ensuring that notifications are delivered reliably even when the device is in a deep sleep or "Doze" mode.

Backend & Data: * PostgreSQL: Manages all static relational data, including transit routes and stop definitions.

Real-time API: Ingests live GTFS-RT feeds for dynamic bus locations and arrival updates.

Local Storage: SQLite (via expo-sqlite) provides fast access to user preferences and cached schedule data.

Challenges we ran into

One of the primary hurdles was bridging the React Native frontend with the Kotlin native layer to maintain a persistent foreground service without draining the battery. Additionally, synchronizing high-frequency Real-time API updates with the static data in PostgreSQL to calculate precise "Time-to-Go" triggers required significant architectural refinement.

Accomplishments that we're proud of

We successfully implemented a functional Kotlin Foreground Service that guarantees notification delivery, a feature often missing in standard hybrid apps. We are also proud of the "Departure-First" algorithm, which effectively handles the complexity of matching a user's ideal schedule with volatile real-time transit data.

What we learned

This project provided deep insights into the lifecycle of Android background tasks and the nuances of the React Native New Architecture. We also learned how to manage complex relational transit data in PostgreSQL and the importance of localized storage like SQLite for improving app responsiveness during a hackathon.

What's next for NexETA

The next phase for NexETA involves integrating multi-modal transit options and personalized walking speed calibration based on user history. We also plan to expand the logic to support "Multi-Leg" journeys, ensuring that notifications are synced across transfers for a truly seamless "no-map" commute.

Built With

Share this project:

Updates