Skip to content

[GPS mileage expenses] [Tracking] Add GPS mileage expenses 🚗 #73261

@AndrewGable

Description

@AndrewGable

DESIGN DOC ➡️

Slack Room: #migrate

Proposal

Background: We are nearing the finish of feature parity on New Expensify, the Start GPS functionality on Expensify Classic iOS/Android is one feature that is missing. GPS tracking for distance is a popular way to track exactly how far a user has driven to be reimbursed precisely. This is important for users who need even more precise measurements than an odometer or map created distance expense.

Problem: When users track distance expenses via GPS in Classic, if they are migrated to NewDot, then they must either manually calculate total distance (losing GPS proof) or abandon NewDot to stay in classic or switch to a competing application.

Solution: Introduce GPS mileage as a distance tracking method in NewDot on iOS/Android with feature parity to Classic. Users will be able to:

  • Start a GPS distance expense
  • After the user starts GPS tracking and closes the app, notify them that the GPS is running so they remember to stop it at their destination
  • Stop the GPS when they arrive at their destination
  • A GPS map will be included as the receipt image on the expense

For compatibility and parity, the GPS feature will start as a clone of Classic and we can add additional functionality later. 🏁

Slack Thread 🧵

Tasks

  • Post Proposal (full Problem/Solution statement) in #expensify-open-source
  • Wait at least one full business day, and until the post has a majority (2/3) of positive reactions (👍)
  • Paste Proposal in the space above with a link to the Slack thread
  • Email strategy@expensify.com and paste in the Proposal
  • Fill out the High-level overview of the problem, Timeline, and Terminology sections of the Design Doc
  • Email strategy@expensify.com (continue the same email chain as before) with the link to your Design Doc
  • Host a pre-design meeting (example) in #expensify-open-source to discuss any necessary details in public before filling out the High-level of proposed solution section.
  • Fill out the High-level of proposed solution section
  • Email stategy@expensify.com again with links to the doc and pre-design conversation in Slack
  • Add the DesignDocReview label to get the High-level of proposed solution section reviewed
  • Respond to any questions or concerns and bring up blockers in Slack to get a consensus if necessary
  • Confirm that the doc has the minimum necessary number of reviews before proceeding
  • Host another pre-design meeting in #expensify-open-source to ask for engineering feedback on the technical solution.
  • Fill out the Detailed implementation of the solution and related sections.
  • Re-add the DesignDocReview label to this issue
  • Respond to any questions or concerns and bring up blockers in Slack to get consensus if necessary
  • Confirm that the doc has the minimum necessary number of reviews before proceeding
  • Email strategy@expensify.com one last time to let them know the Design Doc is moving into the implementation phase
  • Implement the changes
  • Add regression tests so that QA can test your feature with every deploy (instructions)
  • Send out a follow up email to strategy@expensify.com once everything has been implemented and do a Project Wrap-Up retrospective that provides:
    • Summary of what we accomplished with this project
    • What went well?
    • What could we have done better?
    • What did we learn?

Metadata

Metadata

Labels

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions