Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Tracking] [External] Attendee Tracking project #44725

Open
21 tasks
Julesssss opened this issue Jul 2, 2024 · 58 comments
Open
21 tasks

[Tracking] [External] Attendee Tracking project #44725

Julesssss opened this issue Jul 2, 2024 · 58 comments
Assignees
Labels
NewFeature Something to build that is a new item. Weekly KSv2

Comments

@Julesssss
Copy link
Contributor

Julesssss commented Jul 2, 2024

Important Links

Strategy

In order to jump start viral growth, we need to migrate all existing customers to NewDot as soon as possible, so they can reap the rewards of the new app we've been building for several years.

Problem

It's common that one employee incurs an expense that includes others (eg: one person buys lunch for their whole office). There's no way to clearly outline this in NewDot though, so it can easily look like they overspent. This can drive manual back and forth between employee and admin, and cause significant loss of efficiency when compounded across the organization. A less efficient experience adds friction to enticing members to make the switch to NewDot and will slow down reunification.

Solution

Add support for attendee tracking in NewDot. This will make it easy for members to clearly indicate when spend is shared with others, and should reduce back and forth about larger than normal requests. The exact scope is TBD, but my thinking is we can do this by:

  • Adding an Attendees row on requests in NewDot.
  • Allowing members tap on the row, see a list of all eligible attendees, and select from the list.
  • Surfacing selected attendees, and amount per person on request detailed.

Screenshot 2024-07-18 at 14 49 04

Implementation Issues

Frontend:

Backend

TODO

Finish the project

Post-launch polish:

  • Clear out uses of the now-unused Auth attendee param
  • Prevent violation bug by returning OnyxData like done here for other updates
  • Add more tests like testRequestMoneyPersistsAttendees for edit case
  • Attendee tracking feature should be a sub-category of 'Rules' #50802
  • Once fully migrated, introduce minimum attendee size of 1:
    Request::verifyAttributeSize(request, "attendees", 0, Request::MAX_SIZE_NONCOLUMN);

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?
@Julesssss Julesssss added Weekly KSv2 NewFeature Something to build that is a new item. labels Jul 2, 2024
@Expensify Expensify deleted a comment from melvin-bot bot Jul 2, 2024
@Expensify Expensify deleted a comment from melvin-bot bot Jul 2, 2024
@Expensify Expensify deleted a comment from melvin-bot bot Jul 2, 2024
@Julesssss
Copy link
Contributor Author

After discussion here, I want to make the document changes much clearer before seeking help from SWM.

@trjExpensify
Copy link
Contributor

I think this is going in #wave-control, right @JmillsExpensify?

@zsgreenwald
Copy link
Contributor

Back from OOO, @Julesssss am I needed anywhere in particular to keep this moving?

@melvin-bot melvin-bot bot removed the Overdue label Jul 16, 2024
@Julesssss
Copy link
Contributor Author

Hey, it would be helpful to resolve this comment threads, but other than that no, I'll try to hand over the doc to SWM this week.

@Julesssss
Copy link
Contributor Author

@zsgreenwald actually if you had a chance to check the high-level document again today that would be helpful. I tried to update any section that mentioned the old UI (Avatar instead of Name, etc), but there's a chance I might have missed something.

Then we should be able to open the project up to SWM tomorrow 🤞

@Julesssss
Copy link
Contributor Author

The design document for this project is now ready for the external teams to make a start on.

myself and @zsgreenwald will be available for any concerns or questions you have while we work on this project. I have added document comments in places that I think are outdated or need changes. Please feel free to resolve these as you work through the document. And to create new comments with any questions you have for us!

Plan should be for the SWM team:

  • Read the high-level section for background on the project
  • Review, update and improve the detailed section of the document. Paying attention to:
    • Design changes, mainly the switch from Attendee Pills to a Text list of attendees (screenshots below)
    • Codebase changes and refactors since November which make some document details irrelevant/outdated
  • Submit the proposed detailed changes for another round of internal feedback
  • Start work on the feature, while I handle the back-end changes

Previous Design

Screenshot 2024-06-28 at 14 32 00

Updated Design

Screenshot 2024-07-18 at 14 49 04

@filip-solecki
Copy link
Contributor

Hi! I am Filip from SWM and I'd like to work on this issue!

@zfurtak
Copy link
Contributor

zfurtak commented Jul 19, 2024

Hello, I'm Zuza from SWM and I'd like to work on this issue with Filip :)

@garrettmknight
Copy link
Contributor

Noting that I'm consolidating the internal tracking issue with this one. I've added steps/documentation from the internal OP to this issue.

@melvin-bot melvin-bot bot added the Overdue label Dec 30, 2024
@Julesssss
Copy link
Contributor Author

Project remains on hold. As a reminder the 'Finish the project' tasks are listed in the issue description and remain accurate.

@melvin-bot melvin-bot bot removed the Overdue label Jan 3, 2025
@Julesssss
Copy link
Contributor Author

In #convert we are planning to finish up this project. I have shared the details of what tasks remain in engineering-chat and will happily guide any engineer through the remaining tasks!

@anmurali
Copy link

@francoisl is going to take it. @Julesssss I unassigned you but of course we will lean on you as we pick this back up!

@Julesssss
Copy link
Contributor Author

That's great, thanks Francois. I'll be happy to help you with any questions you have. Finish the project issues still look correct to me.

@melvin-bot melvin-bot bot added the Overdue label Jan 23, 2025
@JmillsExpensify
Copy link

Recently picked back up.

@melvin-bot melvin-bot bot removed the Overdue label Jan 29, 2025
@melvin-bot melvin-bot bot added the Overdue label Feb 6, 2025
@francoisl
Copy link
Contributor

No longer on hold, working on this now.

@melvin-bot melvin-bot bot removed the Overdue label Feb 10, 2025
@francoisl francoisl changed the title [ON HOLD][Tracking] [External] Attendee Tracking project [Tracking] [External] Attendee Tracking project Feb 10, 2025
@melvin-bot melvin-bot bot added the Overdue label Feb 19, 2025
@JmillsExpensify
Copy link

In implementation

@francoisl
Copy link
Contributor

In progress! Aiming for mid-next week to have everything in review.

@melvin-bot melvin-bot bot removed the Overdue label Mar 7, 2025
@danielrvidal
Copy link
Contributor

Wow, awesome! This is an exciting one!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
NewFeature Something to build that is a new item. Weekly KSv2
Projects
Development

No branches or pull requests