Design Fitness App

Questions and Requirements

  • What is the form factor where app will work?
    • Android, iOS
    • iPad
    • Desktop
  • What is being tracked?
    • Steps
    • Calories
    • Mins of workout
    • Heartbeat
    • Water Intake
  • Is there anything for motivation?
    • Rewards
    • Quotes
  • if rewards are there what is the system, can it be redeemed?
  • Goals
    • For each parameter being tracked, do we have different different goals?
  • Alerts and Notifications
    • Too far away from goal
    • Close to the goal
  • Analytics
    • Past week? Month?
    • Graphs?
    • Average heartbeat
    • monthly/weekly goals

Classes

  • Goal
    • metric: String
    • status: GoalStatus
    • progress: Integer (denote percentage)
    • currentValue, goalValue, unit
  • Metrics
  • Analytics
  • Rewards
  • User
    • goals
    • rewards
    • motivation
    • addGoal()
    • updateGoal()
  • System (calculation, notification)
  • GoalStatus Enum:
    • Achieved
    • Not Completed (INPROGRESS)
    • Not Started (PLANNED)
    • NOT TRACKED
    • Close to Finish

Relationship

  • Metric can have 0…1 goal
  • Goal is strong coupled with Metrics (Composition)