# Doctors Within Borders

### A crowdsourcing app that improves first response time to emergencies by connecting city 911 dispatchers with certified civilians

## 1. The Challenge

In Toronto, ambulances get to the patient in 9 minutes 90% of the time. We all know
that the first few minutes after an emergency occurs are critical, and the difference of
just a few minutes could mean the difference between life and death.
Doctors Within Borders aims to get the closest responder within 5 minutes of
the patient to arrive on scene so as to give the patient the help needed earlier.

## 2. Main Features

### a. Web view: The Dispatcher

The dispatcher takes down information about an ongoing emergency from a 911 call, and dispatches a Doctor with the help of our dashboard.

### b. Mobile view: The Doctor

A Doctor is a certified individual who is registered with Doctors Within Borders. Each Doctor is identified by their unique code.

The Doctor can choose when they are on duty.

On-duty Doctors are notified whenever a new emergency occurs that is both within a reasonable distance and the Doctor's certified skill level.

## 3. The Technology

The app uses *Flask* to run a server, which communicates between the web app and the mobile app. The server supports an API which is used by the web and mobile app to get information on doctor positions, identify emergencies, and dispatch doctors. The web app was created in *Angular 2* with *Bootstrap 4*. The mobile app was created with *Ionic 3*.

Created by Asic Chen, Christine KC Cheng, Andrey Boris Khesin and Dmitry Ten.
## Inspiration

Every year hundreds of thousands of preventable deaths occur due to the lack of first aid knowledge in our societies. Many lives could be saved if the right people are in the right places at the right times. We aim towards connecting people by giving them the opportunity to help each other in times of medical need.

## What it does

It is a mobile application that is aimed towards connecting members of our society together in times of urgent medical need. Users can sign up as respondents which will allow them to be notified when people within a 300 meter radius are having a medical emergency. This can help users receive first aid prior to the arrival of an ambulance or healthcare professional greatly increasing their chances of survival. This application fills the gap between making the 911 call and having the ambulance arrive.

## How we built it

The app is Android native and relies heavily on the Google Cloud Platform. User registration and authentication is done through the use of Fireauth. Additionally, user data, locations, help requests and responses are all communicated through the Firebase Realtime Database. Lastly, the Firebase ML Kit was also used to provide text recognition for the app's registration page. Users could take a picture of their ID and their information can be retracted.

## Challenges we ran into

There were numerous challenges in terms of handling the flow of data through the Firebase Realtime Database and providing the correct data to authorized users.

## Accomplishments that we're proud of

We were able to build a functioning prototype! Additionally we were able to track and update user locations in a MapFragment and ended up doing/implementing things that we had never done before.
## Inspiration

“Why do I have to go to school?” — a common complaint among both elementary and college students alike. Most of us are told that school is necessary for teaching us marketable skills; but when was the last time you recall hand-computing an integral? Or being forced to memorize a direct quote from a book?
This computational, methodical brand of education has children simply regurgitating information while limiting their ability to retain concepts in the long-term. Picture this: You have a test in two days and your professor has just released the study guide. It reads like a dictionary, with multiple topics to memorize. You do fine on the test, but six weeks later, you have your final and have to sit down and memorize the topics again since you’ve already forgotten them.
This current educational structure isn’t conducive to learning the why and how behind academic topics. Instead, it prioritizes unmarketable, rote memorization tactics at the expense of a holistic understanding toward a given problem.
Students are learning to plug and chug algorithms without learning why they are doing the operation in the first place. This is further leading to a lack of overall learning and a decrease in natural curiosity about subject matter.
Educational disparities between regional school systems also prevent students from receiving contextualized lesson plans that promote a deep understanding.
With Feynman, we wanted to create a study tool that helps students review concepts conceptually to figure out gaps in their knowledge and to ensure that they understand the concepts instead of just memorizing quantitative answers.

## What it does

Feynman quizzes a student using prompts. The student qualitatively responds to the prompt through a text box submission. Once they submit their response, Feynman determines whether or not the response sufficiently addresses the response through a ranking from 1 – 10, where 9 – 10 reflects a sufficient response. If the response is sufficient, the user can move on. If it is not sufficient, the student has three options: resubmit another response, take a hint, or display the correct answer. If the student decides to take a hint, then Feynman will provide a list of topics that the student may want to review in order to sufficiently answer the question. If the student decides to display the correct answer, then Feynman will provide a detailed answer to the question, as well as a specific explanation for why the student’s response was not sufficient.

## How we built it

We integrated the OpenAI ChatGPT API, as well as prompt engineering, to perform a correctness evaluation of a student’s response to a given prompt. We further applied prompt engineering to the API for the “Hints” and “View Correct Answer” tools.

## Challenges we ran into

We struggled with the prompt engineering to ensure that our responses were accurate. We wanted the first response to only grade the numerical accuracy of the input. We also had to maneuver our queries so the responses identified key subjects that the student should review before it explained why the answer was wrong.

## Accomplishments that we're proud of

Flexibility of program — it is very easy to adjust the prompt of the question
Integrating API through natural English — a very cool application of code 3.0 (prompt engineering)

## What's next for Feynman

We want to expanding into multiple subjects and integrate the feedback with a database of lesson plans so the study topics are tailored to a specific class the student is in. This program can also function as an an automated grader for professors so exams are reliant on conceptual understanding rather than formulaic answers. By implementing an automated grader, written responses are as efficient as numeric values for assessments.