## Inspiration

Witnessing the atrocities(protests, vandalism, etc.) caused by the recent presidential election, we want to make the general public (especially for the minorities and the oppressed) be more safe.

## What it does

It provides the users with live news update happening near them, alerts them if they travel near vicinity of danger, and provide them an emergency tool to contact their loved ones if they get into a dangerous situation.

## How we built it

* We crawl the latest happenings/events using Bing News API and summarize them using Smmry API.
* Thanks to Alteryx's API, we also managed to crawl tweets which will inform the users regarding the latest news surrounding them with good accuracy.
* All of these data are then projected to Google Map which will inform user about any happening near them in easy-to-understand summarized format.
* Using Pittney Bowes' API (GeoCode function), we alert the closest contacts of the user with the address name where the user is located.

## Challenges we ran into

Determining the credibility of tweets is incredibly hard

## Accomplishments that we're proud of

Actually to get this thing to work.

## What's next for BeSafe

Better UI/UX and maybe a predictive capability.
## Inspiration

We realized that while there are many news sources out there, with this, we can see what countries in the world are news hotspots - the ones that have the most things going on. You can view the world from a new perspective with our World New Map, seeing which countries are the centers of action and events.

## What it does

It uses UiPath for web scraping to gather data from news sites. The program will then create a heat map based on the number of news reports sorted by category and the severity. The mobile app will then notify it's users when there is a problem with an area that they are in or is near them.

## How we built it:

#### WebScraping(UI Path)

We used UiPath to gather data from news sites via web scraping. We accumulated around 5000 different data entries and exported them into CSVs, which are then put in a MongoDB Atlas database.

#### Cloud Storage(MongoDB Atlas)

We created a main database and sorted our data into about 100 different subfolders for different countries around the world.

#### Web Application (NodeJS)

Using Node.js and Google Charts we created a heat map based on the media coverage of the areas. We exported the mongoDB as a json and created it into a graph. We had a seperate file for each country to show the news. Clicking on Canada would show each province and show many articles each province has.

#### Android App(Radar.io)

We used Kotlin for the moblie app and used Radar.io to get the location of the user and notify them if they are in an area with a safety concern.

## Deploy with Heroku

We deployed this software to the web with Heroku. Originally we had it running locally for testing, afterwards, we converted to a version that we could deploy with Heroku.

## Assign a domain name

We used the free domain code to assign it to a .online domain.

## Challenges we ran into

Radar.io software was complicated, there was very little documentation. Radar.io also had a bug on their end that did not allow the location tracking to work properly which forced us to hard code the app. There was also numerous issues with Heroku as we struggled to convert it from the local to a version we could deploy.

MongoDB's official documentation was vague and confusing, we had to resort to third-party documentation to use it.

We also had to create a heat map, which we were originally going to make in plot.ly.

## Accomplishments that we're proud of

Learning how to use Radar.io, UiPath, and MongoDB Atlas.

## What we learned

How to use Radar.io, UiPath, MongoDB Atlas, Heroku, Custom Domains, Static web-hosting.
We also learned fast json manipulation to create graphs and output files.

## What's next for WorldNewsMap

We could use machine learning to allow the application to predict future media coverage. We could then alert users that there could be potential danger in the area in the future. We also need more data from UIPath, the data should be proportional.
## Inspiration

Recent mass shooting events are indicative of a rising, unfortunate trend in the United States. During a shooting, someone may be killed every 3 seconds on average, while it takes authorities an average of 10 minutes to arrive on a crime scene after a distress call. In addition, cameras and live closed circuit video monitoring are almost ubiquitous now, but are almost always used for post-crime analysis. Why not use them immediately? With the power of Google Cloud and other tools, we can use camera feed to immediately detect weapons real-time, identify a threat, send authorities a pinpointed location, and track the suspect - all in one fell swoop.

## What it does

At its core, our intelligent surveillance system takes in a live video feed and constantly watches for any sign of a gun or weapon. Once detected, the system immediately bounds the weapon, identifies the potential suspect with the weapon, and sends the authorities a snapshot of the scene and precise location information. In parallel, the suspect is matched against a database for any additional information that could be provided to the authorities.

## How we built it

The core of our project is distributed across the Google Cloud framework and AWS Rekognition. A camera (most commonly a CCTV) presents a live feed to a model, which is constantly looking for anything that looks like a gun using GCP's Vision API. Once detected, we bound the gun and nearby people and identify the shooter through a distance calculation. The backend captures all of this information and sends this to check against a cloud-hosted database of people. Then, our frontend pulls from the identified suspect in the database and presents all necessary information to authorities in a concise dashboard which employs the Maps API. As soon as a gun is drawn, the authorities see the location on a map, the gun holder's current scene, and if available, his background and physical characteristics. Then, AWS Rekognition uses face matching to run the threat against a database to present more detail.

## Challenges we ran into

There are some careful nuances to the idea that we had to account for in our project. For one, few models are pre-trained on weapons, so we experimented with training our own model in addition to using the Vision API. Additionally, identifying the weapon holder is a difficult task - sometimes the gun is not necessarily closest to the person holding it. This is offset by the fact that we send a scene snapshot to the authorities, and most gun attacks happen from a distance. Testing is also difficult, considering we do not have access to guns to hold in front of a camera.

## Accomplishments that we're proud of

A clever geometry-based algorithm to predict the person holding the gun. Minimized latency when running several processes at once. Clean integration with a database integrating in real-time.

## What we learned

It's easy to say we're shooting for MVP, but we need to be careful about managing expectations for what features should be part of the MVP and what features are extraneous.

## What's next for HawkCC

As with all machine learning based products, we would train a fresh model on our specific use case. Given the raw amount of CCTV footage out there, this is not a difficult task, but simply a time-consuming one. This would improve accuracy in 2 main respects - cleaner identification of weapons from a slightly top-down view, and better tracking of individuals within the frame. SMS alert integration is another feature that we could easily plug into the surveillance system as well, and further compound the reaction improvement time.