Inspiration

Students face the daily struggle of finding a good spot to study or hang out with their friends, often having to walk miles only to see even the most secret spot filled to the brim with people. Moreover, many people feel uncomfortable, violated, or even in danger in overcrowded settings like full buses. This should be avoidable - people shouldn't have to sacrifice their time, energy, and well-being simply because of limited information. Additionally, knowing which areas are overcrowded can help architects, civil engineers, city planners, and public transportation systems about areas that could benefit from more attention. There is also the security use case, where users can see the number of unknown devices in their proximity, which alerts them to potential strangers who they might not be aware of.

What it does

CrowdSense calculates the number of people around a user, based on the number of nearby devices around them. It'll also put this data onto a map alongside other crowdsourced data that can help a person plan out their journey throughout the day. For example, it could work as sort of a travel agent that shows people if there's a massive crowd in an area or as a study planner that guides a student to the quietest library. Honestly, there's so many potentials for anonymous data collection, from better subway seats to protecting yourself from strangers. A key feature about CrowdSense is that it does not require everyone in an area to have the app. Instead, just one user can collect information about a region, which allows for a much more practical implementation of the app. Users are also unable to see information about crowds without scanning their own location, which prevents malicious trackers.

How we built it

We built an iOS app using Xcode, which identifies nearby devices (within a determined radius of approximately 5 meters). It does this through tracking and filtering RSSI signals, which indicate the power level of wireless transmission from other devices. To determine the approximate number of people in the region, the number of unknown devices (registered under different Apple IDs) is divided by 3, then 1 is added to that number. We also have a supabase database to track the results from each scan, and this was intended to generate a heat map, which we ended up temporarily implementing through client side hard coding (which would only users to benefit from their own scans).

Challenges we ran into

A major challenge we ran into at the start was finding our idea. Neither of us had done a major college hackathon before, so we didn't know what to do. However, after hours of brainstorming, we found this idea through our shared difficulties of finding study spaces and crammed areas. Another challenge we had was figuring out and learning how to use different languages and platforms during our time here at PennApps.

We also faced challenges with the data types involved in using Supabase, namely Encodables and Sendables. We weren't able to narrow down the solution to this error due to out-of-date documentation, though it will be an important part of our next steps. This also led to us not implementing React Native, which we also feel is a significant next step in order to increase the scope of our project beyond iOS users.

Accomplishments that we're proud of

For both of us, this was our first college hackathon, and we were both honestly proud of how much we were able to do even as beginner full-stack developers. We originally planned on leaning towards our experience in algorithms, but decided to try to focus on learning app development instead. We really enjoyed playing around with different development softwares and identifying the ones that we found most effective.

What we learned

One big learning point for both of us was about the steps to building the backend and frontend for iOS. We stayed up all night trying to decipher different coding platforms, and we were able to learn a lot about new coding languages and systems such as JavaScript and Supabase. Another important lesson was how to balance using brute force, algorithmic debugging, and AI help to get through the many persistent bugs from simple typos to library faults.

What's next for CrowdSense

We hope to expand onto more platforms, such as edge computing devices placed on buses or in popular areas with limited capacity. Plus, we want to implement more user customization, including favorite locations and notifications on vacancy/overcrowdedness, and we hope to wrap up and finish our work on the multi-personal platform part that can help direct foot traffic. We really hope to introduce others to this app and show them how using this app in different ways can benefit their academic, social, and physical lives.

Built With

Share this project:

Updates