Skip to content

[Awaiting Payment 17th April] [Wave Collect][QBO] Implement Accounting page #37706

Closed

Description

@hayata-suenaga

Implement a new page called "Accounting page" for the QuickBooks Online (QBO) connection project.

QBO is a well-known accounting software that Expensify supports integration with. Once the user establishes a connection to QBO, Expensify exports expense reports, also known as money requests, to QBO. This enables expenses, referred to as transactions in QBO terminology, to appear in the accounting software.

Your task is to implement the Accounting page where the user can set up and configure the accounting integration with QBO.

This page has two states: before connection and after connection.

  • Before the connection, the page presents the option to connect to the QBO.
  • After the connection is established, the page shows the main menu items. These items represent different configurations that the user can adjust concerning the QBO connection. When a menu item is clicked, the user is taken to another page where they can modify the configuration. This task does not include creating these individual configuration pages.

Refer to the mockups in the Production Specifications section below for visual information.

Product Specifications

1

Screenshot 2024-03-04 at 4 48 25 PM

2

Screenshot 2024-03-04 at 4 48 52 PM

3

Screenshot 2024-03-04 at 4 49 24 PM

4

Screenshot 2024-03-04 at 4 49 53 PM

5

Screenshot 2024-03-04 at 4 50 25 PM

Design documentation excerpts

code skeleton

Screenshot 2024-02-23 at 8 33 03 AM

supporting text and error handling

Screenshot 2024-02-23 at 8 35 00 AM

menu items

Screenshot 2024-02-23 at 8 36 08 AM

connection setup button

Screenshot 2024-02-23 at 8 37 14 AM

Assets

Integration.Logo.Icons.zip

Notes

The tasks in the QBO project is done in parallel, including the work in the backend code. Thera are some functions or navigations that are incomplete at the time of this writing. This section lists out these items.

  • QBO setup (i.e. synchronization) logic.
    When a connection with QBO isn't established, the Accounting page displays a user interface with a button to set up the connection. If the logic to establish the connection isn't available yet, leave the button's callback blank.

  • A function to check if a connection has been established.
    The Account page displays different UIs based on the existence of a connection. This can be verified by examining the policy object, which can be subscribed to using withPolicy or withOnyx Higher Order Components. However, if the logic to establish a connection with QBO is unavailable, the policy object will lack connection information. In such a scenario, declare a temporary boolean variable within the component to toggle between the two states of being connected and not connected.

  • Information about the synchronization state
    During QBO connection and synchronization, the progress should be displayed on the Accounting page (refer to the above excerpts for more details). However, this progress information comes from data stored in Onyx. Since the actual connection might not be ready yet, you need to create mock data for this. This also applies to the error state of synchronization, if any. Please contact @hayata-suenaga for more details.

  • Navigation when the menu item is clicked
    Certain configuration pages linked from the Accounting page might not be available. If this happens, leave the callback blank. This allows for navigation logic to be added later. If the PR is completed before individual pages are implemented, we may merge the PR with these blank callbacks.

Please ask questions

This task comes with a lengthy list of specifications. Please direct any questions you may have to @hayata-suenaga. You most likely will have some. 🙇

Activity

  1. melvin-bot commented on Mar 5, 2024

    @melvin-bot
  2. changed the title [-][DRAFT][Wave 8][QBO] Implement Accounting page[/-] [+][DRAFT][Wave Collect][QBO] Implement Accounting page[/+] on Mar 5, 2024
  3. abekkala commented on Mar 8, 2024

    @abekkala
    Contributor

    @hayata-suenaga I have to say I'm a bit lost on this one:

    What exactly is:

    Your task is to implement the Accounting page where the user can set up and configure the accounting integration with QBO.

    Implement, how?

  4. hayata-suenaga commented on Mar 8, 2024

    @hayata-suenaga
    ContributorAuthor

    @abekkala this is an engineering issue. A CallStack engineer is going to work on it next week. The specifications are written in the design doc, and there are screenshots of the design doc in the OP.

    You're auto-assigned to this issue because of the NewFeature flag. You will handle the payments to a C+ that is going to review the PRs once they're ready.

    However, this might take some time. Please feel free to un-assign yourself until payments are needed. 🙇

  5. moved this to Release 1: Spring 2024 (May) in [#whatsnext] #wave-collecton Mar 11, 2024
  6. hayata-suenaga commented on Mar 11, 2024

    @hayata-suenaga
    ContributorAuthor

    @teneeto, please review the requirements of this GH ticket and don't hesitate to ask questions. The requirements are somewhat complex, so any clarifying questions are welcome 😄

    I look forward to working with you 🚀

  7. changed the title [-][DRAFT][Wave Collect][QBO] Implement Accounting page[/-] [+][Wave Collect][QBO] Implement Accounting page[/+] on Mar 11, 2024
  8. 37 remaining items

  9. dylanexpensify commented on Apr 29, 2024

    @dylanexpensify
    Contributor

    Payment summary:

    Please request or apply here!

  10. s77rt commented on Apr 29, 2024

    @s77rt
    Member

    @dylanexpensify This should be $250 or does this include other PRs? @teneeto is a contractor (not paid via Upwork)

  11. dylanexpensify commented on Apr 30, 2024

    @dylanexpensify
    Contributor

    @s77rt updated!

  12. dylanexpensify commented on Apr 30, 2024

    @dylanexpensify
    Contributor

    Invited to job @s77rt!

  13. s77rt commented on Apr 30, 2024

    @s77rt
    Member
  14. dylanexpensify commented on Apr 30, 2024

    @dylanexpensify
    Contributor

    Offer sent!

  15. inwake commented on Apr 30, 2024

    @inwake

    Contributor details
    Expensify account email: [will create one]
    Upwork Profile Link: https://www.upwork.com/freelancers/vitaliyd33

    Hi @hayata-suenaga and the Expensify team,

    I've been closely following the [Wave Collect][QBO] Implement Accounting page project and have been diligently preparing a proposal for the task. However, I've noticed that the issue is currently in the "Awaiting Payment" status, and I'm a bit confused about the workflow and whether new proposals are still being considered.

    Given the current status of the project, I wanted to reach out and clarify if it would still be beneficial for me to submit my proposal. I've invested a significant amount of time in understanding the requirements and drafting a comprehensive solution, and I'm eager to contribute to the project if there's still an opportunity to do so.

    Could you please provide some guidance on whether the project is still open to new proposals, or if it has indeed moved past the proposal stage? I want to ensure that my efforts align with the current needs of the project and that any contribution I make will be timely and relevant.

    Thank you for your time and assistance. I look forward to your response and the possibility of contributing to this and future projects.

    Best regards,

    • Vitaliy
  16. melvin-bot commented on Apr 30, 2024

    @melvin-bot

    📣 @inwake! 📣
    Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
    Please follow these steps:

    1. Make sure you've read and understood the contributing guidelines.
    2. Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
    3. Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
    4. Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.
      Screen Shot 2022-11-16 at 4 42 54 PM
      Format:
    Contributor details
    Your Expensify account email: <REPLACE EMAIL HERE>
    Upwork Profile Link: <REPLACE LINK HERE>
    
  17. dylanexpensify commented on Apr 30, 2024

    @dylanexpensify
    Contributor

    Hi @inwake! Thanks for reaching out! We've had this one done, so no new proposals are needed. We just need to finish it by paying the contracts out. Thanks for your interest here, and please keep looking at our available bugs!

  18. s77rt commented on Apr 30, 2024

    @s77rt
    Member

    @dylanexpensify Accepted! Thanks!

  19. dylanexpensify commented on May 1, 2024

    @dylanexpensify
    Contributor

    Wahoo!

  20. dylanexpensify commented on May 1, 2024

    @dylanexpensify
    Contributor

    Done!

  21. moved this from Release 1: Spring 2024 (May) to Done in [#whatsnext] #wave-collecton May 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2NewFeatureSomething to build that is a new item.

Type

No type

Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions