topcoder-platform / micro-frontends-earn-app

1 stars 18 forks source link

Improve User Experience : After Gigs Apply > My Gigs #143

Closed sushilshinde closed 3 years ago

sushilshinde commented 3 years ago

Problem:

When the user applies from the gigs page, and UI shows them a button to redirect to my gigs application. But because there is a third-party architectural component(Zapier)that syncs RCMR data to the TaaS system, and it creates eventual consistency between the two systems. That adds latency, and it's a bad user experience.

Gigs Work App v1 0 Shapeup - Demo 3 - Google Slides 2021-06-30 18-07-08

Here is the solution to improve the user experience.

  1. When the user applies from https://www.topcoder.com/gigs/{ID} page, add 7 seconds of forced delay(loading spinner) before it shows the CHECK GIG APPLICATION STATUS button.
  2. User clicks on the CHECK GIG APPLICATION STATUS button, that request should look like https://platform.topcoder.com/earn/my-gigs?jobExternalId={ID}, this is ID is RCRM job ID.
  3. Request lands on with the ID in the URL https://platform.topcoder.com/earn/my-gigs?jobExternalId={ID}, then My gigs code checks if this Job ID(got from URL) exists in the list returned by API, if that doesn't exist then UI shows spinner and UI logic polls for a new set of my gigs with the ID every 3 seconds. In this polling whenever Job with that ID is returned as part of my gigs listing, the spinner stops. This logic will not execute if the user directly comes to my gigs with the URL https://platform.topcoder.com/earn/my-gigs

PS: This solution will not improve the performance but will improve the user experience. Users don't have to reload the page again and again in order to get the applied job in my gigs listing.

Long term solution would be to replace Zap from the architecture with synchronous write to backend.

SathyaJayabal commented 3 years ago

@LieutenantRoger , points 2 and 3 verified on dev. working as expected.

SathyaJayabal commented 3 years ago

@LieutenantRoger point 1 is tracked on the Comm App repo https://github.com/topcoder-platform/community-app/issues/5630

SathyaJayabal commented 3 years ago

verified on prod

https://user-images.githubusercontent.com/58783823/124751770-a5f50300-df44-11eb-8f8c-70a0c1aec437.mov