Trek Track utilizes CareKit, ParseCareKit, and ResearchKit to build the foundation of the app, store the data in the cloud and provide indepth data collection respectively.
Trek Track is an application that focuses on building good habits through simple daily tasks. These habits can help the user gain more control of their day-to-day life. This process must stay as simple as possible. That is why Trek Track includes a default daily schedule right out of the box. This schedule of tasks includes items such as eating three meals a day, resisting the urge to get on your phone first thing in the morning, logging breaks from work every hour, etc. All these tasks are organized by the order in which you are supposed to complete them, however, these schedules for the tasks are only suggestions allowing the user to complete them in any order. This is designed to help people get out of a rut without having to overthink it. The simplicity of Trek Track is what differentiates it from other habit-forming apps. Rather than providing a blank slate and potentially overwhelming the user, Trek Track gives the user a starting point that focuses on the little things and attempts to emphasize how important they are to improving everyday life.
To learn more about this application, watch the video below:
Trek Track is designed for people who find themselves lacking the motivation to do even the most basic tasks. Whether they are depressed, looking for a change, or both. Trek Track can kickstart their journey right out of the box. Trek Track is not a fix-all for the users' problems, but it can help encourage them to seize the day and feel accomplished when they end the day and can see all the productive things they did. It is for those people who want to build long-lasting daily habits. That is why almost every task is assigned every day or every other day. Trek Track is not designed for those who want to lay out their calendar for the month. It is for those who want to work on focusing on what they can do today.
Developed by:
- Curt Whelan -
University of Kentucky
,Computer Science
Base Code Provided by:
- Corey Baker -
Professor at University of Kentucky
,Computer Science
ParseCareKit synchronizes the following entities to Parse tables/classes using Parse-Swift:
- OCKTask <-> Task
- OCKHealthKitTask <-> HealthKitTask
- OCKOutcome <-> Outcome
- OCKRevisionRecord.KnowledgeVector <-> Clock
- OCKPatient <-> Patient
- OCKCarePlan <-> CarePlan
- OCKContact <-> Contact
Use at your own risk. There is no promise that this is HIPAA compliant and we are not responsible for any mishandling of your data
- I stylized the app to have a uniform look with color coding as well.
- I implemented the beginning steps of the ResearchKit and fully converted the onboarding task, and consent task, to suit my app.
- I used an AI program to generate my app logo and stylized my app around it.
- I created a login page that looks very different from the original app and fixed a bug from the midterm where I had two email fields in the signup section.
- I created five of my OCKTasks: Avoid the phone for an hour in the morning, eating three meals a day, take a break from work every hour, clean up, and bathe. All of which are different card styles.
- I created two HealthKit Tasks: Water Intake (L) and Vitamin D Intake (IU), both of which were NumericProgress cards.
- Gave users the ability to make their HealthKit tasks.
- Gave users the ability to make their CareKit tasks, including fields for Title, Instructions, and Motivation, as well as the choice of what card style they want.
- Revamped the Profile View to use a form to gather Patient and Contact data. I also added a MyContact View inside the Profile View which only displays the current user’s contact and updated the information inside their contact if the information was changed.
- Revamped the Contact View to allow for contacts to be searched for, as well as filter out the current user’s contact.
- Added a link card to the top of the Care View which links to a high-energy song on YouTube to try and motivate users
- Attempted to implement a more fleshed-out custom scheduling system
- Created various Views, ViewModels, ViewModelControllers, Extensions, Constants, etc.
- Signup/Login screen tailored to app
- Signup/Login with email address
- Custom app logo
- Custom styling
- Add at least 5 new OCKTask/OCKHealthKitTasks to your app
- Have a minimum of 7 OCKTask/OCKHealthKitTasks in your app
- 3/7 of OCKTasks should have different OCKSchedules than what's in the original app
- Use at least 5/7 card below in your app
- InstructionsTaskView - typically used with a OCKTask
- SimpleTaskView - typically used with a OCKTask
- Checklist - typically used with a OCKTask
- Button Log - typically used with a OCKTask
- GridTaskView - typically used with a OCKTask
- NumericProgressTaskView (SwiftUI) - typically used with a OCKHealthKitTask
- LabeledValueTaskView (SwiftUI) - typically used with a OCKHealthKitTask
- Add the LinkView (SwiftUI) card to your app
- Replace the current TipView with a class with CustomFeaturedContentView that subclasses OCKFeaturedContentView. This card should have an initializer which takes any link
- Tailor the ResearchKit Onboarding to reflect your application
- Add tailored check-in ResearchKit survey to your app
- Add a new tab called "Insights" to MainTabView
- Replace current ContactView with Searchable contact view
- Change the ProfileView to use a Form view
- Add at least two OCKCarePlan's and tie them to their respective OCKTask's and OCContact's
- I would like to add the feature for the user to modify the colors of the app, allowing users to express themselves however they want.
- The ability for the user to preview their card so they can know what to expect before officially adding it to their account.
- A timer that locks the user into the app for a certain amount of time so that they can be more present in a room or focus on a task.
- Allow the user to be able to delete their custom tasks, or modify the built in tasks.
I ran into a lot of issues during the development of Trek Track. The first and most prominent taking on a project of this size. When working with so many files of so many different types it can be difficult to keep track of the details such as the scope of your implementation or maintaining an organized MVVM-based file structure. All these files caused me problems in terms of the sometimes-overwhelming amount of data types in this project. Learning how to initialize, modify and utilize these data structures took a lot of reading of the documentation. The third and final challenge that stuck out to me the most was keeping up with a fast-paced development cycle. This affected development in two different ways. The first being that I had to stay at a steady but expedited pace, which tends to be difficult for me as a developer as I will often stick to a problem until it is done. This meant it was very easy to fall behind and then have long days to catch back up again.
The easiest way to setup your server is using the one-button-click deplyment method for parse-hipaa.
The easiest way to setup your dashboard is using the one-button-click deplyment method for parse-hipaa-dashboard.