Train and bus rides averaged 5.259 million a day in 2021, we are all familiar with mindless scrolling on public transport. People blame the mobile phone for the decline of social interactions. To this, we question: Can we use the phone again to facilitate serendipitous meetings on our public buses? Our buses are temporary tiny universes, we believe people are more willing to interact in smaller groups [insert research paper here].

What it does

Using GPS data and bus data from the LTA, we match the user to the bus they are on, a temporary chat group would be created for people who are online.

How we built it

Frontend: React, Mapbox

Backend: Python, Geolocation, AWS, NoSQL

Challenges we ran into

Create an actual functioning chat from scratch is really hard. We had to simplify things into a naive database due to a lack of time.

Accomplishments that we're proud of

We were able to consistently get the location data through our phone browser, and subsequently the closest incoming buses for the user to gain access to the bus chat! This is strictly pegged to location and time.

What we learned

Hosting a dynamic webapp is very chaotic. We have many concurrent requests towards a central server, we need a very clear bird's eye view of our full stack architecture to avoid the many time sinks and setbacks that we have suffered in pursuing the lofty goal of a real-time chat. We need to think clearly away from the computer before jumping on to code.

What's next for placeholder

This is simply a proof of concept that a moving chatroom is highly feasible, in the future we can have more stringent user authentication so that we can host chat rooms with greater degree of freedom (i.e., sending multimedia, direct messaging, playing simple online games etc.). We are aware of on-request datasets that provide unique bus tracking with identification number, and even CAN ID records. Given access to such privileged data, we can absolutely ensure perfect compliance of a user being on the correct bus and not spoofing.

Built With

Share this project: