microsoftgraph / microsoft-graph-toolkit

Authentication Providers and UI components for Microsoft Graph 🦒
https://docs.microsoft.com/graph/toolkit/overview
Other
951 stars 306 forks source link

Evaluation of creation a new component for pre defined Charts/Dashboards based on Queries #1427

Closed aaclage closed 9 months ago

aaclage commented 2 years ago

Proposal: Evaluation of creation a new component for pre defined Charts/Dashboards based on Queries

Allow users to include existing Office 365 Chart components to be easily accessible and trackable.

Description

This component will allow Power Users/Admins to retrieve content based on Graph queries and display in charts that can be used for tracking evolution and status of current content/ actions associated.

This also allow users to pre use existing charts such us in SharePoint Online Page Analytics, Site analytics, Team Analytics and other possible chart and easily import to their own solutions/page with simple line of code.

Challenge here will be the capability to create more complex charts/dashboards with connections between different queries or collect all existing pre existing charts. Bellow initial proposal.

Phase 1 Collect existing Charts in Office 365 Services and create component that replicate them and include parameters (Microsoft Graph API) to differentiate the output. Phase 2 Creation of Chart that could have connection between 2 or more queries (more complexity) and different output such us Sum, Count and other possible requested expressions and Types of charts.

Could be interesting the integration of existing chart component (Teams Reach UI component) for better integration (if possible, off course). https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/design/design-teams-app-ui-templates https://dev-int.teams.microsoft.com/storybook/main/index.html?path=/story/components-charts--line-chart

Rationale

This option allow Powerusers/admin or IT admin monitor multiple environments/contents in different sites and compile in single pages to easily monitor evolution and keep a track in a visual way that can be included by any dev. Avoid users to rebuild existing Charts (Office 365) and new ones (based on Graph API) from zero but provide a simple line code that queries can be included and expect the same type of charts.

Preferred Solution

Initial idea is to use existing pre defined charts and allow users to easily use/add them and also define new pre defined chart base on existing Microsoft Graph API or still in Beta for example a chart that user name is mention in Teams. https://docs.microsoft.com/en-us/graph/api/resources/mention?view=graph-rest-beta or activitystatistics https://docs.microsoft.com/en-us/graph/api/resources/activitystatistics?view=graph-rest-beta

A very requested Chart request from Admin users is to have audit log of (add/changed/deleted) of lists/Libraries and easily be accessible and access "example for compliance and validation teams".

Page Item Chart: [Page Item Chart](https://docs.microsoft.com/en-us/graph/api/itemanalytics-get?view=graph-rest-1.0&tabs=http) PageAnalytics

Site Usage SiteAnalitcs SiteAnalitcs2

Teams analytics TeamsReport

Additional Context

ghost commented 2 years ago

Hello aaclage, thank you for opening an issue with us!

I have automatically added a "needs triage" label to help get things started. Our team will analyze and investigate the issue, and escalate it to the relevant team if possible. Other community members may also look into the issue and provide feedback 🙌

sebastienlevert commented 2 years ago

Thanks for the suggestion @aaclage! Let me ask you a couple of questions to better identify the outcome here :

Thanks! Assuming we would prioritize this item, would you be willing to work with the team to work on a first version of the control?

Thanks!

aaclage commented 2 years ago

@sebastienlevert, My Response:

Hope this helps to clarify.

aaclage commented 2 years ago

@sebastienlevert

After the launch of this core Dashboards/charts in real world and associated value, this will give the push in the future for community to contribute with useful and possible proposals for other charts using Microsoft Graph.

sebastienlevert commented 2 years ago

This is a remarkably interesting proposal. We'll be looking at the capabilities and how this can align with the rest of the toolkit. visual Graph libraries are complicated and we definitely don't want to get in the way of doing a "poor" job at delivering limited capabilities. I'm still wondering if this fits at the core of MGT or if this could be "scenario specific" extension.

Adding @waldekmastykarz as we had similar discussions in the past with pre-baked samples for MGT.

aaclage commented 2 years ago

@sebastienlevert Another charts/Report that popup based on some clients questions such us to track on the fly "for example i'm makiing a PWA solution" that tracks the AssignedLicenses user or users and servicePlans and send notification when license is subscribed to admins. <mgt-analytics type="AssignedLicenses" userID="xxxxx"> <mgt-analytics>

waldekmastykarz commented 2 years ago

Thank you for the suggestion @aaclage and thanks for tagging me @sebastienlevert ❤️

I like the idea a lot! Before we proceed, I think we should clarify where do we draw the line between charts that we'd provide with MGT and existing reporting solutions like PowerBI embed or PowerBI dashboards. This is especially important, if we choose to offer a more generic chart component rather than just one capable of showing data from the predefined analytics queries.

I'm also torn between offering predefined queries just for analytics vs. a more generic chart component that you can use to visualize any kind of data coming from Graph. By analogy, for a person we have a generic person component capable to display any kind of person, rather than having a specific component for a manager, direct report, etc. Offering a more generic component would allow us to support more scenarios, but would likely require some additional configuration work from the developer and more work from us to offer enough support for the component to be useful (eg. the ability to retrieve data from Graph and model it before rendering as a chart).

sebastienlevert commented 9 months ago

At the moment, this is not something we're likely to prioritize. That being said, the Graph Toolkit is an open source project and we'll be happy to support and review if you want to contribute to its codebase! In the meantime, we will be closing this issue. Thanks!