shabados / presenter

Desktop app for presenting the Shabad OS Database on projectors, TVs, and live streams
https://shabados.com
MIT License
18 stars 15 forks source link

Investigate flow and services for user feedback #621

Open saihaj opened 3 years ago

saihaj commented 3 years ago

Is your feature request related to a problem? Please describe. If end user is reporting an issue it usually is done via Slack or WhatsApp. Then someone from teams needs to get that issue on Github. It would be nice to have the users report issues directly from the app.

Describe the solution you'd like Having in-app feature that can let users file issues.

Some challenges

We can try make two bots one isShabadOS-Issue-Bot which can be used in our apps to file issues on behalf of users. This bot will not be part of organization because of security concerns. We give it access to specific repo instead (see next point). Other one is ShabadOS-Triage-Bot whose purpose will be to move around issues in various repos.

I suggest that we create a new repository and all the issues are opened by the ShabadOS-Issue-Bot. We can have some fields in issues that will be filled automatically by the Bot before filing the issue. Then ShabadOS-Triage-Bot who has Triage rights will put specific labels which will help us in automation tasks.

ShabadOS-Issue-Bot can query GH API so we can do some logic to on client before they can file issue. This will work better if all our issues in one repo as I suggested. But there will be times when issue has be triaged to designated project repo by the ShabadOS-Triage-Bot in those cases it will require us to run 2 queries, one in issue tracker repo and other in project related repo. GitHub puts rate limits on public API and this can be expensive if we get so many users trying to spam. But then how likely is this?

We can also make a service (serverless function) using Azure function/AWS Lambda/GCP that will be more secure than this way and we have many other benefits like we don't reaching GH api rate limits because we can hook up to our own DB (Azure Cosmo's, Firebase's or FaunaDB's free tier should suffice our needs) to store issues as references and then we can search in that instead of calling GH API. I think with this approach we can scale very well compared to if we just use GH api approach. But do we need a micro service handling all this or GH API is sufficient for us?

Additional context