We saw many events, and videos on the news where overcrowding was an issue and people got hurt. This is a main socio economic issue that causes problems at sporting events, at your job, and even your local grocery store! We wanted to combat this issue by rolling out an app that tracks an accurate estimate of the crowd in the location.

What it does

As we mentioned earlier, our main issue is the socio economic problem of overcrowding. After comprehensive research, our solution was to create an app that controls the amount of people in one location. Our app tracks the amount of people in a location and compares it with the max occupancy of a building. If the amount of people is greater than the max occupancy, then everyone gets notified that it is unsafe. People who are planning to go somewhere, the mall for example, would search up the mall on the website. It will tell them the amount of people at the mall, if it is over the limit, they are advised not to go.

How we built it

We built our website using HTML,CSS, and Javascript along with the google maps api, geolocation api, and the ipinfo api. We used google firestore in order to store data to make the data available to our cross platform service. The mobile app was created using the Flutter framework, with Dart as our coding language and additional packages including the geocoding api, firebase auth, google maps, and local notifications api. We used reverse geocoding to turn a user’s coordinates into an readable address which we later used to determine the occupancies of buildings and alert the user if the building is overcrowded. The mobile app is the main source of data collection in our service, the location of users are collected through a background process running our mobile app. Users can use both the website and the mobile app to view the crowded areas on the map and the statistics generated from the data.

Challenges we ran into

We ran into many challenges during the development of service. One challenge that we ran into was regarding the reverse geocoding, it was difficult to find a Flutter compatible API that supported the recent null safety protocol update. But we were able to find a geocoding API on the Flutter plugin marketplace after extensive searching. For the website, some issues we ran into was the difference in API results. The address for the same location was coming up a bit different, so we did some string splicing in order for them to be equal.

Accomplishments that we're proud of

Some accomplishments we were able to achieve was to be able to use the firebase to connect both the web and app application. Another accomplishment was to be able to update the data in real time. Whenever there was a phone in a location of an overcrowded area, the user would be notified. This is something we are proud of. This helps people because people can look at data and steer away from places with too many people.

What we learned

What we learned was the dangers of having too many crowds in one area. This can be seen because viruses spread through large crowds, there are injuries in large crowds, and it wastes time for every single person in a crowd. We gained more experience using the Maps API, which will help us for future projects.

What's next for Popu-low

For Popu-low we plan to include a new feature where there will be a warning if the limit to how many people in one single area is being approached.When the limit of people is almost reached it will warn people. Another feature we want to add in the future is to use popu-low to connect it with smart city portals as the city’s can manage the population and it will improve safety. This feature will also help this platform grow as data can be much more accurate. The government would possess data such as max occupancies for each building which would give us more accurate data than the max occupancy data we have right now.

Share this project: