Skip to content

Core Functionality

Jonathan Bayless edited this page Nov 6, 2019 · 1 revision

ToDo Management

Basics

  • Create a one-time task that should occur at a specified mileage.
  • Receive an in-app notification when the car's mileage nears or exceeds the mileage set for the one-time task
  • ToDo items can be marked as completed.
  • Past ToDo items will be preserved unless deleted.

Repeating Tasks

  • The user can create task types that are to occur at a given mileage or time interval.
  • A ToDo item will be automatically created for the next upcoming instance of this repeating task.
  • The interval for the repeating task can be reconfigured any time after its creation and the corresponding upcoming ToDo list item will update its mileage/date accordingly.
  • A default set of repeating tasks will be provided upon user account creation.
  • Repeating tasks can be added and removed, including the set of tasks provided by default.

Car State Tracking

  • The User may configure any number of cars with their account
    • TODO: limit this at some point
  • The current measured mileage will be stored for each car configured by the User.
  • An estimate of the current mileage will be stored for each car configured by the User.

Explicit State Change

  • The measured mileage will be updated every time a refueling entry is created.

Implicit State Change

  • The estimate of the current mileage will be set to the measured mileage every time that the measured mileage is updated.
  • An estimated derivative of miles driven per day will be determined from the date of each measured mileage update and the mileage difference in the update.
  • The derivative will be recomputed and optimized using historical data and the most recent measured mileage update.
  • The derivative will be used to set an estimated notification time for ToDo items that coming up soon.

User Authentication

  • Users will be able to create an account with an email address and password.
  • Users will be able to reset their password.
  • A User may delete their account and associated data at any time.
  • Users are authenticated using the third-party Firebase Authentication service.

Metrics and Statistics

  • Going to figure this out by 0.1.5

Clone this wiki locally