Skip to content

Improve dashboard charts #186

Closed
magento/magento2
#26923
@rhoerr

Description

@rhoerr

Description (*)

Following magento/magento2#21599, Magento recently switched from the deprecated Google Charts API to generating static chart images via image-charts.com (magento/magento2@f92c8fd).

That being said, the new charts are not in any way dynamic, and do not provide a user experience befitting an enterprise software package, for reasons including unclear labels, lack of gridlines, pixelation, branding, and poor styling.

For example, this is the current dashboard chart on a site running 2.3.2 Commerce:
D-ZlZRuXsAMrRqp

Expected behavior (*)

Use a modern JavaScript chart library to build the dashboard charts on the client side.

Benefits

Using a client-side JS chart library would provide a far superior user experience than the current static images, in design, interactivity (tooltips), and usefulness.

Doing so would also reducing any possible security or privacy concerns from the current approach, which involves sending data to or including a third-party-hosted resource or API for the same purpose. With a client-side library responsible for rendering the data, no data would leave the premises, and no external resources would be added in to the sensitive admin panel area.

Additional information

There are numerous open-source JS chart libraries that would fit the purpose, including https://github.com/chartjs/Chart.js and https://github.com/flot/flot (both licensed MIT). My inclination would be Chart.js, given its more active contributor base, better documentation, and simple out-of-box responsive support.

In the process, the charts should also be switched from line to bar-type, to better reflect the nature of the underlying data (which is discrete sales figures, not continuous).

After integrating such a library, further improvements would be possible in the areas of changing timescale without reload; breaking down data by store; and more.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions