Inspiration:
The recent surge in criminal activity on university grounds inspired our team to develop a solution to tackle student concerns. We aimed to empower students with a tool that would allow them to quickly request for assistance from peers in case of an emergency, fostering a safer atmosphere on campus.

What it does:
Our app, SafeSpace, equips users with an emergency button, which when pressed, sends out an SOS to other nearby users to request immediate assistance. In these life-or-death emergency situations, a quick response time is crucial in preventing escalation of the situation. Rather than having to wait for the arrival of 911 services or campus police, students in danger can get assistance promptly from nearby peers. The alert pins the location of the vulnerable student on a map, allowing other students to easily locate and respond to the threat. In addition, a future revision will allow students to see heat maps of criminal occurrences on campus, helping them avoid dangerous areas.

How we built it:
We employed Google's Flutter development kit to create the application. Flutter provides developers with a variety of libraries, including the Firebase Messaging API, which we used to send push notifications. When the user launches the app for the first time, we make a POST request to the back-end server and store the device's token. If that user ever uses the button, we identify their location and we make another POST request to the server, providing data that can be used to locate that user. We then make an API call to the firebase messaging API and send a push notification to all nearby devices. These notifications will contain the location, which we then use to pin the location on a map (provided by the Google Maps API). The back-end was developed using Python and a Flask server to handle the POST requests and store the data.

Challenges we faced
One of our greatest hurdles was the integration of the Firebase Cloud Messaging API with both our front and back ends. Firstly, sending push notifications to devices through the Firebase API was initially very sluggish, taking up to minutes to send. This rendered the app virtually useless, as users would not be able to get help quickly enough. Thus, we explored alternative means of sending HTTP requests to Firebase from Flutter and ultimately found a way to send alerts instantaneously. Next, ensuring that Flask & Python were well integrated with Firebase was another big hurdle. Despite using the default python requests library correctly and receiving successful codes, Firebase would simply refuse to send push notifications to the Flutter app. After meticulous debugging and exploring, we finally discovered and implemented the firebase\_admin library which solved the issue completely.

Accomplishments that we're proud of:
We are proud of our implementation of the Google Maps API to provide users with a pinned live location of the student in danger. Requesting students will now be provided with aid quickly and intuitively. This was a difficult and tedious task to undertake. Nevertheless, as one of our team values, we prioritized user safety and usability over all else. All in all, we take the greatest amount of pride in having developed a functional and impactful app that directly addresses the safety concerns of students. By fostering a peer-to-peer support system to fight crimes, we promote security and a sense of community on campus.

What's next for SafeSpace:
Firstly, we plan to add a heat map to the app, which highlights the locations of past criminal occurrences. This will deter users from entering a dangerous area of the campus and give valuable insight to campus police, who can further investigate and improve these dangerous hotspots. Indeed, we will work with university authorities and campus security to add more features curated to their respective campus locations.
Moreover, in addition to providing users with the victim's latitudinal and longitudinal positions, we will add altitude to better describe their location in buildings, where it may be difficult to discern which floor the victim is on.
## Inspiration

Our inspiration for the disaster management project came from living in the Bay Area, where earthquakes and wildfires are constant threats. Last semester, we experienced a 5.1 magnitude earthquake during class, which left us feeling vulnerable and unprepared. This incident made us realize the lack of a comprehensive disaster management plan for our school and community. We decided to take action and develop a project on disaster management to better prepare ourselves for future disasters.

## What it does

Our application serves as a valuable tool to help manage chaos during disasters such as earthquakes and fire. With features such as family search, location sharing, searching for family members, an AI chatbot for first aid, and the ability to donate to affected individuals and communities, our app can be a lifeline for those affected by a crisis.

## How we built it

Our disaster management application was built with Flutter for the Android UI, Dialogflow for the AI chat assistant, and Firebase for the database. The image face similarity API was implemented using OpenCV in Django REST.

## Challenges we ran into

We are proud of the fact that, as first-time participants in a hackathon, we were able to learn and implement a range of new technologies within a 36-hour time frame.

## Accomplishments that we're proud of

* Our disaster management application has a valuable feature that allows users to search for their family members during a crisis. By using an image similarity algorithm API (OpenCV), users can enter the name of a family member and get information about their recent location. This helps to ensure the safety of loved ones during a disaster, and can help identify people who are injured or unconscious in hospitals. The image is uploaded to Firebase, and the algorithm searches the entire database for a match. We're proud of this feature, and will continue to refine it and add new technologies to the application.

## What we learned

We were not able to implement the live location sharing feature due to time constraints, but we hope to add it in the future as we believe it could be valuable in emergency situations.

## What's next for -

We plan to improve our AI chatbot, implement an adaptive UI for responders, and add text alerts to the application in the future.
## Slide Deck:

<https://docs.google.com/presentation/d/1GT0Me4Qr1-SmpLIBEQBYZsk2HSYPR-TNh-xXhDNR6Kk/edit?usp=sharing>

## Inspiration:

Climate change is a pressing and dangerous global issue that touches all aspects of life on this planet. (IPCC, 2018).
At the same time, cities are taking up more and more land around the world, reducing the land available for natural, carbon-sequestering environments. (Seto et al., 2012).

Cities around the world have considered or have enacted regulations to promote green roofs as way to help reduce urban carbon emissions impacts (City of Vancouver, 2018a).

## What it does:

urbanForests.ml aims to help city managers, civil servants, and the general public identify potential urban spaces to support green roofs and estimate their ecological and economic impacts.

## How we built it

We trained a machine-learning object recognition model powered by Google Vision Auto-ML to recognize different types of rooftops (ex. low-density housing, stores/warehouses/industrial sites, and skyscrapers). This was done with over 600 datapoints across 60+ images.

The website was then hosted using Microsoft Azure and API integration with Google Cloud Services was encoded with Javascript.

## Challenges we ran into:

Machine Learning Model:

* Limitations with computer vision (hard to perceive depth, i.e. skyscrapers vs. low-density housing).
* Labour intensive process to label training data at scale

Web Development:

* Learning to integrate various frameworks (Google Cloud Services, Microsoft Azure, and custom code).
* JSP to HTML integration.

## Accomplishments that we're proud of:

* Labelling over 600 bounding boxes of custom training data
* Deploying a Google Machine Learning API on a Microsoft Azure hosting platform
* Over 50% precision as measured by Google model metrics

## What we learned:

* Hnat: Data training is hard, labelling data is a very labour-intensive process
* Benny: There are many unforeseen difficulties in deploying multi-platform systems (ex. mixing JSP and HTML)
* Edward: It's hard to maintain a consistent level of productivity and commitment over the entire hackathon.

## What's next for urbanForests:

* More training data to provide better accuracy in low-medium density environments and across larger aerial scales
* Refine user interface
* Identify suitability for intensive vs. extensive green roofs
* Define a custom model
* Acquire HTTPS certificate for webpage

## References:

* City of Toronto, 2005: <https://web.toronto.ca/wp-content/uploads/2017/08/8f39-Report-on-the-Environmental-Benefits-and-Costs-of-Green-Roof-Technology-for-the-City-of-Toronto-Full-Report.pdf> /n
* City of Toronto, 2018: <http://map.toronto.ca/maps/map.jsp?app=TorontoMaps_v2>
* City of Vancouver, 2018a: <https://council.vancouver.ca/20180725/documents/pspc15.pdf>
* City of Vancouver, 2018b: <https://maps.vancouver.ca/>
* IPCC, 2018: <https://www.ipcc.ch/sr15/>
* MacDonald et al., 2016: <https://dalspace.library.dal.ca/bitstream/handle/10222/76724/Green%20Roof%20Carbon%20Sequestration%20Potential%20of%20Dalhousies%20Halifax%20Campus.pdf?sequence=1&isAllowed=y>
* Seto, Güneralp, and Hutyra (2012): <https://www.pnas.org/content/109/40/16083.short>

Image Sources:

* Air Conditioning Units: pixabay.net, <https://www.needpix.com/photo/378272/services-ac-repair-business-heating-services-cooling-services-air-purification-air-conditioning-repair-air-conditioning>
* City Skyline: pixino,
<https://pixnio.com/architecture/city-downtown/city-cityscape-downtown-metropolis-blue-sky-architecture-aerial-urban>
* City of Vancouver from Granville Island: jantiga, <https://pixabay.com/photos/city-downtown-vancouver-631445/>
* City of Vancouver from a Mountain: Colin Knowles, <https://www.flickr.com/photos/colink/4959132756/>
* Green Roof: pxhere, <https://pxhere.com/en/photo/965031>
* Industrial Pollution: Petr Kratochvil <https://www.publicdomainpictures.net/en/view-image.php?image=16891&picture=industrial-pollution>
* Rooftop Gardens: pixfuel, <https://www.pxfuel.com/en/free-photo-qgqzm>

Other Notes:

* "Everything is Fine" meme is a work of parody/commentary.
* Map data used under Open Government License - Vancouver and Open Government License - Toronto (as applies).
* Unless otherwise noted, images used are from CC0 (Public Domain) sources.
* Website Template was provided from <https://templated.co/> under a CC3 (Attribution 3.0 Unported) License