Giveth / analytics-dashboard

Analytics dashboard for Giveth data
https://stats.giveth.io/
GNU General Public License v3.0
23 stars 5 forks source link

Tracking Donations made to Giveth through optional donation box #15

Closed divine-comedian closed 3 weeks ago

divine-comedian commented 5 months ago

When a user is donating to a project on Giveth, they have an option to make a donation to Giveth using a % they want to donate to the project.

image.png

We should have a way to track some statistics for our own internal purposes.

Between two dates we should be able to know:

ae2079 commented 1 month ago

@divine-comedian For the number of donations using the optional box and the value of them, we can consider only percentages that are not equal to 5, 10, 15, and 20, are you ok with this? also, we can calculate all donations and those values.

divine-comedian commented 1 month ago

We should be considering all value that has been donated through the donation box - regardless of if they used the preset % buttons or entered a custom value

Users can donate directly to Giveth or they can use this donation box - we only want to know the amounts coming from this donation box

The purpose is to understand how this feature is being used

ae2079 commented 1 month ago

I checked the code and realized we didn't have any field to figure out which donation to giveth was done by the donation box. We should find them by the time difference between the user donations (if two donations from one user have fewer than a one-minute time difference and one of them is to giveth, most probably he was using the donation box for that). I wrote an end point for that and after a code review by @mohammadranjbarz, he suggests to add a new field for these donations and updating Front-end to send this field for donations to giveth using the donation box, and for the old donations, write a migration to detect them by time difference and fill this field for them. so, today I will change these points. @divine-comedian If you have any comments, please let me know.

ae2079 commented 1 month ago

@divine-comedian Do we need to consider recurring donations too? If yes, some cases are difficult to handle, for example, if a user had a donation stream to giveth from before, and after that when he used the donation box in donating to another project, we just updated the previous donation stream to giveth. thus, we can not retrieve all the data of previous donations using the donation box accurately, because they might be updated so many times. ( I am not sure about that, maybe @RamRamez can approve this case )

divine-comedian commented 1 month ago

I'm okay to leave recurring donations out of scope.. for now

divine-comedian commented 1 month ago

Looks like there is now an error on staging preventing donations from happening associated with this feature development https://github.com/Giveth/analytics-dashboard/issues/9#issuecomment-2218535452

ae2079 commented 1 month ago

Looks like there is now an error on staging preventing donations from happening associated with this feature development #9 (comment)

yes, I checked it and it related to not executing migration correctly on the staging, it is odd because the pipeline passed. anyway, I think the problem is related to migration performance because the query for filling data for new columns is very heavy, I will try to break the migration into smaller ones and improve the query performance.

divine-comedian commented 1 month ago

@ae2079 - is this resolved now? What is left to develop or is is ready for QA?

ae2079 commented 1 month ago

@ae2079 - is this resolved now? What is left to develop or is is ready for QA?

yes, it is resolved on staging and I sent a new PR for the migrations just now to be more efficient for the deployment.

ae2079 commented 1 month ago

@LatifatAbdullahi @divine-comedian you can now test this feature on staging via this link: https://analytics-dashboard-2gg85uoqp-givethio.vercel.app/ Note that the old records are not available until the issue on running migrations fix by DevOps team

LatifatAbdullahi commented 1 month ago

Alright!

LatifatAbdullahi commented 1 month ago

@divine-comedian @ae2079

Test status: completed

New Donors Count: Pass New Donors Donations: Fail

Donation Box Metrics

Total Donations to Giveth Using Donation Box: Pass Total USD Value to Giveth Using Donation Box: Pass Average Percentage of Donation to Giveth Using Donation Box: Pass

ae2079 commented 1 month ago

@divine-comedian @ae2079

Test status: completed

  • [x] I do not want want to support Giveth with my donation(checked): Pass
  • [ ] I do not want want to support Giveth with my donation(unchecked): Pass

New Donors Count: Pass New Donors Donation: Fail

Donation Box Metrics

Total Donations to Giveth Using Donation Box: Pass Total USD Value to Giveth Using Donation Box: Pass Average Percentage of Donation to Giveth Using Donation Box: Pass

What did you mean by New Donors Donations? (I think you mean the section above donation metrics, that is not changed in this branch.)

LatifatAbdullahi commented 1 month ago

@ae2079

Yes the section above the Donation box metrics. My bad..I will just remove it from the comment

LatifatAbdullahi commented 1 month ago

@divine-comedian @ae2079

Test status: completed

Donation Box Metrics

Total Donations to Giveth Using Donation Box: Pass Total USD Value to Giveth Using Donation Box: Pass Average Percentage of Donation to Giveth Using Donation Box: Pass

divine-comedian commented 1 month ago

@ae2079 - I was testing this feature out today and got an error, using this preview link -> https://analytics-dashboard-2gg85uoqp-givethio.vercel.app/ image

Looks like the stats related are empty, despite being tested by @LatifatAbdullahi - What's going on here?

LatifatAbdullahi commented 1 month ago

@ae2079 - I was testing this feature out today and got an error, using this preview link -> https://analytics-dashboard-2gg85uoqp-givethio.vercel.app/ image

Looks like the stats related are empty, despite being tested by @LatifatAbdullahi - What's going on here?

This is strange, as it didnt throw this error when I tested and the analytics board worked as expected last week, this is a recent error

ae2079 commented 1 month ago

@ae2079 - I was testing this feature out today and got an error, using this preview link -> https://analytics-dashboard-2gg85uoqp-givethio.vercel.app/ image

Looks like the stats related are empty, despite being tested by @LatifatAbdullahi - What's going on here?

@divine-comedian @LatifatAbdullahi Please use this link for testing: https://staging.stats.giveth.io/ this is staging of analytics dashboard, and we will merge all branches to it, so the fixes are apply to it. and in this case, I merged a PR for getting more related errors, and for this issue, it seems some new changes on the impact graph staging causes this error. I'll check impact graph changes and fix it ASAP.

ae2079 commented 1 month ago

There was an issue with running migrations on staging of the impact graph from before and because of that, the migrations of new PR that merged to the staging, did not run, so this error happened. And today @mohammadranjbarz did some work to fix that so this problem will be fixed after new changes to the impact graph are deployed on the staging

ae2079 commented 1 month ago

@ae2079 - I was testing this feature out today and got an error, using this preview link -> https://analytics-dashboard-2gg85uoqp-givethio.vercel.app/ image

Looks like the stats related are empty, despite being tested by @LatifatAbdullahi - What's going on here?

Now, this error is fixed, but the request is timeout, and I'm on that to find the problem(maybe the data gathering in the impact graph is taking a long time) when this one is fixed, I'll tell it here

ae2079 commented 3 weeks ago

@divine-comedian @LatifatAbdullahi now the optimization PR merged on staging and you can test it on that ( https://staging.stats.giveth.io/ )

divine-comedian commented 3 weeks ago

@LatifatAbdullahi - please retest that the base functionality for this analytics issue works as expected, no new requirements, we only should check that the optimization has not broken any base functionality.

LatifatAbdullahi commented 3 weeks ago

@divine-comedian @ae2079

Test status: completed

I do not want want to support Giveth with my donation(checked): Pass I do not want want to support Giveth with my donation(unchecked): Pass

Donation Box Metrics

Total Donations to Giveth Using Donation Box: Pass Total USD Value to Giveth Using Donation Box: Pass Average Percentage of Donation to Giveth Using Donation Box: Pass

image

ae2079 commented 3 weeks ago

@divine-comedian I made the release PRs for this issue: backend: https://github.com/Giveth/impact-graph/pull/1726 frontend: https://github.com/Giveth/analytics-dashboard/pull/28 and when you approved it, we can release it on production