DSS

Individual DSS configurations like FSM - DSS configuration is built on DSS module. where configuration and data is recieved from a set of APIs which can be accessed by users with specific user roles.

Module wise role access to DSS module

Role

Module

API

Role

Module

API

FSM_ADMIN

FSM

curl 'https://qa.digit.org/dashboard-analytics/dashboard/getDashboardConfig/fsm?_=1627404589797' \ -H 'authority: qa.digit.org' \ -H 'sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"' \ -H 'accept: application/json, text/plain, */*' \ -H 'dnt: 1' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36' \ -H 'auth-token: 1bc96a3e-c6c0-4af7-9b97-5cff0c035f98' \ -H 'content-type: application/json;charset=utf-8' \ -H 'sec-fetch-site: same-origin' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-dest: empty' \ -H 'referer: https://qa.digit.org/digit-ui/employee/dss/dashboard/fsm' \ -H 'accept-language: en-US,en;q=0.9,hi;q=0.8' \ --compressed

 

 

 

APIs

Data for each configuration is fetched using {env}/dashboard-analytics/dashboard/getChartV2?_=1627404593531

API CURL -

curl 'https://qa.digit.org/dashboard-analytics/dashboard/getChartV2?_=1627404593531' \ -H 'authority: qa.digit.org' \ -H 'sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"' \ -H 'accept: application/json, text/plain, */*' \ -H 'dnt: 1' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36' \ -H 'content-type: application/json;charset=UTF-8' \ -H 'origin: https://qa.digit.org' \ -H 'sec-fetch-site: same-origin' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-dest: empty' \ -H 'referer: https://qa.digit.org/digit-ui/employee/dss/dashboard/fsm' \ -H 'accept-language: en-US,en;q=0.9,hi;q=0.8' \ --data-raw '{"aggregationRequestDto":{"visualizationType":"METRIC","visualizationCode":"fsmTotalrequest","queryType":"","filters":{"tenantId":[]},"moduleLevel":"","aggregationFactors":null,"requestDate":{"startDate":1617215400000,"endDate":1627410599999,"interval":"month","title":"Apr 1, 2021 - Jul 27, 2021"}},"headers":{"tenantId":"pb.amritsar"},"RequestInfo":{"apiId":"Rainmaker","authToken":"1bc96a3e-c6c0-4af7-9b97-5cff0c035f98"}}' \ --compressed

each of the chart will have unique data params and response in a distinct API calls.

UI Components

Fundamentally DSS has various functionalities including filtering of data, charts and drill-down charts with download PDF, Image and .XLS files. This is achieved by various components utilizing external plugins and internal services

Filters

Filter component in DSS consist of 4 components :-

Date Range

DateRange component is a styling wrapper around DateRangePicker plugin.

ULB / DDR Filter

Filter on the basis of ULB and DDR (District) is done by selecting single or multiple instances of DDR/ ULB. DDR is an encapsulation of ULBs, and getChart API filters data on the basis of ULB tenants,

Sample request header -

{ "aggregationRequestDto": { "visualizationType": "METRIC", "visualizationCode": "fsmTotalrequest", "queryType": "", "filters": { "tenantId": [ "pb.jalandhar", "pb.phagwara" ] }, "moduleLevel": "", "aggregationFactors": null, "requestDate": { "startDate": 1617215400000, "endDate": 1627410599999, "duration": "month", "title": "Apr 1, 2021 - Jul 27, 2021" } }, ...

Component in itself uses MultiSelectDropdown component

Denomination

React Component named Switch which uses styled radio inputs.

Generic Chart

The GenericChart is a common wrapper for all charts. It adds the basic styles to all the chart components.

Metric Chart

The MetricChart component is a wrapper component around the MetricChartRow component. MetricChartRow component uses getChart API to fetch data for the “METRIC“ chart type. The MetricData component is a styling component used to format data.

Area Chart

The CustomAreaChart component is used to render line chart type. It can format data based on denomination filter data. It uses the AreaChart component from the recharts package to draw the chart.

Bar Chart

The CustomBarChart component is used to render performing-metric chart type. It uses the BarChart component from the recharts package to draw the chart.

Horizontal Bar Chart

The CustomHorizontalBarChart component is used to render horizontalBar chart type. It uses the BarChart component from the recharts package to draw the chart.

Pie Chart

The CustomPieChart component is used to render the donut chart type. It displays the top 4 categories and aggregates all the other categories into the “Others“ category. It uses the PieChart component from the recharts package to draw the chart.

Tabular Chart

The CustomTable component is used to render table chart type. The insights are calculated by fetching the previous year's data and compared with the current data.

Download Service

The download service is a common service used by all the chart components to facilate the download/share pdf option. It is handled by using the JSPDF package.

External plugins

Recharts

https://www.npmjs.com/package/recharts

JSPDF

https://www.npmjs.com/package/jspdf

HTML2Canvas

https://www.npmjs.com/package/html2canvas

XLXS

DateRangePicker