Inspiration

One of our teammates is a type 1 diabetic and had to adjust to managing it when diagnosed. An application like this simplifies visualizing the data and also indicates when the insulin to glucose levels are not within safe parameters.

What it does

DiaMetrics takes the data from a diabetic's life and plots the glucose levels against time throughout the day. It lists only the past 24 hours worth of data as to only contain relevant information. Calculations are also done based on the food consumed, as the ratio of the carbohydrates and insulin are exponentially weighted through time in a moving average. This average weights relevant information more and depicts a proper insulin to glucose level ratio.

How we built it

The Highcharts library allowed us to create our dynamic graph. This was supported with a Django back end and an Angular 4 front end to set up the interactive website. The numpy Python library was used to create the algorithm that maintains a weighted insulin to glucose average. Amazon Web Services hosted everything and allowed us to flesh out the project.

Challenges we ran into

Django is unable to host graphs natively which caused our team to go through the process of embedding a Javascript model into the website instead. We went through multiple graphing frameworks before using Highcharts with Angular (an npm plugin made this process very streamlined). Allowing the domain to point to our EC2 instance was also difficult as the website refused to reflect our changes (we believe that it will take 24-48 hours to update the website at the latest based on what was changed).

Accomplishments that we are proud of

Two of the group members had previous experience with back end and front end, but the other two were thrown into the creation of a web application. The process was very fruitful in that all members learned an extensive amount of information regarding web development that conventional learning would have taken more time to teach. Setting up servers and deploying them was fully new to us, and the fact that it is close to fully operational will be considered a success for us.

What we learned

We learned about deployment and the Django REST framework, both of which we explored in our implementation. Some of us learned the fundamentals of JavaScript, while others gained experience using Angular 4. The numpy algorithm provided a different venture into data science, which was motivated by a publication on Exponentially Weighted Moving Average Control Charts (http://pubs.acs.org/doi/abs/10.1021/ie070589b) and how they are effective in detecting shifts in means. This will help forecast future observations and allow users to take preventative actions while allowing them to be easily aware of their average insulin to glucose levels and when this value steps outside of normal distributions. We thought about originally using machine learning in lieu of this, but numerical statistics are a proven way of detecting shifts and measuring any nonrandom patterns in data (as referenced in the paper above).

What's next for our project

We'd like to include much more interactivity in our project, such as being able to select time series for multiple days and cross referencing them over time to accrue a normal behavior pattern for their diabetes. Furthermore, gamifying the project to make kids interested in being in control of their diabetes is an issue that we hope to incorporate.

Our Website

DiaMetrics.org

Share this project:
×

Updates