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

Create a Cash Payments Dashboard #7951

Open
jniles opened this issue Dec 31, 2024 · 0 comments
Open

Create a Cash Payments Dashboard #7951

jniles opened this issue Dec 31, 2024 · 0 comments

Comments

@jniles
Copy link
Collaborator

jniles commented Dec 31, 2024

One big selling point of BHIMA would be graphical representations of the transactions in the database. So far, we have not used graphical dashboards, favoring a more Excel-like interface that is simpler to implement and for our users to navigate. However, the application has gotten large enough and complex enough that we should dedicate some time to having "at a glance" information provided by dashboards for common operations.

The simplest dashboard is likely a Cash Payments dashboard. It should show the volume (e.g. raw number of transactions) and value (the sum of the transaction amounts) over time. The goal of the dashboard is to provide managers with an easy way to see historical trends in cash payments. We should use Chart.JS for this dashboard, since we already include it in the BHIMA build.

The URL of this dashboard would be /cash/${cashboxId}/dashboard.

Depending on the date range chosen, this dashboard will either be a line or a bar chart. Shorter (e.g. 3 months or less) periods should default to a bar chart, while longer (4+ months) should default to a line chart.

To make this dashboard seamless, it should provide four different date range options:

  1. Payments this month - a ~30 day window that shows the payments grouped in bars by day.
  2. Payments last 3 months - a ~90 day window that shows the payments group in bars by day.
  3. Payments this year - a <365 day window that shows the payments since the beginning of the fiscal year.
  4. Payments since last year - a ~365 day window that shows the the payments since the current date one year ago.

Here are the options an initial implementation should support:

  1. Select which cashbox - this will give the cashbox
  2. Disaggregate by currency - if the cashbox deals in multiple currencies, each currency should be represented by a different bar or line in the chart.
  3. The date selections described above.

Importantly, anytime an option is changed, the user interface should show a loading indicator to let the user know the data is stale.

The developer may have to play around with the options I've presented here to see what makes the most sense once a basic UI has been defined.

This should be the easiest dashboard to make. Once done, we can move on to other dashboards (e.g. #4354)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant