Skip to content

ukcs485gSpring2022/final-app-eschurr

Repository files navigation

final-app-eschurr

Swift Xcode 13.2+ iOS 15.0+ watchOS 8.0+ CareKit 2.1+ ci

Description

My project attempts to combine a unique diet plan (intermittent fasting) with other elements of important health routines, such as drinking water, taking vitamins, exercising, and more. Intermittent fasting while exercising is a proven and great way to lose weight fast, but it can be difficult without having a guide. This application takes all the different tools one would want to use to get fit and puts them all into one unique place.

Demo Video

To learn more about this application, watch the video below:

SurelyFit Demo Video

Designed for the following users

My project is built for users who want to get healthy. When I have been trying to lose weight and get stronger at the same time, it’s been frustrating to have to use two separate apps. You'd need one app for working out, then have to use another app that provides features like entering meals and tracking nutrients. The idea for this app is to combine both of those into one single app to use seamlessly together and make your weight loss/fitness/muscle gaining journey much easier and less confusing. More importantly, it will help people understand how those two things can go hand in hand.

Developed by:

  • Eric Schurr - 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

Contributions/Features

  • CustomFeaturedContentView that subclasses OCKFeaturedContentView, providing a link that explains to the user what Intermittent Fasting is, how to do it, and why it could be beneficial.
  • A check-on Research Kit survey displayed by OCKSurveyTaskViewController that asks the user about their soreness and hunger levels. Hopefully, as they continue the program, they should see that their day-to-day soreness and hunger slowly decrease as they get used to their routine.
  • OCKTask vitamins displayed by OCKChecklistTaskViewController to remind users to take their vitamins in the morning.
  • OCKTask water displayed by OCKButtonLogTaskViewController to have users log every cup of water drank throughout the day.
  • OCKTask fasting displayed by OCKGridTaskViewController to help users track their fasting habits and remind them when their meals should be eaten.
  • Range of motion check
  • OCKTask exercise displayed by OCKSimpleTaskViewController that is used by the user to log thier 30+ minute exercise every day.
  • LinkViews for meal links and workout links the user can use for healthy meals and good workout plans.
  • New tab called "Insights" to MainTabView that displays graphs for the data the user is logging, such as soreness+hunger, vitamins, and water.
  • A searchable contact view and a profile view as a form.
  • Improved styling and custom logo.

Final Checklist

  • 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

Wishlist features

  1. Integration of workout plans and live workout guides into the application so users don't have to switch to another application to use a workout guide
  2. Integration of a meal database that can be displayed in the application that generates recipes for users
  3. Calorie tracking

Challenges faced while developing

This was one of the tougher programming projects I have worked on. The MVVM architectural pattern is not something I have used before, along with Swift, so the first few months invovled a lot of steep learning curves, followed by the last month or so trying to integrate all of it into a real-time application. Adding different OCKTasks/OCKHealthKit tasks and trying to remember everywhere that these interactions had to occur for it to display and store the data in my application was a definite challenge.

Setup Your Parse Server

Heroku

The easiest way to setup your server is using the one-button-click deplyment method for parse-hipaa.

View your data in Parse Dashboard

Heroku

The easiest way to setup your dashboard is using the one-button-click deplyment method for parse-hipaa-dashboard.

About

final-app-eschurr created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages