-
Notifications
You must be signed in to change notification settings - Fork 0
Home
With Type 1 Diabetes (T1D), patients must manage insulin by calculating the insulin dosage based on the carbohydrates they eat.
This app aims to make that process easier and faster.
Users have two numbers given by their doctor, an I:C (Insulin to Carb) ratio and an ISF (Insulin Sensitivity Factor) sensitivity factor. The I:C ratio is a ratio that helps calculate the food dosage, and the ISF sensitivity factor is a factor that helps calculate the correction dosage. A patient takes the amount of insulin they get from adding the food dosage and correction dosage together. MyT1D, an iOS and Android app, lets patients input their personalized Insulin to Carb Ratio and Insulin Sensitivity Factor as well as what they eat to calculate doses for them. MyT1D is different from other apps available on the market however. MyT1D aims to help you understand how your body reacts to different foods a while later. MyT1D shows a user how their blood glucose level changes after they eat certain foods.
The software used for this project is -
- Visual Studio Code
- An IDE used for the coding. I used this to edit my code, write wikis, and manage the Github repository.
- Github
- Used for version management, to roll back changes in case new changes corrupt the page.
- Project Boards, to help with idea organization and visualizing to-do boards.
- Wikis, to write the documentation, narrative, and roadmap
- React Native (v0.68.1)
- The javascript framework used for writing mobile applications.
- Expo (v45)
- The system which manages React Native apps and makes testing and publishing apps easier.
- AsyncStorage (v1.17.3)
- The database used.
- React Native Autocomplete Dropdown (v1.1.6)
- Used for showing the Typeahead component to autofill ingredient names in the insulin editor.
- The Dexcom API for a Dexcom CGM device
- Dexcom is a company that provides CGMs. A CGM, or continuous glucose monitoring, is a device that continuously monitors a person's blood glucose level.
- The API was used to get a patient's Dexcom sugar values to automatically fill it into the equation.
- React Native Chart Kit (v6.11)
- A chart kit letting me display the sugar value changes as a graph.
- Nativebase (v3.2.2)
- A react native styling tool that makes styling screens easy.
- Expo Vector Icons (v13)
- Used for the icons in the app.
- Moving Averages (v4.0.6)
- The library used to calculate the moving average prediction for the glucose level history for a meal.
- React Navigation
- The library used to handle any navigation throughout the app.
- Rapi UI (v0.2.1)
- A React Native styling library that was eventually used instead of nativebase.
Shuchir Jain
4 months
- This project uses Javascript, for me a new language since I had rarely used it before. Before this project, I had to go over javascript fundamentals, learn basic javascript, and understand different concepts that separated javascript from Python, what I previously used.
- After I briefly learned Javascript, I needed to learn React Native, the JS framework that powers my application. I had to learn numerous different elements from React Native, and made many test applications to see how it worked. I had never used Expo (the tool that makes React Native bundling and testing easier) before, so I played around with different things testing how they worked.
- During the process, I had to learn many different React Native elements, such as
- Drawers
- Navigation Objects
- The AsyncStorage Database
- Screens
- States
- All of the styling shown uses the popular pre-made component framework, Nativebase. Styling the screen required me to learn multiple Nativebase elements through the documentation, for example:
- Buttons
- Input Elements
- Switches
- Forms
- Aside from these, I had to explore the Dexcom API, which is a service that allows me to get my user's glucose values from a Dexcom device to automatically fill it into the equation.
- I also had to learn how to use the React native autocomplete dropdown component to autofill ingredient names in the insulin editor.
- I also had to learn how to use the react native chart kit to display the graph of the insulin changes.
- After quite a while, I found the Rapi UI library. When looking through its demos, I found it to look much better than Nativebase. I decided to switch from Nativebase to Rapi UI because of how nice Rapi UI looked. To do this, I needed to learn Rapi UI. I looked through the source code for its demo as well as the documentation to learn how to use it.
- Resources used to learn these programs -
- React Native Documentation (https://reactnative.dev/docs/getting-started)
- Nativebase Documentation (https://docs.nativebase.io/)
- w3schools (To learn JS) (https://www.w3schools.com/)
- Dexcom API Docs (https://gist.github.com/StephenBlackWasAlreadyTaken/adb0525344bedade1e25?permalink_comment_id=4001119#gistcomment-4001119)
- React Native Autocomplete Dropdown Docs (https://www.npmjs.com/package/react-native-autocomplete-dropdown/)
- React Native Chart Kit Docs (https://www.npmjs.com/package/react-native-chart-kit)
- Rapi UI Docs (https://rapi-ui.kikiding.space/docs/)
- Rapi UI Source Code (https://github.com/codingki/react-native-rapi-ui)
None used
- React Native used under the MIT License. Link to License (https://github.com/facebook/react-native/blob/main/LICENSE)
- Nativebase used under the MIT License. Link to License (https://github.com/GeekyAnts/NativeBase/blob/master/LICENSE)
- React Native Autocomplete Dropdown used under the MIT License. Link to License (https://github.com/onmotion/react-native-autocomplete-dropdown/blob/main/LICENSE)
- React Native Chart Kit used under the MIT License. Link to License (https://github.com/indiespirit/react-native-chart-kit/blob/master/LICENSE)
- Asyncstorage used under the MIT License. Link to License (https://github.com/react-native-async-storage/async-storage/blob/master/LICENSE)
- Expo Vector Icons used under the MIT License. Link to License (https://github.com/expo/vector-icons/blob/master/LICENSE)
- Moving Averages used under the MIT License. Link to License (https://github.com/kaelzhang/moving-averages/blob/master/LICENSE-MIT)
- React Navigation used under the MIT License. Link to License (https://github.com/react-navigation/react-navigation/blob/main/packages/drawer/LICENSE)
- Rapi UI used under the MIT License. Link to License (https://github.com/codingki/react-native-rapi-ui/blob/master/LICENSE)