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 |
---|---|---|
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
https://www.npmjs.com/package/xlsx