## Inspiration

We were inspired very locally, by the resident hot dog stand owner, Nasir Al-Huttam. He's been taking orders for the UTSc community for almost a decade, and has been in need of an easier way of taking orders, as taking orders through text has been somewhat cumbersome for him.

## What it does

Using a chatbot powered by Microsoft Azure and Recast.ai, we've created a chatbot that takes orders from the customer from the Facebook Messenger App, and gives the user an interactive, intuitive experience akin to buying from another human, allowing them to even pay for their meal in advance, further streamlining the process.

## How we built it

For frontend, we used HTML and CSS, in combination with JQuery and Javascript to receive json files from the serverside, and interpret that information into display material for the business owner to look.

Recast.ai as well as the Microsoft Bot Framework was used to create the chatbot and program natural language and reactive conversation with the user. Node.js was also used.

The backend is powered by Python and Flask, using Microsoft Azure to deploy the database, postgreSQL, SQLAlchemy were also used.

## Challenges we ran into

Frontend-backend interactions, getting the JQuery to work properly.

## Accomplishments that we're proud of

Creating a functional chatbot that can handle a variety of situations, creating a clean, sleek user interface on the frontend.

## What we learned

Frontend-to-backend interactions, JQuery functionality, the basics of creating a chatbot.

## What's next for DogGo

Finishing the app in time to deploy to Nasir, then seeing if it can be looked into as a business venture.
## Inspiration

In the current media landscape, control over distribution has become almost as important as the actual creation of content, and that has given Facebook a huge amount of power. The impact that Facebook newsfeed has in the formation of opinions in the real world is so huge that it potentially affected the 2016 election decisions, however these newsfeed were not completely accurate. Our solution? FiB because With 1.5 Billion Users, Every Single Tweak in an Algorithm Can Make a Change, and we dont stop at just one.

## What it does

Our algorithm is two fold, as follows:

**Content-consumption**: Our chrome-extension goes through your facebook feed in real time as you browse it and verifies the authenticity of posts. These posts can be status updates, images or links. Our backend AI checks the facts within these posts and verifies them using image recognition, keyword extraction, and source verification and a twitter search to verify if a screenshot of a twitter update posted is authentic. The posts then are visually tagged on the top right corner in accordance with their trust score. If a post is found to be false, the AI tries to find the truth and shows it to you.

**Content-creation**: Each time a user posts/shares content, our chat bot uses a webhook to get a call. This chat bot then uses the same backend AI as content consumption to determine if the new post by the user contains any unverified information. If so, the user is notified and can choose to either take it down or let it exist.

## How we built it

Our chrome-extension is built using javascript that uses advanced web scraping techniques to extract links, posts, and images. This is then sent to an AI. The AI is a collection of API calls that we collectively process to produce a single "trust" factor. The APIs include Microsoft's cognitive services such as image analysis, text analysis, bing web search, Twitter's search API and Google's Safe Browsing API. The backend is written in Python and hosted on Heroku. The chatbot was built using Facebook's wit.ai

## Challenges we ran into

Web scraping Facebook was one of the earliest challenges we faced. Most DOM elements in Facebook have div ids that constantly change, making them difficult to keep track of. Another challenge was building an AI that knows the difference between a fact and an opinion so that we do not flag opinions as false, since only facts can be false. Lastly, integrating all these different services, in different languages together using a single web server was a huge challenge.

## Accomplishments that we're proud of

All of us were new to Javascript so we all picked up a new language this weekend. We are proud that we could successfully web scrape Facebook which uses a lot of techniques to prevent people from doing so. Finally, the flawless integration we were able to create between these different services really made us feel accomplished.

## What we learned

All concepts used here were new to us. Two people on our time are first-time hackathon-ers and learned completely new technologies in the span of 36hrs. We learned Javascript, Python, flask servers and AI services.

## What's next for FiB

Hopefully this can be better integrated with Facebook and then be adopted by other social media platforms to make sure we stop believing in lies.
## Inspiration

During extreme events such as natural disasters or virus outbreaks, crisis managers are the decision makers. Their job is difficult since the right decision can save lives while the wrong decision can lead to their loss. Making such decisions in real-time can be daunting when there is insufficient information, which is often the case.

Recently, big data has gained a lot of traction in crisis management by addressing this issue; however it creates a new challenge. How can you act on data when there's just too much of it to keep up with? One example of this is the use of social media during crises. In theory, social media posts can give crisis managers an unprecedented level of real-time situational awareness. In practice, the noise-to-signal ratio and volume of social media is too large to be useful.

I built CrisisTweetMap to address this issue by creating a dynamic dashboard for visualizing crisis-related tweets in real-time. The focus of this project was to make it easier for crisis managers to extract useful and actionable information. To showcase the prototype, I used tweets about the current coronavirus outbreak.

## What it does

* Scrape live crisis-related tweets from Twitter;
* Classify tweets in relevant categories with deep learning NLP model;
* Extract geolocation from tweets with different methods;
* Push classified and geolocated tweets to database in real-time;
* Pull tweets from database in real-time to visualize on dashboard;
* Allows dynamic user interaction with dashboard

## How I built it

* Tweepy + custom wrapper for scraping and cleaning tweets;
* AllenNLP + torch + BERT + CrisisNLP dataset for model training/deployment;
* Spacy NER + geotext for extracting location names from text
* geopy + gazetteer elasticsearch docker container for extracting geolocation from locations;
* shapely for sampling geolocation from bounding boxes;
* SQLite3 + pandas for database push/pull;
* Dash + plotly + mapbox for live visualizations;

## Challenges I ran into

* Geolocation is hard;
* Stream stalling due to large/slow neural network;
* Responsive visualization of large amounts of data interactively;

## Accomplishments that I'm proud of

* A working prototype

## What I learned

* Different methods for fuzzy geolocation from text;
* Live map visualizations with Dash;

## What's next for CrisisTweetMap

* Other crises like extreme weather events;