# BasicSloth

BasicSloth came with the recognition that there needs to be an effect ground communication method for people in unstable situations. BasicSloth attempts to tackle this issue in a few ways including:

* Using technology which allows for simple PGP encryption and decryption. This allows messages to only be unlocked by those intended.
* Using cheap radio systems that cost thousands of dollars less than "safe" military methods, which may have more vulnerabilities than our system.
* Using radios that can be used on a huge variety of frequencies, preventing blockers from hindering the transferring of information.

# Implementation

Basic Sloth consists of four main components, which are:

* Data entry and encryption - This was done using TK for the gui, and Keybase for data encryption.
* Speech to Text - This was accomplished using Nuance speech to text technology.
* Sending - This was accomplished using a simple file read of the information input, as well as frequency modulation.
* Receiving - This was accomplished using GnuRadio, as well as demodulation and 'segmentation'

# Thanks

We give a special thanks to the Nuance team for their assistance with speech to text. We also give a large thanks to the FSF and the GnuRadio team for continuing to support open source tools that allowed us to continue this project.

# Resources

[From Baseband to bitstream](https://cansecwest.com/slides/2015/From_Baseband_to_bitstream_Andy_Davis.pdf)
[US Frequency Allocations](http://www.ntia.doc.gov/files/ntia/publications/2003-allochrt.pdf)

![Sloth](https://res.cloudinary.com/devpost/image/fetch/s--sIPA_CDd--/c_limit,f_auto,fl_lossy,q_auto:eco,w_900/http://media.giphy.com/media/s4zt0MoO4BJyU/giphy.gif)
## Inspiration

While there are several applications that use OCR to read receipts, few take the leap towards informing consumers on their purchase decisions. We decided to capitalize on this gap: we currently provide information to customers about the healthiness of the food they purchase at grocery stores by analyzing receipts. In order to encourage healthy eating, we are also donating a portion of the total value of healthy food to a food-related non-profit charity in the United States or abroad.

## What it does

Our application uses Optical Character Recognition (OCR) to capture items and their respective prices on scanned receipts. We then parse through these words and numbers using an advanced Natural Language Processing (NLP) algorithm to match grocery items with its nutritional values from a database. By analyzing the amount of calories, fats, saturates, sugars, and sodium in each of these grocery items, we determine if the food is relatively healthy or unhealthy. Then, we calculate the amount of money spent on healthy and unhealthy foods, and donate a portion of the total healthy values to a food-related charity. In the future, we plan to run analytics on receipts from other industries, including retail, clothing, wellness, and education to provide additional information on personal spending habits.

## How We Built It

We use AWS Textract and Instabase API for OCR to analyze the words and prices in receipts. After parsing out the purchases and prices in Python, we used Levenshtein distance optimization for text classification to associate grocery purchases with nutritional information from an online database. Our algorithm utilizes Pandas to sort nutritional facts of food and determine if grocery items are healthy or unhealthy by calculating a “healthiness” factor based on calories, fats, saturates, sugars, and sodium. Ultimately, we output the amount of money spent in a given month on healthy and unhealthy food.

## Challenges We Ran Into

Our product relies heavily on utilizing the capabilities of OCR APIs such as Instabase and AWS Textract to parse the receipts that we use as our dataset. While both of these APIs have been developed on finely-tuned algorithms, the accuracy of parsing from OCR was lower than desired due to abbreviations for items on receipts, brand names, and low resolution images. As a result, we were forced to dedicate a significant amount of time to augment abbreviations of words, and then match them to a large nutritional dataset.

## Accomplishments That We're Proud Of

Project Horus has the capability to utilize powerful APIs from both Instabase or AWS to solve the complex OCR problem of receipt parsing. By diversifying our software, we were able to glean useful information and higher accuracy from both services to further strengthen the project itself, which leaves us with a unique dual capability.

We are exceptionally satisfied with our solution’s food health classification. While our algorithm does not always identify the exact same food item on the receipt due to truncation and OCR inaccuracy, it still matches items to substitutes with similar nutritional information.

## What We Learned

Through this project, the team gained experience with developing on APIS from Amazon Web Services. We found Amazon Textract extremely powerful and integral to our work of reading receipts. We were also exposed to the power of natural language processing, and its applications in bringing ML solutions to everyday life. Finally, we learned about combining multiple algorithms in a sequential order to solve complex problems. This placed an emphasis on modularity, communication, and documentation.

## The Future Of Project Horus

We plan on using our application and algorithm to provide analytics on receipts from outside of the grocery industry, including the clothing, technology, wellness, education industries to improve spending decisions among the average consumers. Additionally, this technology can be applied to manage the finances of startups and analyze the spending of small businesses in their early stages. Finally, we can improve the individual components of our model to increase accuracy, particularly text classification.
## What Heart Shield Does

Key Functions of the App

### Modular Based Course Creation

* Allows therapists and caretakers to pool training and resources.
* By uploading an exercise, the caretaker makes said plan available to all other modules.
* Facilitates the creation of new plans by selecting from a pool of previously loaded exercises/activities.

### Patient Links and SMS Notifications

* Each patient gets texted their individual rehab plan and educational resources to increase patient engagement and rehab participation.
* Each patient's plan is viewable from a unique link sent in the text.

### API and Hospital Dashboard

* The implementation of an API with multiple endpoints facilitates seamless integrations and data analysis across multiple platforms.
* Allows for hospital administrations to view data across all therapists and patients

### AssemblyAI Generated Transcripts for Checkup Meetings

* Using AssemblyAI, therapists can record meeting audio and upload to HeartShield to get a transcript of the audio.
* Transcript accounts for multiple speakers and separates dialogue between speakers

## What We Learned

We refined and reinforced our knowledge of user-interface libraries (React), frameworks (Django), and REST APIs. The most educationally rewarding tasks proved to be connecting the Django framework back-end to the React UI front-end and learning/implementing the AssemblyAI Speech-to-Text API for transcribing patient checkups.

## What's Next for HeartShield

Redefining not only the patient but also the therapist/hospital administration cardiac rehabilitation experience, we intend to launch a two front campaign for circulating information and raising awareness.

* We will market to hospital administrations and promote the intrinsic benefits that Heart Shield offers in the realm of convenience and accessibility
* We will launch a campaign to spread awareness to most at-risk populations (such as the elderly) of the benefits of cardiac rehabilitation in the case of a medical emergency. It will be crucial that we network with Assisted Living Communities and Media Companies most consumed by this demographic.

As for the Heart Shield App itself, we hope to continue elevating the user experience through rolling out UI updates, whilst adding further functionality to make the experience all the more helpful and interconnected