Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 178 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

v1.4

Loading...

Water-Sanitation

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Water-Sanitation Product Suite

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

UI: Plant Operator

Screens/Flows involving Plant Operator user

We have mobile-first screens for plant operators

The screens/flows for a plant operator are given below:

  1. Plant operator home page

  2. TQM landing page

  3. Plant-user mapping

  4. Inbox/update tests

  5. View past test results/test's summary screen

  6. Help section

Introducing Water-Sanitation

About Water-Sanitation

Enabling Samaaj (society), Sarkar (government), & Bazaar (industry/market) partners with a digital platform that would help ensure zero deaths, disease, and environmental contamination resulting from poor sanitation - a reality for every citizen across the Global South.

Water-Sanitation aims to ensure zero untreated waste by catalysing open digital ecosystems.

Useful Links

Contact Us

FSM UI Docs

This section includes the following:

FM Citizen UI
FSM Employee UI
FSM DSO UI
FSM FSTPO UI

Localisation

Localisation

Waste Management System

TQM UI

TQM UI Tech Documentation

TQM is an independent UI module which only depends on the core UI libraries.

Here are the articles in this section:

  • How to enable TQM UI

  • UI: Plant operator

  • UI: ULB admin

UI: ULB Admin

Screens/Flows involving ULB Admin user

We have Desktop-first Screens for ULB Admin user

The following screens/flows are available for an urban local body (ULB) admin:

  1. ULB admin home page

  2. Inbox/Test summary screen

  3. View past test results/Test summary screen

  4. Create adhoc test

Sanitation Worker UI

Sanitation Worker UI Documentation

As part of FSM v1.4, sanitation worker related features/screens have been added to the FSM UI. These screens are accessible with current FSM related roles such as FSM_Admin, Creator, Editor, Collector, etc.

The following screens are available for the sanitation worker UI:

  1. FSM Registry -> Sanitation Worker Tab

  2. Create Sanitation Worker

  3. Edit Sanitation Worker

  4. Sanitation Worker Details

  5. Assign Sanitation Workers to FSM Applications (Update to existing screen)

Sanitation Worker Welfare

Here are the articles in this section:

  • Vendor Registry

  • FSM Service

TQM Setup

Product Suite

Reference Implementations

Technology

Setup

Solution Design

Water-Sanitation is an open-source web and mobile-enabled platform designed to digitise operations in the waste management value chain, from collection to treatment. It provides the ability to drive coordination across multiple independent and disconnected stakeholders, ensuring a continued chain of custody of waste throughout.

According to a United Nations (UN) report, only 54% of the world population has access to safe sanitation. We believe that at the heart of the problems in sanitation are ineffective systems that fail to deliver. Hence, systems must be progressively reformed. To move habitats towards zero untreated waste, we will leverage the capabilities built by the Digital Infrastructure for Governance, Impact & Transformation (DIGIT), and ensure the traceability of waste by enabling the ecosystem with the following features:

  • Chain of custody: We will ensure a seamless and traceable chain of custody for waste. This will enable stakeholders to track waste from its source to its final destination, ensuring accountability and transparency in the waste management process.

  • Actionable data: Our system will provide actionable data on waste management operations, which will enable stakeholders to make informed decisions. This data will be used to optimise waste collection and treatment processes, identify areas for improvement, and drive evidence-based decision-making.

  • Code for innovation: We will foster innovation by providing a digital platform that encourages collaboration among stakeholders. Our system will facilitate the sharing of ideas, best practices, and innovative solutions for sanitation challenges, driving continuous improvement in the waste management ecosystem.

Need for Water-Sanitation

Current digital efforts across geographies do not take a “whole of system view” and do not solve the cost of coordination and duplication issues. Such siloed, solution-centric approaches and tools create a new set of problems and inefficiencies for countries:

  • Higher costs and time: This is incurred on creating or procuring and maintaining these systems, including the onboarding cost of the same actors in each programme.

  • Data exists in multiple systems: They are not interoperable, leading to duplication, inconsistencies, poor adoption by on-ground workers, and sub-optimal decision-making.

  • Limited reusability and innovation: Data and capabilities are intertwined and ‘locked,’ making it extremely hard for the wider ecosystem to innovate and build upon.

  • Sub-scale: The tools are not able to scale for the national population and across waste streams.

Scope

Water-Sanitation solutions are built on the principles of societal platforms, envisioning a space where sanitation is supported by shared resources, curated knowledge, and evolving solutions that address the needs of the community. We recognise that the challenges of sanitation are systemic and require the collective efforts of all stakeholders to be effectively addressed. Drawing from the insights gained from our urban mission, we embrace the triple helix model, which emphasises partnerships among different stakeholders, including civil society (samaaj), government (sarkaar), and industry/market (bazaar), to generate innovation through synergistic collaboration. Leveraging our experience in building large-scale public digital infrastructure, we are well-positioned to create the foundation for this ecosystem and drive progress in solving the most pressing sanitation issues. We believe that by fostering cooperation and collaboration among all stakeholders, we can create sustainable solutions that meet the needs of communities and contribute to the transformation of the sanitation landscape.

While sanitation requirements and solutions may vary among local governments, there are commonalities in the value chain of sanitation waste streams, such as faecal sludge management, solid waste management, plastic waste management, etc. These value chains typically involve steps such as generation, containment, collection, transport, treatment, and disposal/reuse. These similarities provide an opportunity to abstract and digitise various components of the service value chain, with the potential to encode standards and enable data-driven visibility into sanitation services.

The Water-Sanitation solution is specifically designed to allow for the contextualisation and reuse of components across different waste streams and geographies. By incorporating standards into the platform and leveraging data registries and reusable building blocks in the technology stack, applications can be developed more efficiently and quickly at the solution layer, resulting in lower costs and faster implementation. This approach enables flexibility and scalability in addressing diverse sanitation needs, while also promoting interoperability and consistency in the digital solutions deployed. By leveraging the Water-Sanitation solutions, stakeholders can build innovative applications tailored to local contexts, while adhering to standardised components and data structures, leading to more effective and sustainable sanitation services.

Following is a glimpse of how this would work:

The above image illustrates the core infrastructure services, and the enabling services that are built/configured for a Faecal Sludge Management (FSM) solution with the following functionality:

  1. Allowing citizens to request septic tank desludging services

  2. Scheduling desludging services for a certain set of property types/localities, etc.

  3. Automated or manual assignment of vendors to perform requests

  4. Tracking sludge from collection to disposal at a treatment plant using the Internet of Things (IoT)

  5. Notifications to stakeholders at each point in the workflow

  6. Dashboards and reports

Now, consider that instead of FSM, a solution needs to be built for Solid Waste Management:

The same set of infrastructure and enabling services could be used to configure the following functionalities:

  1. Scheduling the collection of waste based on different categories

  2. Automated or manual assignment of vendors to perform requests

  3. Tracking adherence to the schedule

  4. Tracking waste movement from pickup to disposal at a treatment facility

  5. Notifications to stakeholders at each point in the workflow

  6. Dashboards and reports

Further, only an additional service for segregation monitoring would have to be built.

To illustrate this further, imagine building a solution for sanitation worker welfare:

The same set of services can be used here as well, with the addition of a few components. The Water-Sanitation platform is built leveraging the DIGIT Core Services, which are customised into the following key building blocks:

  1. Service Request Management

  • Define pricing

  • Record service requests

  • Assign and manage service requests

  • Provide subsidies

  • Calculate service fees

  • Track status

  • Collect feedback

  1. Transport Management

  • Schedule pickup

  • Assign vehicles and drivers

  • Track status

  1. Billing and Payments

  • Generate demand

  • Generate receipts

  • Online payment gateway

  1. Notifications

  • SMS

  • In app

  1. Service Delivery Monitoring

  • Dashboards

  • Reports

Test Cases

QA Test Cases for PQM:

QA Test Cases for Sanitation Worker Welfare:

View Past Test Results

This screen is similar to the View Past Test Results screen for a plant operator.

Refer the following page View Past Test Results/Test's Summary Screen

UI for reference:

View Past Tests

Impel Release Notes

Release Summary

The release provides the functionality of tagging the gram panchayat (GP) and villages via urban local bodies (ULBs). The ULB will be servicing desludging requests for households in the respective GP.

Release Highlights

The functionality included are:

  • Adding GPs while creating an application.

  • Make the amount per trip field editable for GPs.

New Feature Additions

Feature
Description

Document Resources and Link

Click to access the backend service document.

Driver-Individual Migration Script

Overview

The Driver-Individual Migration Scripts is responsible for fetching all existing drivers in the system and subsequently generating creates corresponding individuals in the system.

Build

The data migration has been implemented in Vendor Service with latest stable build -

API Spec

MDMS Roleaction Mapping

File Path -

File Path -

Please use FSM_ADMIN credentials for accessing this API.

FSM Technical Specification

Overview

Faecal Sludge Management (FSM) is a system that enables citizens to raise a request for septic tank cleaning with their urban local bodies (ULBs) directly or for reaching out to a ULB counter. Citizens can track the application, make a payment for the charges and rate the service.

Service Dependencies:

  • billing-service

  • mdms-service

  • workflow-v2

  • boundary-service

  • user-service

  • idgen-service

  • user-events

  • collection-service

  • notification-service

  • vendor

  • vehicle

  • fsm-calculator

  • egov-url-shortener

  • collection-service

  • pdf-service

API Specification

Data Model

Web Sequence Diagrams

Vehicle Technical Specification

Overview

Vehicle Registry is a system that enables urban local body (ULB) employees to create and search vehicle entities and schedule vehicle trips for FSM applications, and track the vehicle trip.

Service Dependencies:

  • egov-mdms-service

  • egov-workflow-v2

  • user-service

  • egov-idgen

  • vendor

API Specification

​Data Model

Web Sequence Diagram

Calculator Technical Specification

Overview

FSM Calculator is a system that enables the FSM aAdmin to create billing slabs for the FSM application(s) with different combinations of propertytype, slum, and tank capacity, among others. It generates the demand after calculating the charges for the given application using the billing slabs already configured.

Service Dependencies:

  • billing-service

  • mdms-service

  • workflow-v2

  • User-service

  • fsm

API Specification

​Data Model

Known Issues List

The following are the known issues for DIGIT FSM v1.4:

Enablement toolkits(Assetization) for FSM

List of actions required to go live in the new State for the FSM module:

  • : Tenant, boundary, workflow etc

FSM Service

Changes from Version 1.3.1 is 1.4.0

  1. Introducing worker and FSM application mapping

  2. Backward compatibility for existing applications

API Specification

ER Diagram

Sequence Diagram

Category

Details

Known Issues

Requests pending for action with sanitation workers will remain open if the Sanitation Worker is deactivated while the request is pending to be completed.

Functional Limitations

Automatic mapping between functional and system roles is not defined

A sanitation worker is currently created at the instance level. In case a sanitation worker is operating within a specific boundary, functionality to limit operations is not provided.

Editing Tagged Sanitation workers: Sanitation workers once tagged to a request cannot be edited.

Part search for Sanitation worker ID is not available

Adding GPs while creating an application

The user can add a GP and the villages under that GP while creating an application. The GPs are tagged to the ULBs closest to them. The ULBs will be servicing the desludging requests from the GPs and the villages falling under that GP.

Make the amount per trip field editable

Once the application is created with a selection of GPs, the amount per trip field will become editable for the user.

here
vendor:develop-fc828adcbe-31
actions-test.json
 {
      "id": 376,
      "name": "Migrate Driver Data to Individual",
      "url": "/vendor/v1/_migrate",
      "displayName": "Migrate Driver Data to Individual",
      "orderNumber": 0,
      "enabled": false,
      "serviceCode": "vendor",
      "code": "null",
      "path": ""
    }
roleactions.json
{
      "rolecode": "FSM_ADMIN",
      "actionid": 376,
      "actioncode": "",
      "tenantId": "pg"
    }
Link
Getting started with DIGIT
Requirements to enable FSM Module in a new environment
Dependency services of the FSM module
Data templates for data collection
Data loading steps
MDMS data : Mdms data and preparation
SMS Templates and their registrations/loading

Features

The current version provides the following features:

Service Request Management (urban and rural)

  • Define pricing for desludging services based on the property type, sub-type and volume, and categories where services are free/subsidised.

  • Interface for citizens to request for desludging services and track service delivery.

  • Interface for urban local bodies (ULBs) to record service requests received via multiple channels, and track service delivery.

  • Interface for Faecal Sludge Treatment Plant (FSTP) operators to record the entry of vehicles against service requests.

  • Interface for FSTP operators to record the entry of vehicles without service requests.

  • Collect feedback from citizens on the completion of service delivery.

  • Define and monitor against SLAs.

Transport Management

  • Assignment of requests to transportation vendors.

  • Interface for transport vendors to manage requests and track the status of requests.

  • Assignment of vehicles and drivers to service requests.

Billing and Payments

  • Calculate service fees based on the defined pricing and the number of trips.

  • Define the minimum amount payable at the ULB level while requesting for services.

  • Collect part payments in advance and the rest as balance.

  • Interface for citizens to make payments via a payment gateway.

  • Interface for ULBs to collect and record payments.

  • Generate receipts.

Notifications

  • Send notifications via SMS.

  • Send in-app notifications.

Service Delivery Monitoring

  • Dashboards at the state and ULB levels.

- View KPIs (Total requests, trends in requests, SLAs, and capacity utilisation of FSTPs, and vendor performance).

- Filters (Time, ULB)

  • Reports

The following masters are also maintained as part of the product:

  • Vehicle master

  • Driver master

  • Vendor master

  • Treatment plant master

FSM User Manual

The DIGIT-Faecal Sludge Management (FSM) allows citizens to raise service requests for desludging and pay the fees for the service delivery online. For governing bodies and vendors, it makes service delivery easier and captures information end-to-end, ensuring waste pick up and its disposal at the correct treatment plant. Real-time tracking of service delivery, along with the availability of rich transactional data allow decision makers to ensure a better citizen service experience and promote a cleaner/healthier environment.

Key Features

  • Apply for desludging services

  • Make payment for services

  • Register desludging operators

  • Update vehicle logs

  • Manage vendors, vehicles and drivers

User Roles

Refer to the table below to understand the different user roles and the scope of action linked to each role. The manual provides a detailed description of how to use the system for each role.

User Role
Scope of Action
Role Description

Citizen

Apply for desludging services

Make payment for services

Individuals and society groups/communities

Desludging Operators (DSO)

Take action on assigned service requests

Private or government entities

Septage Treatment Plant Operator (SeTPO)

Update vehicle log

Private or government entities

Employees

Apply for desludging services on behalf of citizens

Receive payment from citizens over the counter

Send back applications

Reject applications

Assign DSOs to service requests and update the status of the service requests

ULB employees

Using FSM

This section guides you through the details of using the FSM module for each role. Click on the relevant role below to learn more about how to use the FSM system.

  • Citizens

  • Employees

  • DSO

  • SeTPO

User Manual

Here are the articles in this section:

Employee User Manual

Treatment Plant Operator User Manual

FSM Swagger Link
Vehicle Swagger Link
FSM-Calculator Swagger Link
Fsm_Contract.yaml

Landing and Home Page

Logging in with the plant operator role will take the user to the landing page.

Landing Page

  • The landing page has a list of cards which includes the TQM card.

  • The landing page shows a pending tasks card at the bottom of the page.

  • The pending tasks card lists tests pending to be updated by this user.

  • The tasks which are overdue will show up first in the pending tasks card.

  • There is an option to view all the pending tasks which takes the user to TQM inbox page.

Plant Operator Landing Page

Home Page

  • Clicking on the Treatment Quality Monitoring (TQM) card will take the user to the TQM home page.

  • The TQM home page shows a TQM card with the links to Inbox, View Past Tests.

  • It also shows 2 cards below which are -> Your performance, Alerts card.

  • The "Your Performance" card shows relevant metrics such as test compliance and the percentage of tests that passed which shows the efficiency of the plant(s) linked to the logged in user.

  • The 'Alerts' card shows a count of the different types of alerts that were raised by the system. This data comes from the anomaly finder.

TQM Home Page

Help Section

Help Flow

  • Every page in the plant operator's screen has a help button on the top right.

  • Clicking on it takes the user to the help screen which shows a list of videos. Each video has a title and a description.

  • Clicking on a video runs it in a media player.

  • Flows in the app can be stored in a video and it can be shown in this screen.

  • This page is fully configurable through MDMS.

  • Refer to the following MDMS file to configure the list of videos:

  • Multiple languages can be configured. Currently, English and Hindi are the two options available.

Help Section UI
  • Sample configuration object:

{
          "TQM": {
              "moduleCode" : "TQM",
              "videosJson":  [
                  {
                      "headerLabel": "TQM_HELP_Q1",
                      "description": "TQM_HELP_Q1_DESC",
                      "en_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4",
                      "hi_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4"
                  },
                  {
                    "headerLabel": "TQM_HELP_Q2",
                    "description": "TQM_HELP_Q2_DESC",
                    "en_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4",
                    "hi_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4"
                  },
                  {
                    "headerLabel": "TQM_HELP_Q3",
                    "description": "TQM_HELP_Q4_DESC",
                    "en_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4",
                    "hi_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4"
                  },
                  {
                    "headerLabel": "TQM_HELP_Q4",
                    "description": "TQM_HELP_Q4_DESC",
                    "en_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4",
                    "hi_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4"
                  },
                  {
                    "headerLabel": "TQM_HELP_Q5",
                    "description": "TQM_HELP_Q5_DESC",
                    "en_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4",
                    "hi_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4"
                  },
                  {
                    "headerLabel": "TQM_HELP_Q6",
                    "description": "TQM_HELP_Q6_DESC",
                    "en_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4",
                    "hi_IN": "https://media.w3.org/2010/05/sintel/trailer.mp4"
                  }
              ],
              "screenHeader":"TQM_HELP_SECTION"
          }
      }
      
  • The above configuration object is used to render the screen. It has a video level header and description along with URLs for Hindi and English videos. The page level header is also present.

  • The module name can be configured. For example, here we have added the module name as TQM.

Training

Videos and training resources

Module Walkthrough Videos

A complete walkthrough of the DIGIT FSM module -

All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.

User Personas

Who can use Faecal Sludge Management solution

Desludging Operator

Urban Local Body

Treatment Operator

All the information is published with the consent of the stakeholders

Creating users for FSM

After adding all the data for ulb in MDMS,next step is to create user for Employee and FSTP.

From HRMS, Create Employee user and FSTP user of new tenant and add roles to it.

EMPLOYEE USER Example

FSTP USER Example

  • Set the password of EmployeeId by checking the logs of sms service.

Approach

DIGIT Sanitation started with and in future, we will pick up Solid Waste Management (SWM). Beyond that, we believe that the platform can be leveraged for other waste streams but the nature of our intervention will be evolve.

Overview of Faecal Sludge Management

The waste we flush down the toilet does not always go into a sewer. Approximately 70% of the households in India have toilets connected to septic tanks or soak pits, technically known as on-site containment systems. They accumulate and store faecal matter over a long period. In sewers, the faecal matter travels daily with a lot of water through long concrete pipes. But in the case of on-site systems, it stays stored for about 3-5 years. Once the storage is full, the waste is emptied and transported to the treatment plant through vacuum trucks. The end-to-end value chain of safe storage, collection, transport, treatment, and end-use or disposal of faecal matter is called Faecal Sludge and Septage Management or FSSM. ‘Faecal Sludge’ and ’Septage’ are used to describe faecal matter in a specific physical and chemical state after prolonged storage.

Why FSM matters - It is the way forward in sanitation

FSSM has emerged as a cost-efficient population scale alternative to the networked sewer, which has been the traditional method of wastewater management.

  1. Cost-effective: FSSM is 10 times cheaper than sewer systems.

  2. Coverage: Less than one-third of urban toilet users are connected to sewer systems. The rest are more or less dependent on FSSM systems. Targeting FSSM will help us impact the maximum number of citizens.

  3. Scale: In India's Swachh Bharat mission, 11 crore toilets were constructed across the country. Most are connected to on-site systems, which again increases the need for FSSM.

Our current understanding of the problems in septage management is based on our interactions with stakeholders and thorough published reports, and whitepapers. We are aware that FSSM systems have interdependent parts, and each stage of the FSSM value chain impacts how effectively the next stage functions. For instance, if the septic tanks do not have proper access, they will add to the cost of emptying, adding time and cost burden on desludging operators (DSOs). Similarly, it becomes unviable for the DSOs to dump the waste at the treatment plant if it is far from the city which is often the case.

While the linear sanitation value chain provides an understanding of the flow of faecal sludge, it does not capture all stakeholders in the process that control and influence the current effectiveness of sanitation systems.

Systems Map

We will use a systems mapping approach to outline the different factors and interactions within the sanitation value chain. We will explore systemic challenges at each part of the value chain that result in poor sanitation outcomes.

Part 1 - Toilets and containment units

Problems faced by key stakeholders

City managers, central/state governments

While sanitation is a priority of the central and state governments, city administrators have been strapped due to deficiencies in standards, building codes, municipal processes, and contracting and monitoring capabilities. These make it difficult to ensure the adequacy, usability, and safety of the toilets provisioned by public funds.

Masons

Masons are fundamental in proper construction of toilets and containment units. But a majority of masons currently lack the necessary training on construction standards. They are rarely employed using formal contracts, contributinb to the lack of traceability and accountability during the construction of toilets.

Citizens

Lack of awareness of the impact of improper construction of toilets and containment tanks, or constraints of affordability and space, leads citizens to influence masons to build containment units that do not follow technical standards. It is difficult to identify trained masons and services are procured through social networks and word of mouth.

Part 2 - Emptying and transport

Problems faced by key stakeholders

Desludging operators

  • Lack of proper access to the containment systems adds time-cost to service.

  • Treatment plants are located far from the city, making safe dumping unviable.

  • While the payment from citizens is a clear incentive for emptying the tanks or pits, there are no incentives to ensure the safe transport of the faecal sludge to the treatment plant.

  • Operations remain inefficient without timely and useful information for service delivery. Working conditions are risky, but provisions for personal protection equipment and emergency healthcare services are rare.

Citizens

  • It is difficult to identify and book desludging services and service delivery is not reliable.

  • Low-income households are denied service since they are not able to afford the full cost.

City managers, central/state governments

  • Challenging to regulate the market for safe dumping without compromising service delivery.

  • Lack of clear and actionable information in terms of safe or unsafe dumping of faecal sludge.

  • Lack of pricing policies, infrastructure standards, licensing processes, and contracting and monitoring capacity limit the ability of decision-makers to take action.

Part 3 - Treatment

City managers, centre/state governments

  • Difficult to regulate the market across various stages of construction and operations.

  • Operational data of the treatment plant and process is often recorded offline and used for post-facto auditing. There is a pervasive lack of actionable information.

  • Lack of rational pricing policies, comprehensive service benchmarks and infrastructure standards, contracting and monitoring tools hamper corrective action.

Plant operators

  • The supply of desludging load varies in an unreliable and unpredictable manner, and over time, leads to system failure.

  • Treatment plant management and maintenance is difficult and costly, and the payments are often not linked to performance.

  • The performance is not directly causally linked to the environmental impact.

  • Operations are not monitored to facilitate preventive action within the plant, and lack any binding linkages with standard operating procedures and service level agreements.

Part 4 - Ecosystem

Civil society and academia

  • In the absence of data, researchers struggle to create new knowledge around the failures, risks, and opportunities, as well as give recommendations for improvement.

  • Since policy and standards are not mapped to operational data, it is difficult for the ecosystem to translate knowledge to action, impact and access.

Government

  • Inability to trace the impact and proper usage of grants and subsidies for sanitation.

  • Limited state capacity in terms of budget, skilled human resources, tools, and technology. Coordination across multiple functions, such as standard-setting, policy-making, contracting, audit, monitoring, is needed to keep sanitation systems functional.

  • Limited penetration of technology, innovation, and competition in the sanitation sector, makes it difficult for the government to enforce accountability across internal processes and market interactions.

Critical Problems in FSSM

At the core of all systemic challenges, there are problems that hinder a systemic change, limit stakeholders from implementing changes, or even cause the system to collapse. The identified problems are explained below:

Absence of well-defined standards for sanitation

  • Current standards do not cover all aspects of sanitation and service delivery - such as standards of treated human waste, treatment plant technologies, and benchmarks, among others.

  • The ecosystem has created many standards, which are not formally notified or enforced.

  • Where standards exist, awareness and compliance are dismal for the following reasons:

  1. Many actors in the value chain do not have the necessary knowledge, skills, or standard operating procedures.

  2. Complexities in service delivery result in incomplete or improper service.

  3. Poor requirement specifications in the Request for Proposals (RFPs) documents.

  4. Model contracts exist but are not followed.

  5. Delays in corrective action since contracts are not tightly coupled with monitoring.

Broken chain of custody from waste generation to reuse

  • Systemic data either does not exist or remains disjointed to understand how much waste exists, where, when, with whom, and why.

  • Feacal sludge tends to drop out of the value chain, untreated.The unavailability of the information - who dropped it, when, how, or where it ended up polluting the environment - hampers the process of taking corrective and preventive measures

Lack of verifiable, trusted data at various levels

  • Data around faceal sludge (how much, where, when, who is responsible) is too little.

  • Required data is not created, available, or shared across relevant ecosystem actors. As a result, the performance of sanitation systems remains opaque and unobservable.

Inability to convert waste to value

  • Current systems are not structured to maximise the value from faceal sludge and related services.

  • The policy framework may not recognise treated human excreta as compost. Unclear and fragmented demand for treated waste contributes to lax operations upstream.

ULB Admin Home Page

Logging in with ULB admin role takes the user to the home page of DIGIT-UI.

Home Page

  • If a ULB admin user is logged in, he/she will have access to TQM, and a TQM card will be visible on this screen.

  • Links such as Inbox, View Past Tests, and create test are available on this card.

  • A notification card is available on the bottom, which is specific to TQM. All the TQM-related notifications configured will show up here. Currently, it shows notifications for tests whose results are not updated on time (crossed scheduled date).

API Details for TQM

  • Use the egov-user-event service.

  • Sample request object:

  • The API returns a list of notifications relevant to the logged in user.

  • Sample curl for notifications:

  • The role-action mapping for /egov-user-event/v1/events/_search is added for this user that is, the ULB admin whose role code is PQM_ADMIN.

Vendor Registry

Overview

As part of the worker welfare v1.0, a new worker registry concept is being introduced. The creation of a worker, updation of details, searching and tagging a worker for different operations on sanitation programmes will be covered. We will leverage the Individual Registry for storing and querying details about a worker.

The individual service is an enhanced version of the user service that houses data about individuals. The individual service is being re-used from .

Click to access the Individual Service.

Architecture Diagram

Vendor Registry

Changes from Version 1.3.1 is 1.4.0

  1. Change from driver concept to worker.

  2. Deprecation of the driver table.

  3. Backward compatibility for existing drivers (converting a driver user into an individual and mapping/backfilling to vendors).

  4. Introducing worker vendor mapping.

  5. Creation of workers directly using Individual registry APIs.

API Specification

ER Diagram

Sequence Diagram

Create Worker

Update Vendor

Getting started with DIGIT

For enabling any municipal-service on a fresh environment and for the first time, we need to have basic idea of what DIGIT does and what all generic services are required for setting it up .

DIGIT is an open-source, customizable platform that lends itself to extensibility. New modules can be built on top of the platform to suit new use-cases or existing modules can be modified or replaced. To enable this, in addition to deploying DIGIT, a CD/CI pipeline should be set up. CD/CI pipelines enable the end user to automate & simplify the build/deploy process.

Refer for further reference of DIGIT and its deployment.

Core Services:

DIGIT platform comprises of couple of core-services that serves as the backbone for the platform. There are several core-services like:

  1. ..and

Each microservice has a distinct function, which is explained in the provided documentation links. Once you understand the platform and its terminology, you'll be well-prepared to activate any particular municipal service.

Vendor Technical Specification

Overview

Vehicle Registry is a system that enables urban local body (ULB) employees to create and search vendors, that is, Desludging Operators (DSO) and driver entities with appropriate vehicle entities for the FSM application.

Service Dependencies:

  • egov-mdms-service

  • egov-user-service

  • boundary-service

  • Egov-idgen

  • egov-workflow-v2

  • vehicle

API Specification

Data Model

Web Sequence Diagrams

Plant Mapping of FSTP

  • Import this curl :

  • Login from FSTP credientials and copy the uuid of FSTP user.

  • Take FSTP plantCode from PlantInfo.json file for specific ulb.

  • The status should be always ACTIVE.

  • Login from FSM_ADMINDEV credentials(for sujog-dev) which is having FSM Admin role for all the ulb’s.

  • Copy the auth token and user-info. Paste the auth token in the req. Body “authToken” field.

  • Hit the url.

FSM Citizen UI

There are two new updates introduced in FSM v1.2.1 while creating a new application - Stepper Information and Vehicle Capacity Selection in the Service Request Screen.

Stepper Information

We are introducing stepper information in FSM while creating an application from the citizen side so that they have visibility on how many steps they need to go over to submit details regarding their tank.

Technical Implementations Details:

TLTimelineInFSM.js file is the common component and used for rendering the stepper information. The path of the file is:

frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/components/TLTimelineInFSM.js

The code snippets for defining the steps present in FSM application under case “APPLY”:

The code snippets to render the stepper information in each screen using the timeline component:

Service Request Screen

Citizens can now select vehicle capacity along with the number of trips required while creating an application. If nothing is selected, we will proceed by taking the minimum vehicle capacity available with the number of trips.

Technical Implementation Details:

Code path: frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/pageComponents/SelectTripNo.js

The code snippet for rendering the Vehicle Capacity field in Service Request screen:

The code snippet for fetching the vehicles available under all DSO:

The code snippet for setting the default vehicle capacity to minimum:

here
Workflow Service
Location Service
User Service
Access Control Service
PDF Service
Payment Service
MDMS Service
Indexer Service
Persister Service
many more
curl --location --request POST 'https://sujog-dev.odisha.gov.in/fsm/plantmap/v1/_create' \
--header 'Content-Type: application/json' \
--data-raw '{
    "RequestInfo": {
        "apiInfo": {
            "id": "string",
            "version": "string",
            "path": "string"
        },
        "deviceDetail": {
            "id": "string",
            "signature": "string"
        },
        "ts": 0,
        "action": "string",
        "key": "string",
        "msgId": "string",
        "requesterId": "string",
        "authToken": "45092a19-3dab-43b0-a9e1-19e8a6c94923",
        "userInfo": {"id":3186071,"userName":"FSM_ADMINDEV","salutation":null,"name":"Taresh","gender":"MALE","mobileNumber":"7721827042","emailId":"[email protected]","altContactNumber":null,"pan":null,"aadhaarNumber":null,"permanentAddress":null,"permanentCity":null,"permanentPinCode":null,"correspondenceAddress":null,"correspondenceCity":null,"correspondencePinCode":null,"active":true,"locale":null,"type":"EMPLOYEE","accountLocked":false,"accountLockedDate":0,"fatherOrHusbandName":"Dilip","relationship":"FATHER","signature":null,"bloodGroup":null,"photo":null,"identificationMark":null,"createdBy":575,"lastModifiedBy":1,"tenantId":"od.cuttack","roles":[{"code":"EMPLOYEE","name":"Employee","tenantId":"od"},{"code":"FSM_ADMIN","name":"FSM Administrator","tenantId":"od.cuttack"},{"code":"HRMS_ADMIN","name":"HRMS ADMIN","tenantId":"od.cuttack"},{"code":"SUPERUSER","name":"Super User","tenantId":"od.cuttack"},{"code":"FSM_COLLECTOR","name":"FSM Payment Collector","tenantId":"od"},{"code":"FSM_CREATOR_EMP","name":"FSM Employee Application Creator","tenantId":"od"},{"code":"FSM_EMP_FSTPO","name":"FSM FSTP Opperator","tenantId":"od"},{"code":"SUPERUSER","name":"Super User","tenantId":"od"},{"code":"FSM_EDITOR_EMP","name":"FSM Employee Application Editor","tenantId":"od"},{"code":"FSM_ADMIN","name":"FSM Administrator","tenantId":"od"}],"uuid":"2f3851cd-864e-42d7-869c-d5a05abb8f39","createdDate":"01-09-2022 17:04:45","lastModifiedDate":"17-01-2023 13:49:59","dob":"21/11/1995","pwdExpiryDate":"30-11-2022 17:04:44"}
    },
    "plantMapping": {
        "employeeUuid": "c3249480-b45c-43b6-bfe1-cb78330d258c",
         "plantCode": "ODAG_064",
        "tenantId": "od.odagaon",
        "status":"ACTIVE"
    }
}'
MDMS

Features

The following features/components will be available in the TQM module:

Features/Components

Description

Functionality

Schedule of Tests

This component will be used by treatment plant operators and urban local body (ULB) employees to see the schedule of tests.

View the schedule of lab tests and track the compliance. Track the compliance of IoT test results and cases of failures.

Recording Test Results

This component will be used by treatment plant operators and ULB employees to upload results manually and track IoT readings.

Create digital records of quality test results alerts in the following cases:

  1. IoT device not working.

  2. Lab results do not match IoT results.

Anomaly Detection

This component will be used by treatment plant operators and ULB employees to interpret test results.

Identify in real-time/near real-time when the results of a particular test are not as per the benchmarks.

Alerts in the following case:

  1. Results not upto the benchmark.

Dashboards

This module will give stakeholders insights and information regarding the operations of the treatment plant. Users can use this to drill down and identify plants and processes where compliance to testing and/or test results are not upto benchmarks.

Dashboards will also help users see trends over time to see patterns and identify long-term problem areas.

Dashboard to analyse trends in the treatment quality and compliance with the treatment schedule. Drill down will be made available from state to the ULB and at a plant level.

Dashboard to analyse patterns in issues. A drill down will be made available from state to ULB and at a plant level.

Objective

The aim is to provide the users of the system information and control at each level - from defining how operations will be run, to updating status against pending operational tasks, and viewing operational data to draw insights to refine operations.

{
    "RequestInfo": {
        "apiId": "Rainmaker",
        "authToken": "a0c56299-3bde-48e2-b0fb-76686fdff3dc",
        "userInfo": {
            "id": 722,
            "uuid": "56e8c2df-af55-46a9-a378-885915cde0ab",
            "userName": "TQM_DEV_ULBADMIN",
            "name": "ULB Admin",
            "mobileNumber": "7281638698",
            "emailId": null,
            "locale": null,
            "type": "EMPLOYEE",
            "roles": [
                {
                    "name": "PQM Admin",
                    "code": "PQM_ADMIN",
                    "tenantId": "pg.citya"
                }
            ],
            "active": true,
            "tenantId": "pg.citya",
            "permanentCity": null
        },
        "msgId": "1701078884762|en_IN",
        "plainAccessRequest": {}
    }
}
curl 'https://unified-dev.digit.org/egov-user-event/v1/events/_search?tenantId=pg.citya' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'cookie: _ga_V2CPZCVTXQ=GS1.1.1695293925.1.1.1695293950.0.0.0; __cuid=59fd9aac25b044f6af006bd4b159cbbf; amp_fef1e8=f4fc07f6-3fb0-4c67-8114-a1beb906e625R...1hf75985a.1hf76uet8.i.8.q; _ga_P1TZCPKF6S=GS1.1.1699974064.1.1.1699975479.60.0.0; _ga=GA1.2.1291438273.1695293925; _ga_0JZG96DZSM=GS1.1.1699977339.2.0.1699977339.60.0.0' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee' \
  -H 'sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"' \
  -H 'sec-ch-ua-mobile: ?1' \
  -H 'sec-ch-ua-platform: "Android"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36' \
  --data-raw '{"RequestInfo":{"apiId":"Rainmaker","authToken":"a0c56299-3bde-48e2-b0fb-76686fdff3dc","userInfo":{"id":722,"uuid":"56e8c2df-af55-46a9-a378-885915cde0ab","userName":"TQM_DEV_ULBADMIN","name":"ULB Admin","mobileNumber":"7281638698","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"PQM Admin","code":"PQM_ADMIN","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1701078884762|en_IN","plainAccessRequest":{}}}' \
  --compressed
ULB Admin Home Page
<CardText> {t("ES_VEHICLE CAPACITY")} </CardText>
 <RadioOrSelect
    options={vehicleMenu?.map((vehicle) => ({ ...vehicle, label: vehicle.capacity }))}
    selectedOption={vehicleCapacity}
    optionKey="capacity"
    onSelect={selectVehicle}
    optionCardStyles={{ zIndex: "60" }}
    t={t}
    isMandatory={config.isMandatory}isDropDown={true}
/>
const allVehicles = dsoData.reduce((acc, curr) => {
  return curr.vehicles && curr.vehicles.length ? acc.concat(curr.vehicles) : acc;
}, []);
const cpacityMenu = Array.from(new Set(allVehicles.map((a) => a.capacity)))
    .map((capacity) => allVehicles.find((a) => a.capacity === capacity));
using Timeline component to render the stepper Information in each screen provided with step number in currentStep.
Faecal Sludge Management (FSM)
Reference Link
DIGIT Health
here
Vendor_Registration_Contract.yaml
Vendor Swagger Link

FSM Employee UI

There are three main updates in FSM v1.2.1 for employee UI:

  1. Application timeline

  2. Photo viewed by employee/DSO

  3. Payment mode while completing request

1. Application Timeline:

An employee can see the application status in application timeline with provider details.

Technical Implementation Details:

The path for the code:

frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/pages/employee/ApplicationDetails/index.js

The code snippet to render application timeline:

The code snippet for extracting the provider info for each status:

2. Photo viewed by employee/DSO

An employee/DSO can view the photo uploaded by the employee/DSO in complete request action.

Technical Implementation Details:

The path for the code:

frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/pages/employee/ApplicationDetails/index.js

The code snippets to render the field:

ViewImages.js are the common component used to fetch and render the Image file id. The path is shown below:

frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/components/ViewImages.js

3. Payment mode while completing request

An employee has to select the payment mode while completing the request.

Technical Implementation Details:

File path:

frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/pages/employee/ApplicationDetails/config/CompleteApplication.js

The code snippet to render the field.

MDMS file fetch for payment mode:

egov-mdms-data/ReceivedPaymentType.json at UAT · egovernments/egov-mdms-data

{
    "tenantId": "pg",
    "moduleName": "FSM",
    "ReceivedPaymentType": [
        {
            "name": "Payed in Cash",
            "code": "PAYED_IN_CASH",
            "active": true
        },
        {
            "name": "Payed in Counter",
            "code": "PAYED_IN_COUNTER",
            "active": true
        },
        {
            "name": "Netbanking",
            "code": "NETBANKING",
            "active": true
        }
    ]
}

Release Notes

Release Summary

Introducing New Services for Enhanced Process Quality Management

  1. Process Quality Management (PQM) Service.

  2. Process Quality Management (PQM) Anomaly Finder Service.

  3. PQM Scheduler (CronJob Scheduler).

Enhancements

  1. Sanitation Worker Welfare feature

  2. Driver-Individual migrate feature

  3. FSM inbox V2

New ‌Feature Additions

Feature
Description

Enhancements

Feature
Description

Document Resources & Links

UI Technical Documents
Backend Service Documents

Master Migration Document

Overview

This page contains the changes related to Process Quality Management-related services (PQM) and Sanitation Worker Welfare along with the MDMS, DevOps and configuration setups required to accommodate these features.

Migration Steps

PQM Service

The PQM service is required to create, update, search and evaluate tests against benchmarks. Follow the steps given below:

  1. Add the .

  2. Add the new persister file: .

  3. Add the

  4. Configure the build.

  1. Make the role action-mapping changes in the MDMS.

Master Data for PQM

  1. Click on the Job-builder once the above steps are complete.

  2. Restart the following services: egov-accesscontrol, egov-mdms-service, egov-persister

PQM Scheduler

  1. Add the .

  2. Add the .

  3. Configure the build.

  1. Make the role action-mapping changes in the MDMS.

  1. Click on the Job-builder once the above steps are complete.

  2. Restart the following services: egov-accesscontrol, egov-mdms-service.

PQM Anomaly Finder Service

  1. Add the .

  2. Add the .

  3. Configure the build.

Sanitation Worker Welfare

  1. Add mdms changes, refer to this .

  2. Add config changes, refer to this .

  3. Add the Helm chart, refer to this .

  4. Deploy the latest build of vendor and FSM, refer to this .

  5. Sanitation worker depends on the individual service. Refer to this .

  6. Deploy the latest build of individual service refer link#

  7. Migrate all the drivers to individual using

UI Migration Changes

  1. Make sure UI MDMS changes are added from .

  2. Refer to the technical documentation for TQM UI to run UI

  3. Refer to the technical documentation for sanitation worker UI

  4. Code PRs for referenceL

How to Enable TQM UI

Enabling TQM module in DIGIT-UI

Overview

To access the TQM module in DIGIT-UI, enable it from MDMS and add TQM specific roles for the user to access TQM UI.

Enabling Module from MDMS

Add the following configuration in citymodule.json under this path in MDMS. The reference file is given below.

Enabling TQM Module from UI

Add TQM to these files in DIGIT-UI codebase. Add it in enabledModules Array.

Note: The name "TQM" should match the name "Tqm" added in mdms(citymodule). However, uppercase or lowercase does not matter.

  1. frontend\micro-ui\web\micro-ui-internals\example\src\index.js

  2. frontend\micro-ui\web\src\App.js

Files for reference:

Sample object:

Roles Required to Access TQM UI

  1. PQM_TP_OPERATOR -> This role is for Plant Operator user

  2. PQM_ADMIN -> This role is for ULB Admin user

Note: One user cannot have both these roles because flows and UI is different for these users. These roles are added in the mdms. The reference file is given below

Recommended Core UI module version

  • Enhancements were made to the core module version to support some of the features in TQM UI such as help section and notification card in ULB admin's home page

  • The recommended core version for TQM UI is the following:

Plant-User Mapping

Every plant operator created will be linked to one or more plants under an urban local body (ULB).

Plant-User Mapping Flow

  • When a plant operator logs in to the system, the top bar is populated with a dropdown which shows a list of plants this user (plant operator) is linked to.

  • By default, the option "All Plants" is selected.

  • When a user selects a plant, lets say, plant A, all the data of plant A will be shown in the app, whether it's inbox, view past results page, home page, etc.

  • Whenever a change in a plant is detected through the dropdown, the app is redirected to the landing screen.

  • A plant operator is a sanitation worker; while creating a sanitation worker, you can link the sanitation worker to one or multiple plants.

  • Data such as a list of the current user's plants and active plant is stored in session storage, and is available to use within the app.

How a Plant's Dropdown is Populated

  • Whenever a plant operator logs in, he/she can make a call to this API endpoint "/pqm-service/plant/user/v1/_search" to get a list of the plants that the user is linked to .

  • Sample payload:

  • Send the user's individual id/uuid in the request object.

  • Curl for the above API call:

  • You will get a list of plants in the response which is used to populate the dropdown.

  • By default, the "All Plants" option is selected which is the default behaviour.

  • When a user selects a particular plant, it becomes active and one can filter the data (all tests shown in the app) by that plant's code in the UI.

  • UI for the top bar:

Faecal Sludge Management (FSM)

Online solution to desludging operations management

Overview

Our mission is to build a digital tool that enables urban local body employees to deliver desludging services (emptying septic tanks) to citizens. The linear nature of feacal sludge value chains presents a clear framework for comprehending the optimal flow of sludge, but these value chains consist of diverse stakeholders and business models. The absence of coordination among value chain stakeholders and the lack of transparency to enforce standardised practices at each stage of the value chain lead to subpar sanitation outcomes. Furthermore, conflicts between stakeholders and the feasibility challenges of existing and emerging business models diminish the efficiency of the waste value chain.

The Faecal Sludge Management (FSM) application has been able to provide data and visibility to track service requests and understand the service delivery value chain, paving the way for process enhancements in FSM.

The product will provide the following benefits:

  1. Reduce time taken for service delivery.

  2. Establish a chain of custody of waste from the point of collection to disposal.

  3. Digital record keeping of service deliveries.

  4. Support data interoperability with other sanitation systems in the state.

  5. Improve sustainability by providing visibility and control to the government.

Benefits to Value-Chain Stakeholders

Sanitation Actors & Interactions

Actor Interaction Mapping

The above diagram illustrates the integration between each actor. A brief description of each role is provided below:

Edit Sanitation Worker

From the Screen Admin can search for Sanitation worker and go to it's .

Updating Sanitation Workers

  • From the , admin can click on "Edit" action

  • Admin will be redirected to the edit sanitation worker page

  • This page contains the same form as . The only difference is all the fields are auto populated based on the worker that we are updating

  • Admin can update all the details except Sanitation Worker Id and Name

  • Clicking on Submit will show a response screen saying Sanitation Worker details updated successfully

API Details

Individual Update

  • We are hitting Individual Update endpoint "/individual/v1/_update" to update the details of a Sanitation worker

  • Refer the curl below:

Vendor Update

  • If during update, vendor details are changed then along with individual update we are calling vendor update "/vendor/v1/_update"

  • Refer the curl below

Role Action Mapping

  • Role action mapping is done for the above 2 endpoints for "FSM_ADMIN" role

FSM Release Notes

Release Summary

DIGIT FSM V1.4 has been enhanced to provide the base for features to ensure Sanitation Worker Welfare. To know more about DIGIT FSM v1.4 , please follow the .

Functional Changes

  • Deprecating Driver Registry

  • Introduction of Sanitation Worker Registry

  • Tagging Sanitation Workers to Service requests.

Enhancements

Document Resources & Links

  • Click for Known Issue List.

Success Criteria

Product Roadmap

Create Adhoc Test

ULB admins have an option to create a test. This is an adhoc test which does not have any workflow involved. By default, it will be in the submitted state when created.

Create Adhoc Test Flow

  • From the home screen, click on the Add Test Result link.

  • The user is redirected to Create Test screen. This page has two form cards. One is for entering Plant Name, Treatment Process, Stage and output type. The other card has a list of benchmarks according to the selection of the above form.

  • Note: After filling the first form, only the list of benchmarks will show up.

  • If any quality criteria is not found for the selection of parameters, an error is shown and user has to select another criteria.

  • After filling the forms, click on submit to create a test.

  • After a successful creation, the system automatically redirects to the view test details screen of the newly-created test.

API Details for Create:

  • Use pqm-service.

  • URL for inbox "/pqm-service/v1/_create".

  • Sample request object:

  • Sample curl for inbox:

Role-Action Mapping:

Role-action mapping is done for the "/pqm-service/v1/_create" and "/pqm-service/v1/search" endpoint for a ULB admin user role, that is:

Process Quality Management (PQM) Service

  • Create, update, and search for process quality monitoring tests.

  • Evaluate test values against benchmarks, producing a result (FAIL/PASS) status.

  • Test results undergo anomaly analysis for comprehensive insights.

  • Plant performance related charts.

Process Quality Management (PQM) Anomaly Finder Service

  • Actively monitors anomalies in process quality.

  • Notifies relevant user groups promptly for proactive anomaly management.

PQM Scheduler (CronJob Scheduler)

  • Automates test scheduling based on environment configuration.

  • Triggers schedule APIs from PQM-Service to generate tests.

  • Efficiently runs tests at specified intervals, ensuring a configurable solution.

Sanitation worker welfare feature

A new worker registry concept has been created.

The creation of a worker, updation of details, searching and tagging a worker for different operations on sanitation programmes.

Driver-individual migration feature

The driver-individual migration scripts is responsible for fetching all existing drivers in the system and subsequently generating creates corresponding individuals in the system.

FSM Inbox V2

The inbox for FSM has been upgraded from V1 to V2.

TQM UI

Sanitation Worker UI

New Docs

PQM-Service

PqmPlant-User Mapping

PQM-Anomaly-Finder PQM-Scheduler Sanitation Worker Welfare Driver-Individual Migration Script FSM Inbox V2

Legacy/Re-Indexing the FSM Data Updated FSM Service

Fsm Plant-User Mapping

Vendor Registry

Citizen

  • The citizen is able to have multi-channel access to safe and trackable service delivery. This leads to accountable and transparent services, and seamless grievance redressal.

  • They can receive push notifications with reminders for when their septic tank is due for desludging or with information on how to accurately segregate solid waste — to create behavioural nudges that contribute to healthier habitats.

  • Overall improvements in waste management and reduction in illegal dumping will mean that everyone lives in a cleaner and healthier neighbourhood, leading to public health gains (for example, a reduction in water-borne diseases).

Sanitation worker

  • The sanitation workers are skilled in safe sanitation practices, standards and tools.

  • Monitored service delivery will lead to optimisation of performance and create safe working conditions with transparency, ensuring compliance in safety practices.

  • Enumeration of sanitation workers will enable delivery of targeted benefits and welfare schemes for workers and their families (for example, health checkups, insurance, social security, scholarships for children, etc.).

ULB Employee

  • The ULB employee is able to create a single back-end registry for all incoming service requests. They are able to collect and maintain relevant citizen information to deliver efficient services.

  • The ULB employee is able to do remote tracking of value chain stakeholder — waste-transporters can be tracked in real-time to ensure that there is no illegal dumping of collected waste. They are able to ensure that quality of waste treatment meets the standards by validating automated records without being at the waste treatment plant.

Waste management vendors/Desludging Operators

  • Waste management vendors are able to assign tools and services that best suit the citizen who has raised the request by referring to the relevant information that would affect service delivery, such as property information. The ability to do this would make the process time and cost-effective.

  • Increasing the viability of waste management services will enable more private players to enter the fray, limit illegal dumping and eradicate opportunities for illegal manual scavenging.

Faecal Sludge/Co-treatment plant/Centre operator

  • The plant operator will be able to validate that there is no discrepancy in volume between the waste collected at the households and disposed off at the plant, ensuring that no waste drops off the value chain without treatment.

  • Adhere to the schedule for treatment quality, and record treatment quality results.

  • Adhere to the schedule for maintenance, and ensure that the plant is up and running efficiently.

  • Treatment plants can be plugged into waste-to-value markets, making it easier for buyers of processed and tested waste to discover and buy from them, thereby contributing to the financial sustainability of treatment plants.

Administrators

  • Govern the entire waste value chain via dashboards.

  • View the capacity available for transport and treatment at the state and ULB levels, and its utilisation via dashboards.

  • View compliance of SLAs and citizen satisfaction levels for services.

curl 'https://unified-dev.digit.org/individual/v1/_update?tenantId=pg.citya' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/fsm/registry/edit-worker?id=IND-2023-12-11-011010' \
  -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  --data-raw '{"Individual":{"id":"02bc1a5b-fed9-4176-bada-974aeeb8e613","individualId":"IND-2023-12-11-011010","tenantId":"pg.citya","clientReferenceId":null,"userId":null,"userUuid":null,"name":{"givenName":"sdjhsdhsdkjhs","familyName":null,"otherNames":null},"dateOfBirth":-19800000,"gender":"MALE","bloodGroup":null,"mobileNumber":"7897897899","altContactNumber":null,"email":null,"address":[{"id":"d2a6e81d-c3ce-4608-af11-5b0d0ca0aa0d","clientReferenceId":null,"individualId":"02bc1a5b-fed9-4176-bada-974aeeb8e613","tenantId":"pg.citya","doorNo":null,"latitude":0,"longitude":0,"locationAccuracy":0,"type":"PERMANENT","addressLine1":null,"addressLine2":null,"landmark":null,"city":"pg.citya","pincode":null,"buildingName":null,"street":null,"locality":{"code":"SUN02","name":null,"label":null,"latitude":null,"longitude":null,"children":null,"materializedPath":null},"ward":null,"isDeleted":false,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702288646617,"lastModifiedTime":1702459735736}}],"fatherName":null,"husbandName":null,"relationship":null,"identifiers":null,"skills":[{"type":"Driving","level":"UNSKILLED"}],"photo":null,"additionalFields":{"fields":[{"key":"FUNCTIONAL_ROLE_1","value":"SANITATION_HELPER"},{"key":"EMPLOYMENT_TYPE_1","value":"FIXED"},{"key":"FUNCTIONAL_ROLE_COUNT","value":"01"},{"key":"EMPLOYER","value":"ULB"}]},"isDeleted":false,"rowVersion":11,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702288646617,"lastModifiedTime":1702459735737},"clientAuditDetails":{"createdBy":null,"lastModifiedBy":null,"createdTime":0,"lastModifiedTime":0},"isSystemUser":true,"isSystemUserActive":true,"userDetails":{"username":"7897897899","password":null,"tenantId":"pg.citya","roles":[{"code":"CITIZEN","tenantId":"pg.citya"},{"code":"SANITATION_WORKER","tenantId":"pg.citya"},{"code":"SANITATION_HELPER","tenantId":"pg.citya"}],"type":"CITIZEN"}},"RequestInfo":{"apiId":"Rainmaker","authToken":"06170439-7751-41d9-8043-04ede25e9499","userInfo":{"id":927,"uuid":"49341961-f413-4ae1-b7f8-92a8d9136f38","userName":"ADMIN","name":"Plant operator","mobileNumber":"8282828121","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"FSM Administrator","code":"FSM_ADMIN","tenantId":"pg.citya"},{"name":"FSM Employee Application Viewer","code":"FSM_VIEW_EMP","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1702469181914|en_IN","plainAccessRequest":{}}}' \
  --compressed
curl 'https://unified-dev.digit.org/vendor/v1/_update?tenantId=pg.citya' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/fsm/registry/edit-worker?id=IND-2023-12-11-011010' \
  -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  --data-raw '{"vendor":{"id":"da5dae4c-95d7-43b6-a92f-e504d6000ef8","tenantId":"pg.citya","name":"djhdjkdhsjkh","address":{"tenantId":"pg.citya","doorNo":"","plotNo":"","id":"7132305a-ecd1-4f5e-af02-9894103a3742","landmark":"","city":"CityA","district":"CityA","region":"CityA","state":null,"country":"in","pincode":"","additionalDetails":"{\"description\": \"\"}","buildingName":"","street":"","locality":{"code":"SUN01","name":"Ajit Nagar - Area1","label":"Locality","latitude":"31.63089","longitude":"74.871552","children":[],"materializedPath":null},"geoLocation":null,"auditDetails":null},"owner":{"id":933,"uuid":"5b610239-fa1c-4538-b771-90cf255304b3","userName":"7787678673","password":null,"salutation":null,"name":"djhdjkdhsjkh","gender":"MALE","mobileNumber":"7787678673","emailId":"[email protected]","altContactNumber":null,"pan":null,"aadhaarNumber":null,"permanentAddress":null,"permanentCity":null,"permanentPinCode":null,"correspondenceCity":null,"correspondencePinCode":null,"correspondenceAddress":null,"active":true,"dob":0,"pwdExpiryDate":1710545514000,"locale":null,"type":"CITIZEN","signature":null,"accountLocked":false,"roles":[{"id":null,"name":"FSM Desluding Operator","code":"FSM_DSO","tenantId":"pg"},{"id":null,"name":"Citizen","code":"CITIZEN","tenantId":"pg"}],"fatherOrHusbandName":"djhdjkdhsjkh","relationship":"OTHER","bloodGroup":null,"identificationMark":null,"photo":null,"createdBy":"927","createdDate":1702393314000,"lastModifiedBy":"927","lastModifiedDate":1702486776000,"otpReference":null,"tenantId":"pg"},"vehicles":null,"drivers":null,"workers":[{"id":"59090353-59f6-4242-86ea-bbd92ecbe674","tenantId":"pg.citya","vendorId":"da5dae4c-95d7-43b6-a92f-e504d6000ef8","individualId":"1e5ad42e-2734-48fc-b934-fc32ef5058a6","additionalDetails":null,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702373514847,"lastModifiedTime":1702462026145},"vendorWorkerStatus":"ACTIVE"},{"id":"1e19a4f0-3ead-4985-bb59-aa4b57df6af2","tenantId":"pg.citya","vendorId":"da5dae4c-95d7-43b6-a92f-e504d6000ef8","individualId":"c050f0e5-d0a0-4f2a-83c0-63876827d6e1","additionalDetails":null,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702373514847,"lastModifiedTime":1702462071879},"vendorWorkerStatus":"ACTIVE"},{"id":"0a79d0d1-ac14-4ed4-a6cc-7971a29043e2","tenantId":"pg.citya","vendorId":"da5dae4c-95d7-43b6-a92f-e504d6000ef8","individualId":"f6f99ec9-9fcd-489c-8f66-58a4a63432b3","additionalDetails":null,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702373514847,"lastModifiedTime":1702459924693},"vendorWorkerStatus":"ACTIVE"},{"id":"39cc81f9-58e7-4912-9743-81f51ba03cd5","tenantId":"pg.citya","vendorId":"da5dae4c-95d7-43b6-a92f-e504d6000ef8","individualId":"8215eb13-f247-4782-9acd-665214d24a98","additionalDetails":null,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702373514847,"lastModifiedTime":1702461623872},"vendorWorkerStatus":"ACTIVE"},{"individualId":"02bc1a5b-fed9-4176-bada-974aeeb8e613","vendorWorkerStatus":"ACTIVE"}],"additionalDetails":{"description":""},"source":"WhatsApp","description":null,"ownerId":"5b610239-fa1c-4538-b771-90cf255304b3","agencyType":"ULB","paymentPreference":"post-service","status":"ACTIVE","auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702373514847,"lastModifiedTime":1702466976705}},"RequestInfo":{"apiId":"Rainmaker","authToken":"06170439-7751-41d9-8043-04ede25e9499","userInfo":{"id":927,"uuid":"49341961-f413-4ae1-b7f8-92a8d9136f38","userName":"ADMIN","name":"Plant operator","mobileNumber":"8282828121","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"FSM Administrator","code":"FSM_ADMIN","tenantId":"pg.citya"},{"name":"FSM Employee Application Viewer","code":"FSM_VIEW_EMP","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1702469182205|en_IN","plainAccessRequest":{}}}' \
  --compressed
FSM Registry
details page
Sanitation Worker details page
Create Sanitation Worker

Loading Localisations

  1. Import the curl :

    curl --location --request POST 'https://fsm-2.3.digit.org/localization/messages/v1/_upsert?tenantId=pg' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "RequestInfo": {
            "apiId": "Rainmaker",
            "ver": ".01",
            "ts": "",
            "action": "_create",
            "did": "1",
            "key": "",
            "msgId": "20170310130900|hi_IN",
            "authToken": "94a4a1dd-5691-4534-88ce-d3440c2e1b85",
            "userInfo": {
                "id": 118,
                "userName": "TLCreator",
                "salutation": null,
                "name": "TLCreator",
                "gender": "MALE",
                "mobileNumber": "6666666666",
                "emailId": null,
                "altContactNumber": null,
                "pan": null,
                "aadhaarNumber": null,
                "permanentAddress": null,
                "permanentCity": null,
                "permanentPinCode": null,
                "correspondenceAddress": "Bang",
                "correspondenceCity": null,
                "correspondencePinCode": null,
                "addresses": [
                    {
                        "pinCode": null,
                        "city": null,
                        "address": "Bang",
                        "type": "CORRESPONDENCE",
                        "id": 235,
                        "tenantId": "uk.haldwani",
                        "userId": 118,
                        "addressType": "CORRESPONDENCE",
                        "lastModifiedDate": null,
                        "lastModifiedBy": null
                    }
                ],
                "active": true,
                "locale": null,
                "type": "EMPLOYEE",
                "accountLocked": false,
                "accountLockedDate": 1571224291053,
                "fatherOrHusbandName": "Test",
                "signature": null,
                "bloodGroup": null,
                "photo": null,
                "identificationMark": null,
                "createdBy": 4,
                "lastModifiedBy": 1,
                "tenantId": "uk.haldwani",
                "roles": [
                    {
                        "code": "PTCEMP",
                        "name": "PT Counter Employee",
                        "tenantId": "uk.haldwani"
                    },
                    {
                        "code": "TL_CEMP",
                        "name": "TL Counter Employee",
                        "tenantId": "uk.haldwani"
                    }
                ],
                "uuid": "573dd472-ebbc-4bbd-b093-897d33f95980",
                "createdDate": "07-10-2019 17:51:18",
                "lastModifiedDate": "13-11-2019 12:19:55",
                "dob": "1/10/2019",
                "pwdExpiryDate": "05-01-2020 17:51:18"
            }
        },
        "tenantId": "pg",
        "messages": [
            {
                "code": "FROM_OTHER_ULB",
                "message": "Other",
                "module": "rainmaker-fsm",
                "locale": "en_IN"
            }
        ]
    }'
  2. Login to Super_user and copy the auth token

  3. Change the req. Url to env you want to push also the auth token

  4. Add the localisation message in the request body.

  5. Hit the url.

Reference Localisation Doc :

All localisations of FSM : https://docs.google.com/spreadsheets/d/1RWqP-h_s0lJZnQ9RvFOIePdy7Hxle-RN/edit?usp=sharing&ouid=109809705320882389789&rtpof=true&sd=true

https://docs.google.com/document/d/1z-V8U8BvT1Ict1gRyf4b4aOCjr_snJ-Psk6A_5oKzWs/edit?usp=sharing

https://drive.google.com/drive/folders/1bIv4txLjOSt2L4DsNWkShSgmZFzo73yU?usp=drive_link

Important points :

  1. Related modules for FSM : rainmaker-fsm,rainmaker-common,rainmaker-dss

  2. Push the localisation for all the modules separately

  3. After pushing the localisation,make a file to store all the localisations according to modules.

- name: 'builds/SANITATION/pqm'
    build:
      - work-dir: 'pqm'
        image-name: 'pqm-service'
        dockerfile: 'build/maven/Dockerfile'
      - work-dir: 'pqm/src/main/resources/db'
        image-name: 'pqm-service-db'
- name: 'builds/SANITATION/pqm-scheduler'
    build:
      - work-dir: 'pqm-scheduler'
        image-name: 'pqm-scheduler'
        dockerfile: 'pqm-scheduler/Dockerfile'
  - name: 'builds/SANITATION/pqm-anomaly-finder'
    build:
      - work-dir: 'pqm-anomaly-finder'
        image-name: 'pqm-anomaly-finder'
        dockerfile: 'build/maven/Dockerfile'
      - work-dir: 'pqm-anomaly-finder/src/main/resources/db'
        image-name: 'pqm-anomaly-finder-db'
PQM-Service
pqm-service-persister
Helm chart.
Access Control Actions Test
Access Control Role Actions
PQM Scheduler configuration
Helm chart
Access Control Actions Test
Access Control Role Actions
PQM Anomaly Finder service
Helm chart
link
link
link
link
link
script
TQM UI
Sanitation Worker UI
https://github.com/egovernments/SANITATION/pull/399
https://github.com/egovernments/SANITATION/pull/408
https://github.com/egovernments/SANITATION/pull/409
{
        "module": "Tqm",
        "code": "Tqm",
        "active": true,
        "order": 14,
        "additionalComponent": "TqmAdminNotification",
        "tenants": [
            {
                "code": "pg.cityb"
            },
            {
                "code": "pg.cityc"
            },
            {
                "code": "pg.citya"
            }
        ]
      }
const enabledModules = [
  "DSS",
  "HRMS",
  "Payment",
  "FSM",
  "Utilities",
  "Tqm", // Note -> here case is different than that of in mdms but it does not matter as long as name is same
  
]
 "@egovernments/digit-ui-module-core": "1.8.0-beta.13"
{
    "RequestInfo": {
        "apiId": "asset-services",
        "ver": null,
        "ts": null,
        "action": null,
        "did": null,
        "key": null,
        "msgId": "search with from and to values",
        "authToken": "{{access_token}}",
        "correlationId": null,
        "userInfo": {
            "id": "1",
            "userName": null,
            "name": null,
            "type": null,
            "mobileNumber": null,
            "emailId": null,
            "roles": null,
            "uuid": "d7867ef2-d046-4361-9a82-94c35c98416e"
        }
    },
    "plantUserSearchCriteria": {
        "ids": [],
        "tenantId": "pg",
        "plantCodes": [
        ],
        "individualIds": ["d7867ef2-d046-4361-9a82-94c35c98416e"],
        "additionalDetails": {}
    },
    "pagination": {}
}
curl --location 'http://localhost:7008/pqm-service/plant/user/v1/_search' \
--header 'Content-Type: application/json' \
--data '{
    "RequestInfo": {
        "apiId": "asset-services",
        "ver": null,
        "ts": null,
        "action": null,
        "did": null,
        "key": null,
        "msgId": "search with from and to values",
        "authToken": "",
        "correlationId": null,
        "userInfo": {
            "id": "1",
            "userName": null,
            "name": null,
            "type": null,
            "mobileNumber": null,
            "emailId": null,
            "roles": null,
            "uuid": "d7867ef2-d046-4361-9a82-94c35c98416e"
        }
    },
    "plantUserSearchCriteria": {
        "ids": [],
        "tenantId": "pg",
        "plantCodes": [
        ],
        "individualIds": ["d7867ef2-d046-4361-9a82-94c35c98416e"],
        "additionalDetails": {}
    },
    "pagination": {}
}'

Role

Description

Action

System Administrator

The user can define boundaries, create roles and users, define properties,, upload lisy of localities and slums, as well as create localisation.

  1. Define boundaries.

  2. Create roles and map to actions.

  3. Create users: Map to the role and boundary (boundary mapping to be confirmed).

  4. Define property types and sub-types.

  5. Define pricing.

  6. Upload the list of localities and pin codes.

  7. Upload the list of slums.

  8. Define the minimum advance pricing to be collected.

  9. Create localisation.

Citizen

A citizen can request for a desludging operation online. The user can check the status of the application online, make the payment for the service online, and post desludging, they can rate the quality of the service online.

  1. Request for desludging services.

  2. View the acknowledgement receipt.

  3. View the payment receipts.

  4. Track the status of desludging requests.

  5. View the history of past desludging services.

  6. Make online payments.

ULB Employee (Can be assigned roles as creator, collector, editor, report viewer, dashboard viewer or admin)

A ULB official will act as a regulatory and management authority for the entire desludging process. He/she can receive the request from a citizen online or can create a request on behalf of the citizen online. When the request is received, the user can assign a desludging operator for a request. The official can also update the status of the request on behalf of the DSO after the service is completed at the site, and view the relevant reports.

  1. Add, update, and disable vendors.

  2. Add, update, and disable drivers.

  3. Add, update, and disable vehicles.

  4. Map vendors and drivers.

  5. Map vehicles and drivers.

  6. Create desludging service requests on behalf of citizens.

  7. Accept, reject, or update desludging service requests

  8. Assign vendors to desludging services.

  9. Collect service fees.

  10. View dashboards and reports for a specific ULB.

Transportation Vendors

This user can receive the requests assigned by a ULB official, and update the status of the transaction after the service is completed.

  1. Accept/reject desludging requests.

  2. Assign vehicles to requests.

  3. Update the number of trips.

  4. Map the completion of requests.

Treatment Plant Operator

This user can view the current demand, that is, the list of planned desludging requests available in the system. He/she can update the vehicle log which enters the FSTP/STP every day.

  1. Record incoming vehicles against requests.

  2. Record incoming vehicles without associated service requests.

State Administrator

The user can view dashbaords and reports. The user can also filter dasboards and reports for a specific urban local body and by time.

  1. View dashboards and reports for states.

  2. Filter dashboards and reports by time, and for a specific ULB.

Updated Feature

Description

Maintaining a list of unique sanitation workers in DIGIT Sanitation through a sanitation worker registry

  • Viewing list

  • Adding a sanitation worker

  • Updating details

  • Disabling sanitation worker

  • Tagging sanitation workers to vendors

Recording participation of sanitation workers in service delivery by tagging sanitation workers to requests:

  • Tagging multiple sanitation workers to a request

  • Editing tagged sanitation workers

  • SMS to sanitation Worker in case of request assignment

Upgrade to inbox from V1 to V2

  • To improve performance of the inbox, migrated to version v2 of inbox

Goal

Category

Objective

How will it be measured via the product?

How will we know this is successful?

Zero deaths, diseases, and environmental contamination resulting from poor sanitation

Primary

To ensure every sanitation worker has a valid identity so as to enable distribution of benefits.

Number of sanitation workers registered in the system.

Increase in the number of sanitation Workers enrolled in the system over time.

GitBook Link
here
{
    "tests": [
        {
            "tenantId": "pg.citya",
            "plantCode": "ANGUL_FSTP",
            "processCode": "FECAL_SLUDGE_MANAGEMENT",
            "stageCode": "SOLID_TREATMENT_VAR",
            "materialCode": "FECAL_SLUDGE",
            "testCriteria": [
                {
                    "criteriaCode": "TSS_LESST_100",
                    "resultValue": "21",
                    "isActive": true
                }
            ],
            "testType": "LAB_ADHOC",
            "scheduledDate": null,
            "isActive": null,
            "documents": [],
            "additionalDetails": {},
            "workflow": null
        }
    ],
    "RequestInfo": {
        "apiId": "Rainmaker",
        "authToken": "a0c56299-3bde-48e2-b0fb-76686fdff3dc",
        "userInfo": {
            "id": 722,
            "uuid": "56e8c2df-af55-46a9-a378-885915cde0ab",
            "userName": "TQM_DEV_ULBADMIN",
            "name": "ULB Admin",
            "mobileNumber": "7281638698",
            "emailId": null,
            "locale": null,
            "type": "EMPLOYEE",
            "roles": [
                {
                    "name": "PQM Admin",
                    "code": "PQM_ADMIN",
                    "tenantId": "pg.citya"
                }
            ],
            "active": true,
            "tenantId": "pg.citya",
            "permanentCity": null
        },
        "msgId": "1701080787582|en_IN",
        "plainAccessRequest": {}
    }
}
curl 'https://unified-dev.digit.org/pqm-service/v1/_create' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'cookie: _ga_V2CPZCVTXQ=GS1.1.1695293925.1.1.1695293950.0.0.0; __cuid=59fd9aac25b044f6af006bd4b159cbbf; amp_fef1e8=f4fc07f6-3fb0-4c67-8114-a1beb906e625R...1hf75985a.1hf76uet8.i.8.q; _ga_P1TZCPKF6S=GS1.1.1699974064.1.1.1699975479.60.0.0; _ga=GA1.2.1291438273.1695293925; _ga_0JZG96DZSM=GS1.1.1699977339.2.0.1699977339.60.0.0' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/tqm/add-test-result' \
  -H 'sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36' \
  --data-raw '{"tests":[{"tenantId":"pg.citya","plantCode":"ANGUL_FSTP","processCode":"FECAL_SLUDGE_MANAGEMENT","stageCode":"SOLID_TREATMENT_VAR","materialCode":"FECAL_SLUDGE","testCriteria":[{"criteriaCode":"TSS_LESST_100","resultValue":"21","isActive":true}],"testType":"LAB_ADHOC","scheduledDate":null,"isActive":null,"documents":[],"additionalDetails":{},"workflow":null}],"RequestInfo":{"apiId":"Rainmaker","authToken":"a0c56299-3bde-48e2-b0fb-76686fdff3dc","userInfo":{"id":722,"uuid":"56e8c2df-af55-46a9-a378-885915cde0ab","userName":"TQM_DEV_ULBADMIN","name":"ULB Admin","mobileNumber":"7281638698","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"PQM Admin","code":"PQM_ADMIN","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1701080787582|en_IN","plainAccessRequest":{}}}' \
  --compressed
PQM_ADMIN
Create Adhoc Test

Data loading steps

To add new ulb/tenant for FSM,following steps should be followed:

  • Add data in MDMS

Reference from Annexure

Data

Location

Description

Annexure -1 Sl. No. A1 - A4

Tenant Details

To show the tenant at login screen

To enable ulb to create application,add tenant in FSM module

Annexure -1 Sl. No. B1 - B6

FSTP Data

To add FSTP information

Annexure-2 Vehicle Make,Vehicle Model,Cesspool Tank Capacity

New Vehicles

Add Vehicles in application.Before pushing the vehicle data,new vehicle should be added in mdms.

Annexure -3

Slum Details

To add slum data,create a folder of a respective tenant and inside it add slum.json file in FSM folder

URC Feature

To enable URC(GramPanchayat) feature for ulb

Annexure -4

Zero pricing feature

To enable zero pricing feature

Annexure -5

Locality and Gram Panchayat Details

Under specific ulb folder,add locality and gp details under egov-location folder.

  • After this,restart the mdms service and check the status in ui.The tenant will be added in ui.

  • Create Employee and FSTP login credientials.

  • Plant Mapping of tenant

  • Push the localisation of all the slums and Gram Panchayat in tenant.

  • Push the billing-slab of new tenant

  • Push the vendor-vehicle data of new tenant

Release Notes

Release Summary

DIGIT Sanitation is enhanced with a new Product -Treatment Quality Monitoring(TQM). The Treatment Quality Monitoring aims to improve the Treatment Quality of plants by ensuring that timely tests are conducted and any deviations are addressed quickly. To know more about Treatment Quality Monitoring(TQM) , please follow the GitBook Link.

New Module

  • Treatment Quality Monitoring(TQM)

New Feature Additions

Feature

Description

  1. Schedule of Tests

  • This component will be used by treatment plant operators and urban local body (ULB) employees to see the schedule of tests.

  1. Digital Record of Test Results

  • This component will be used by treatment plant operators and ULB employees to upload results manually and track IoT readings.

  1. Anomaly Detection

  • This component will be used by treatment plant operators and ULB employees to interpret test results.

4. Dashboards

  • This module will give stakeholders insights and information regarding the operations of the treatment plant. Users can use this to drill down and identify plants and processes where compliance to testing and/or test results are not upto benchmarks.

  • Dashboards will also help users see trends over time to see patterns and identify long-term problem areas

Document Resources & Links

  • Click here for Known Issue List.

Success Criteria

Goal

Category

Objective

How will it be measured via the product

How will we know TQM is successful

Zero deaths, diseases, and environmental contamination resulting from poor sanitation

Primary

To ensure treated waste is as per the quality standards

The percentage of treatment quality tests passed for a specific period

Increase in the percentage of treatment quality tests passed for a specific period

Zero deaths, diseases, and environmental contamination resulting from poor sanitation

Secondary

To ensure treated waste is tested regularly for quick identification of issues

The percentage compliance against testing schedule for a specific period

Increase in the percentage compliance against testing schedule over time

Product Roadmap

Contact UseGov Foundation

View Past Test Results/Test's Summary Screen

From the TQM card in the home screen, there is a link to "View Past Tests".

View Past Tests/Test's Summary Screen

  • The view past tests screen will show the tests whose workflow is completed, that is, they are in the submitted status.

  • The screen shows a list of cards, each card corresponding to a test, and shows test details similar to inbox.

  • Filters and sort options are available.

  • User can filter by Treatment process, Output Type, Test Type and the date range.

  • Sort is similar to inbox.

API Details:

  • Use the pqm-service.

  • URL for search "/pqm-service/v1/_search".

  • Sample request object:

  • Sample curl for search:

Role-Action Mapping:

Role-action mapping is done for the search endpoint for a plant operator user role, that is:

Septage Treatment Plant Operator User Manual

The Septage Treatment Plant Operator (SeTPO) receives multiple vehicles servicing various desludging requests in the urban local body (ULB) and adjacent gram panchayats (GPs) through the day, each day. Some of these trips made by some vehicles may be associated with the applications raised and serviced through the platform. Additionally, incoming vehicles may come in independently, without corresponding applications.

SeTPO can‌:

  • Update the status of applications and trips in “Waiting for Disposal” stage at the FSTP/STP as disposed

  • Log vehicle(s) requests that are not in the system

Login

FSTP operators are provided credentials to login to the system.

User Actions

On this page, the following actions can be performed:

  • Enter username and password

  • Select the city for login

  • Reset password by clicking on the “Forgot Password” link

On clicking continue, FSTP operators are redirected to the FSM homepage.

User Actions

  • Click on Inbox to view incoming vehicles for disposal against applications and perform actions

  • Record incoming vehicle that has not come in via an application

  • View reports

  • Change language

  • Edit profile details by clicking on the user icon on the top right hand corner

  • Logout by clicking on the user icon on top right hand corner

On this page, the following actions can be performed:

Updating Disposal Status of Trips

To view incoming vehicles for disposal against applications, the user can navigate to the inbox. The inbox displays a list of trips along with the vehicle number that is pending to be disposed off at a specific plant.

User Actions

The following actions can be performed:

  • Search for an active trip using the “Application No.”, Vehicle no. and DSO name.

  • Clear search by clicking on “Clear Search”

  • View and update trip details by clicking on a trip ID or vehicle log

  • Sort applications and trips by the application date

On clicking on an application number or vehicle log ID, the user is redirected to the update trip page.

Confirming Disposal

User Actions

  • View trip details such as Vehicle no., DSO Name, and Locality.

  • Update vehicle in time and out time.

  • Update septage dumped (in litres)

  • Add additional details and attachments.

  • Submit form or decline vehicle by clicking on the “Take Action” button

The following actions can be performed:

The take action button has the following options:

  • Decline Vehicle

  • Submit

On clicking the Submit button, the application is updated successfully and a snack bar will appear for confirmation. The application will also be removed from the Inbox.

Declining Vehicle

There are multiple reasons why a vehicle may be declined at the treatment plant, such as due to the quality of waste or if the plant is under maintenance. In such cases, the treatment plant operator may decline the incoming vehicle. This can be done from the application details page where the “Take Action” button has the option for Decline. On clicking on this, the following pop-up will appear.

User Actions

The following actions can be performed:

  • Select the reason for declining

  • Close pop-up by clicking on the Close button on the pop up.

  • Close pop-up by clicking on the cross icon on the top right of the pop up.

  • Confirm decline by clicking on Decline Vehicle.

On clicking on Decline Vehicle, there will be a snack bar confirming the action and the user will be redirected to the home screen.

Log Vehicle Requests that are Not in the System

Incoming vehicles that have not come in via an application can be recorded by the user using the add ‘New’ button on the FSM home screen. On clicking on the New button, the user will be redirected to the following screen:

User Actions

The following actions can be performed:

  • Enter Vehicle Number

  • Click on Next

Once vehicle number is entered, the ‘Next’ button will be highlighted and the user will be redirected to the Vehicle Log screen.

User Actions

The following actions can be performed:

  • Update DSO Name and Locality

  • Update Vehicle In time and Out time.

  • Update volume of waste.

  • Update Additional Details and Attachments.

  • Submit the form by clicking on Submit.

A snack bar will confirm submission and the user will be redirected to the FSM homepage.

Assign Sanitation Workers to FSM Applications

In FSM 1.3 EDITOR users could take workflow actions and assign drivers to FSM Applications now we have changed that assignment. Now EDITOR users can assign a driver and multiple helpers to an FSM Application. And both driver and helper are Sanitation workers now.

EDITOR User role code:

Assigning Sanitation workers to FSM Applications

  • Login with EDITOR user and go to FSM Inbox

  • From Inbox choose any application whose status is pending for DSO assignment

  • Go to the application details page from inbox

  • From the Action bar options click on "Assign Vehicle and Sanitation Workers"

  • A Popup window will open which looks like the following

  • We have two new options here, Assign Driver and Assign Sanitation Worker

  • Assign Driver is single select and mandatory

  • Assign Sanitation worker is multi-select and we can assign multiple Sanitation workers. Assigning worker is non mandatory though

  • Both these dropdowns are searchable i.e., EDITOR can search by name and Sanitation worker ID

  • These dropdowns are populated based on the vendor that is tagged to the current FSM Application.

  • User can click on Assign to take this action. A toast message is displayed showing the update is successful.

  • After this action, added Sanitation workers are displayed on the Application Details screen under DSO Details Section

API Details

FSM Search

  • To fetch FSM application details we are hitting this endpoint "/fsm/v1/_search"

  • Refer the below curl:

FSM Update

  • To update FSM application we are hitting this endpoint "/fsm/v1/_update"

  • Refer to the below curl:

Vendor Search

  • To get a particular vendor data tagged to the current application we are hitting this endpoint "/vendor/v1/_search"

  • Refer to the below curl

Role Action Mapping

Role action mapping for the above three endpoints is done for this role

FSM FSTPO UI

In FSTP, we are trying to decouple the vehicle dispose from the FSM application. Whether vehicle is attached to any FSM application or not, we allow the vehicle to dispose in the FSTP plant.

FSTP Home UI:

After logging as a FSTP user, we have now the home button option:

Technical Implementation Details:

Code changes path are:

DIGIT-Dev/frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/components/FsmCard.js

FSTP Operations UI:

After moving into “home” option, an FSTP user can choose from the following options:

  • FSTP can choose Add Vehicle Log option if he/she wants to check whether a vehicle is linked to any application and dispose.

  • FSTP can choose Inbox if he/she wants to check all the applications that are is ready to dispose.

Technical Implementation Details:

The path for code:

frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/pages/employee/FstpOperations.js

The code snippet for populating the options:

The code snippet for rendering the icon:

ULBHomeCard.js is the common component used to populate options in the screen.

The paths:

frontend/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/ULBHomeCard.js

FSTP Add Vehicle Log UI:

FSTP can add vehicle log using vehicle number (in proper format with spaces, e.g. AB 00 CD 1234). An improper format will throw an error.

Techincal Implementation Details:

The path for the code:

frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/pages/employee/FstpAddVehicle.js

The code snippet for populating the add vehicle log field and its validation:

The code snippet for rendering the screen:

FSTP Service Request Screen:

After entering the vehicle number in the add vehicle log screen, we are fetching the FSM application, which is linked to that specific vehicle number. The data is rendered as shown below:

Technical Implementation Details:

The path for the code:

frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/pages/employee/FstpServiceRequest.js

The code snippets for fetching the FSM application linked to vehicle number:

Fetching the vehicle Id using vehicle number

Fetching the vehicle log using vehicle Id

Extracting out the FSM application number from vehicle log:

Fetching the FSM application details using FSM application number

The code snippets to render the data:

Mobile view

Desktop view

Vehicle Log screen:

After selecting the application, FSTPO can dispose the vehicle log in the vehicle log screen.

Additional details and attachment fields are introduced in new updates in FSM v1.2.1 .

The screen for the existing vehicle log:

The screen for new vehicle log if no application is found for vehicle is shown below. FSTPO can dispose the new vehicle log by providing all the details below.

Technical Implementation Details:

The path for the code:

frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/pages/employee/FstpOperatorDetails.js

The code snippet for additional details and attachments field:

For new vehicle log:

The code snippets to render input field for new vehicle log:

Treatment Quality Monitoring (TQM)

Overview

The waste management process comprises five key stages: Generation, containment, transport, treatment, and reuse. To ensure effective waste management, each of these stages must receive adequate attention. Inadequate waste treatment and the subsequent discharge into the environment directly harm both the environment and water quality. Often, effluents find their way into surface water sources. The poor quality of wastewater effluents contributes to the deterioration of the receiving surface water bodies and poses risks to users' health.

Quality and reusability are intimately linked: Well-treated waste output can be repurposed, whether as recycled water or compost. Consumer acceptance of this practice largely hinges on the quality of the output and the benefits it offers.

At present, there is minimal visibility into the handling and treatment of waste at treatment plants. With this in mind, we are introducing Treatment Quality Monitoring (TQM) as an extension to DIGIT Sanitation.

Why do we need Treatment Quality Monitoring?

The vision of DIGIT Sanitation is “Zero untreated waste in 1,000 ULBs in 1000 days”. Read more about why this matters .

To achieve “zero untreated waste” it is pertinent to ensure that waste is disposed of in the right method, right place, and right time. Subsequently, all waste disposed of should be processed and treated effectively. We can ensure that the waste is being effectively treated by focusing on the following:

  1. Design the best process for waste treatment.

  2. Ensure adherence to the designed process.

  3. Monitor and track the effectiveness of the process.

We now explore each issue separately:

  1. How do you know that the process you have designed is correct/needs modifications?

  • The success of a treatment will reflect directly in the results of the process, in terms of quality of output and process efficiency.

  • Testing at various stages of the process and comparing the parameters from the test results against a benchmark will be an indicator of an effective process.

  • Based on variations between {what the values should be in an ideal condition} and {the measured values} of the parameters, the changes required in each specific part of the process can be identified.

  1. How do you ensure the process is being followed?

  • There are no digital touchpoints in the process, so there is no unbiased/people-independent method to track adherence.

  • An indirect method to measure adherence is through the “measure of outcomes” (parameter testing) and review of the process based on the results thereby leading to the detection of deviations from the SOP.

  1. How do you assess if the process is effective?

  • Test the treated output at various stages and check if all test parameters are within acceptable range as per standards

Based on the above, monitoring parameters is a key step in ensuring waste is treated and disposed of properly.

Key Problems:

  • Treatment quality monitoring (TQM) is not being carried out in most urban local bodies (ULBs).

  • Test data is not recorded/analysed for process improvements.

  • No digital touchpoints in the TQM lifecycle: Lack of such touchpoints create data silos that hinder the relevant information from being accessible to the right person at the right time.

  • No accountability system in place to assign responsibility to stakeholders to make necessary changes.

  • TQM is dependent on having access to a lab and also the logistics of sample collection, transportation, interpersonal communications, and waiting times (for tests/test results).

To address these issues, we want to introduce a product for Treatment Quality Monitoring. The objective is to improve the quality of treated waste.

Approach

Our hypothesis of how treatment quality can be improved is as follows:

  • Configure Treatment Processes and Testing Requirements: Configuration of plants and treatment processes provides a consolidated view to the state/TSUs/stakeholders of the treatment processes operational at plants. Additionally, this allows for the definition of treatment requirements, frequencies, and benchmarks at the state level for various processes and their adoption by plants.

  • Ensure Regular Testing: Implementing regular and high-frequency testing enables the early detection of deviations from the established benchmarks.

  • Quick Issue Resolution: Identifying deviations and diagnosing them through an analysis of both current and historical data facilitates rapid issue resolution.

  • Deepen Enquiry: Is a particular plant consistently performing badly? Is a particular treatment process regularly leading to poor-quality output? Which step in the process flow is the deviation starting from? Do quality test results fluctuate often? Looking at trends in data can help deepen enquiry and identify problem areas.

Goals of Treatment Quality Monitoring

Value Bundles

tenant/tenants.json
tenant/citymodule.json
FSM/FSTPPlantInfo.json
Vehicle/VehicleMakeModel.json
ULBNAME/FSM/Slum.json
ULBNAME/FSM/UrcConfig.json
ULBNAME/FSM/ZeroPricing.json
ULBNAME/egov-location/boundary-data.json

Workflow Configuration Changes

PQM Business Service Request

Instructions for Production execution:

  1. Replace the tenant id for production environment

  2. Replace the request info object with production user info details

  3. For PQM new Business service PQM has been created

    Create businessService (workflow configuration) using the /businessservice/_create. Following is the product configuration for PQM

```postman_json
{
    "RequestInfo": {
        "apiId": "Rainmaker",
        "action": "",
        "did": 1,
        "key": "",
        "msgId": "20170310130900|en_IN",
        "requesterId": "",
        "ts": 1513579888683,
        "ver": ".01",
        "authToken": "71fc8bf6-4c3f-4bb3-af74-bc2fabf6252e",
        "userInfo": {{adduserInfo}}
    },
    "BusinessServices": [
        {
            "tenantId": "pg",
            "businessService": "PQM",
            "business": "pqm",
            "businessServiceSla": 432000000,
            "states": [
                {
                    "sla": null,
                    "state": null,
                    "applicationStatus": null,
                    "docUploadRequired": true,
                    "isStartState": true,
                    "isTerminateState": false,
                    "isStateUpdatable": true,
                    "actions": [
                        {
                            "action": "SCHEDULE",
                            "nextState": "SCHEDULED",
                            "roles": [
                                "PQM_ADMIN",
                                "PQM_TP_OPERATOR",
                                "PQM_CRONJOB_SCHEDULER"
                            ]
                        }
                    ]
                },
                {
                    "sla": null,
                    "state": "SCHEDULED",
                    "applicationStatus": "SCHEDULED",
                    "docUploadRequired": false,
                    "isStartState": false,
                    "isTerminateState": false,
                    "isStateUpdatable": true,
                    "actions": [
                        {
                            "action": "SUBMIT_SAMPLE",
                            "nextState": "PENDINGRESULTS",
                            "roles": [
                              "PQM_ADMIN",
                                "PQM_TP_OPERATOR"
                            ]
                        }
                    ]
                },
                {
                    "sla": null,
                    "state": "PENDINGRESULTS",
                    "applicationStatus": "PENDINGRESULTS",
                    "docUploadRequired": false,
                    "isStartState": false,
                    "isTerminateState": false,
                    "isStateUpdatable": false,
                    "actions": [
                        {
                            "action": "UPDATE_RESULT",
                            "nextState": "SUBMITTED",
                            "roles": [
                                "PQM_ADMIN",
                                "PQM_TP_OPERATOR"
                            ]
                        },
                        {
                            "action": "SAVE_AS_DRAFT",
                            "nextState": "DRAFTED",
                            "roles": [
                                "PQM_ADMIN",
                                "PQM_TP_OPERATOR"
                            ],
                            "active": true
                        }
                    ]
                },
                {
                    "sla": null,
                    "state": "DRAFTED",
                    "applicationStatus": "DRAFTED",
                    "docUploadRequired": false,
                    "isStartState": false,
                    "isTerminateState": false,
                    "isStateUpdatable": true,
                    "actions": [
                        {
                            "action": "UPDATE_RESULT",
                            "nextState": "SUBMITTED",
                            "roles": [
                                "PQM_ADMIN",
                                "PQM_TP_OPERATOR"
                            ],
                            "active": true
                        },
                        {
                            "action": "SAVE_AS_DRAFT",
                            "nextState": "DRAFTED",
                            "roles": [
                                "PQM_ADMIN",
                                "PQM_TP_OPERATOR"
                            ],
                            "active": true
                        }
                    ]
                },
                {
                    "sla": null,
                    "state": "SUBMITTED",
                    "applicationStatus": "SUBMITTED",
                    "docUploadRequired": false,
                    "isStartState": false,
                    "isTerminateState": true,
                    "isStateUpdatable": false,
                    "actions": null
                }
            ]
        }
    ]
}
```
{
    "testSearchCriteria": {
        "processCodes": [
            "WATER_FILTERING",
            "FECAL_SLUDGE_MANAGEMENT"
        ],
        "materialCodes": [
            "ARSENIC",
            "NA",
            "SCREENED_SLUDGE",
            "FECAL_SLUDGE",
            "EFFLUENTS",
            "BIOSOLID",
            "CHLORINE",
            "SALT",
            "IRON",
            "POTABLE_WATER"
        ],
        "testType": [
            "IOT_SCHEDULED",
            "LAB_ADHOC",
            "LAB_SCHEDULED"
        ],
        "fromDate": 1698777000000,
        "toDate": 1701368999000,
        "wfStatus": [
            "SUBMITTED"
        ],
        "plantCodes": [
            "ANGUL_FSTP",
            "PURI_FSTP"
        ]
    },
    "pagination": {
        "limit": 100
    },
    "RequestInfo": {
        "apiId": "Rainmaker",
        "authToken": "e5d10a5d-b262-47fc-a9ee-fc24c3a0de19",
        "userInfo": {
            "id": 721,
            "uuid": "41488b21-c742-4290-af8e-a2a1dc3749ac",
            "userName": "TQM_DEV_PLANTOPERATOR",
            "name": "Plant operator",
            "mobileNumber": "7281638699",
            "emailId": null,
            "locale": null,
            "type": "EMPLOYEE",
            "roles": [
                {
                    "name": "PQM TP OPERATOR",
                    "code": "PQM_TP_OPERATOR",
                    "tenantId": "pg.citya"
                }
            ],
            "active": true,
            "tenantId": "pg.citya",
            "permanentCity": null
        },
        "msgId": "1701076145507|en_IN",
        "plainAccessRequest": {}
    }
}
curl 'https://unified-dev.digit.org/pqm-service/v1/_search' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'cookie: _ga_V2CPZCVTXQ=GS1.1.1695293925.1.1.1695293950.0.0.0; __cuid=59fd9aac25b044f6af006bd4b159cbbf; amp_fef1e8=f4fc07f6-3fb0-4c67-8114-a1beb906e625R...1hf75985a.1hf76uet8.i.8.q; _ga_P1TZCPKF6S=GS1.1.1699974064.1.1.1699975479.60.0.0; _ga=GA1.2.1291438273.1695293925; _ga_0JZG96DZSM=GS1.1.1699977339.2.0.1699977339.60.0.0' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/tqm/search-test-results' \
  -H 'sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"' \
  -H 'sec-ch-ua-mobile: ?1' \
  -H 'sec-ch-ua-platform: "Android"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36' \
  --data-raw '{"testSearchCriteria":{"processCodes":["WATER_FILTERING","FECAL_SLUDGE_MANAGEMENT"],"materialCodes":["ARSENIC","NA","SCREENED_SLUDGE","FECAL_SLUDGE","EFFLUENTS","BIOSOLID","CHLORINE","SALT","IRON","POTABLE_WATER"],"testType":["IOT_SCHEDULED","LAB_ADHOC","LAB_SCHEDULED"],"fromDate":1698777000000,"toDate":1701368999000,"wfStatus":["SUBMITTED"],"plantCodes":["ANGUL_FSTP","PURI_FSTP"]},"pagination":{"limit":100},"RequestInfo":{"apiId":"Rainmaker","authToken":"e5d10a5d-b262-47fc-a9ee-fc24c3a0de19","userInfo":{"id":721,"uuid":"41488b21-c742-4290-af8e-a2a1dc3749ac","userName":"TQM_DEV_PLANTOPERATOR","name":"Plant operator","mobileNumber":"7281638699","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"PQM TP OPERATOR","code":"PQM_TP_OPERATOR","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1701076145507|en_IN","plainAccessRequest":{}}}' \
  --compressed
PQM_TP_OPERATOR
View Past Tests
FSM_EDITOR_EMP
curl 'https://unified-dev.digit.org/fsm/v1/_search?tenantId=pg.citya&applicationNos=1013-FSM-2023-12-13-000381&_=1702476865870' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/fsm/application-details/1013-FSM-2023-12-13-000381' \
  -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  --data-raw '{"RequestInfo":{"apiId":"Rainmaker","authToken":"f8eee39f-1194-4d39-85de-12dc9c572a7c","msgId":"1702476865870|en_IN","plainAccessRequest":{}}}' \
  --compressed
curl 'https://unified-dev.digit.org/fsm/v1/_update?tenantId=pg.citya&_=1702476876985' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/fsm/application-details/1013-FSM-2023-12-13-000381' \
  -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  --data-raw '{"fsm":{"citizen":{"id":960,"uuid":"d75d542f-a3bb-42c3-884a-d7fb5e6f14b3","userName":"d90dffe9-05b2-42cd-b87f-9756b0782dec","name":"Janu","password":null,"mobileNumber":"9035169720","tenantId":"pg","salutation":null,"emailId":null,"altContactNumber":null,"pan":null,"aadhaarNumber":null,"permanentAddress":null,"permanentCity":null,"permanentPinCode":null,"correspondenceCity":null,"correspondencePinCode":null,"active":true,"dob":null,"pwdExpiryDate":1710251842000,"locale":null,"type":"CITIZEN","signature":null,"accountLocked":false,"roles":[{"id":null,"name":"Citizen","code":"CITIZEN","tenantId":"pg"}],"bloodGroup":null,"identificationMark":null,"photo":null,"createdBy":"925","createdDate":1702475842000,"lastModifiedBy":"925","lastModifiedDate":1702475842000,"otpReference":null,"gender":null},"id":"f25e914d-e14e-4a9e-97d1-dc2cc51611f3","tenantId":"pg.citya","applicationNo":"1013-FSM-2023-12-13-000381","description":null,"accountId":"d75d542f-a3bb-42c3-884a-d7fb5e6f14b3","additionalDetails":{"tripAmount":750},"applicationStatus":"DSO_INPROGRESS","source":"COUNTER","sanitationtype":null,"propertyUsage":"RESIDENTIAL.ROW_HOUSES","vehicleType":null,"noOfTrips":1,"vehicleCapacity":"1000","status":null,"vehicleId":null,"driverId":"3d916d24-5756-4d01-b547-b4f2feac4366","vehicle":null,"dsoId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","dso":null,"possibleServiceDate":1702425600000,"pitDetail":{"type":null,"id":"ca0cb638-eaec-4b7a-8f5d-5924c4a4bc4a","tenantId":"pg.citya","height":0,"length":0,"width":0,"diameter":0,"distanceFromRoad":0,"auditDetails":{"createdBy":"7e1c6207-49e9-41b4-a965-dea0cdeb677c","lastModifiedBy":"12c0c924-ec4f-41e8-aa41-92c00226ce85","createdTime":1702475842827,"lastModifiedTime":1702475982894},"additionalDetails":null},"address":{"tenantId":"pg.citya","doorNo":null,"plotNo":null,"id":"f5c6c3d9-8634-46e2-b662-22efc130ea03","landmark":null,"city":"CityA","district":null,"region":null,"state":null,"country":null,"pincode":"143001","additionalDetails":null,"auditDetails":{"createdBy":"7e1c6207-49e9-41b4-a965-dea0cdeb677c","lastModifiedBy":"12c0c924-ec4f-41e8-aa41-92c00226ce85","createdTime":1702475842827,"lastModifiedTime":1702475982894},"buildingName":null,"street":null,"slumName":null,"locality":{"code":"SUN03","name":"Bharath Colony","label":"Locality","latitude":null,"longitude":null,"children":[],"materializedPath":null},"geoLocation":{"id":"66d6755a-7ca3-41ab-8a76-89ebbb1166b4","latitude":20.2099797,"longitude":85.6973022,"additionalDetails":null}},"auditDetails":{"createdBy":"7e1c6207-49e9-41b4-a965-dea0cdeb677c","lastModifiedBy":"12c0c924-ec4f-41e8-aa41-92c00226ce85","createdTime":1702475842827,"lastModifiedTime":1702475982894},"wasteCollected":null,"completedOn":0,"advanceAmount":0,"applicationType":"Adhoc Service","oldApplicationNo":null,"paymentPreference":null,"processInstance":null},"workflow":{"action":"REASSING","comments":"VEHICLE_REPAIR"},"RequestInfo":{"apiId":"Rainmaker","authToken":"f8eee39f-1194-4d39-85de-12dc9c572a7c","userInfo":{"id":926,"uuid":"12c0c924-ec4f-41e8-aa41-92c00226ce85","userName":"EDITOR","name":"Plant operator","mobileNumber":"8282828121","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"FSM Employee Application Editor","code":"FSM_EDITOR_EMP","tenantId":"pg.citya"},{"name":"FSM Employee Application Viewer","code":"FSM_VIEW_EMP","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1702476876985|en_IN","plainAccessRequest":{}}}' \
  --compressed
curl 'https://unified-dev.digit.org/vendor/v1/_search?tenantId=pg.citya&ids=e427ddf2-7c49-47f1-ba0f-4418bb10f0b7' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/fsm/application-details/1013-FSM-2023-12-13-000381' \
  -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  --data-raw '{"RequestInfo":{"apiId":"Rainmaker","authToken":"f8eee39f-1194-4d39-85de-12dc9c572a7c","userInfo":{"id":926,"uuid":"12c0c924-ec4f-41e8-aa41-92c00226ce85","userName":"EDITOR","name":"Plant operator","mobileNumber":"8282828121","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"FSM Employee Application Editor","code":"FSM_EDITOR_EMP","tenantId":"pg.citya"},{"name":"FSM Employee Application Viewer","code":"FSM_VIEW_EMP","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1702476878085|en_IN","plainAccessRequest":{}}}' \
  --compressed
FSM_EDITOR_EMP
FSM Application Details

Goal

How will it be measured via the product?

How will we know TQM is successful?

To ensure treated waste is as per quality standards.

The percentage of plants with output quality as per benchmarks.

Increase in the percentage of plants with output quality as per benchmarks over time

To ensure treated waste is tested regularly for quick identification of issues.

The percentage compliance against the testing schedule.

Increase in the percentage compliance against the testing schedule over time.

here

Service Build Update

Category

Services

GIT TAGS

Docker artifact ID

Remarks

FSM

FSM

fsm:v1.4.0-4ca02ac299-75

FSM calculator

fsm-calculator:v1.2.0-01dd6c9b3a-14

Vehicle

vehicle:v1.3.0-5682061fd3-18

Vendor

vendor-db:v1.3.0-ece6fa00d1-35

PQM

pqm-service:v1.0.0-7c253cb947-169

PQM Anomaly

pqm-anomaly-finder-db:v1.0.0-4eb854b58b-52

PQM Scheduler

pqm-scheduler:vNA-7201d5466b-13

Digit-UI FSM

DIGIT UI

sanitation-ui:v1.5.0-99fe703c60-449

DIGIT dependency builds

The FSM release is bundled with the DIGIT 2.8 release. Hence, the release builds for DIGIT 2.8 release can be accessed .

Configs

MDMS

Localisation

Devops

FSM DSO UI

Complete Request

Fetching data from the MDMS

Customising Fields In A Form

The config can be found at CompleteApplication.js

File Path: frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/pages/employee/ApplicationDetails/config/CompleteApplication.js

{
          label: "ES_NEW_APPLICATION_PROPERTY_TYPE",
          isMandatory: true,
          type: "component",
          route: "property-type",
          key: "propertyType",
          component: "SelectPropertyType",
          texts: {
            headerCaption: "",
            header: "CS_FILE_APPLICATION_PROPERTY_LABEL",
            cardText: "CS_FILE_APPLICATION_PROPERTY_TEXT",
            submitBarLabel: "CS_COMMON_NEXT",
          },
          nextStep: "property-subtype",
        },
        {
          label: "ES_NEW_APPLICATION_PROPERTY_SUB-TYPE",
          isMandatory: true,
          type: "component",
          route: "property-subtype",
          key: "subtype",
          component: "SelectPropertySubtype",
          texts: {
            headerCaption: "",
            header: "CS_FILE_APPLICATION_PROPERTY_SUBTYPE_LABEL",
            cardText: "CS_FILE_APPLICATION_PROPERTY_SUBTYPE_TEXT",
            submitBarLabel: "CS_COMMON_NEXT",
          },
          nextStep: "map",
        },
        {
          label: "ES_NEW_APPLICATION_PIT_TYPE",
          isMandatory: false,
          type: "component",
          route: "pit-type",
          key: "pitType",
          component: "SelectPitType",
          texts: {
            header: "CS_FILE_PROPERTY_PIT_TYPE",
            cardText: "CS_FILE_PROPERTY_PIT_TYPE_TEXT",
            submitBarLabel: "CS_COMMON_NEXT",
            skipText: "CORE_COMMON_SKIP_CONTINUE",
          },
          nextStep: "tank-size",
        },
        {
          route: "tank-size",
          component: "SelectTankSize",
          isMandatory: false,
          texts: {
            headerCaption: "",
            header: "CS_FILE_APPLICATION_PIT_SEPTIC_TANK_SIZE_TITLE",
            cardText: "CS_FILE_APPLICATION_PIT_SEPTIC_TANK_SIZE_TEXT",
            submitBarLabel: "CS_COMMON_NEXT",
          },
          type: "component",
          key: "pitDetail",
          nextStep: null,
          label: "ES_NEW_APPLICATION_PIT_DIMENSION",
        },

Upload Pit Photo Button

UploadPitPhoto.js molecule is available within the molecules folder in react-components.

File Path: frontend/micro-ui/web/micro-ui-internals/packages/react-components/src/molecules/UploadPitPhoto.js

Saving Image fileId in FSM service

const uploadImage = useCallback(async () => {
        if (uploadedImagesIds === null || uploadedImagesIds.length < 3) {
            const response = await Digit.UploadServices.Filestorage("FSM", image, props.tenantId);
            setUploadedImagesIds(addUploadedImageIds(response));
        } else {
            console.log("disabled")
        }
    }, [addUploadedImageIds, image]);

Filter Component On DSO Inbox Screen

The link for the MDMS changes made is given below.

egov-mdms-data/RoleStatusMapping.json at DEV · egovernments/egov-mdms-data

RoleStatusMappping.json

  {
            "userRole": "FSM_DSO",
            "statuses": [
                "DSO_INPROGRESS",
                "PENDING_DSO_APPROVAL",
                "COMPLETED",
            ],
            "zeroCheck": true,
            "fixed": false
        },

Schedule Action For Post Pay In DSO

Schedule Action is added for post-pay applications where DSOs can schedule the trip by entering the number of trips.

Code snippet for schedule window:

 case "SCHEDULE":
      case "ES_FSM_SCHEDULE":
        setFormValve(true);
        return setConfig(
          configScheduleDso({
            t,
            rejectMenu: Reason?.DeclineReason,
            setReason: setDeclineReason,
            reason: declineReason,
            applicationCreatedTime: applicationData?.auditDetails?.createdTime,
            vehicle,
            vehicleCapacity: applicationData?.vehicleCapacity,
            action,
            noOfTrips: applicationData?.noOfTrips
          })
        );

ScheduleDso.js is the file responsible for the schedule window pop up.

File path: frontend/micro-ui/web/micro-ui-internals/packages/modules/fsm/src/pages/employee/ApplicationDetails/config/ScheduleDso.js

FSM 1.4 - Technical Release Summary

Impacted Service:

Process Quality Management (PQM):

Introduced three new services: PQM Service, PQM Anomaly Service, and PQM Scheduler Service.

PQM Service

  • Create, update, and search for process quality monitoring tests.

  • Record test results gradually for a test and submit from evaluation when all the test results available

  • Evaluation of test values against benchmarks configured in MDMS, for producing a test result (FAIL/PASS) status.

  • Test results undergo anomaly analysis for comprehensive insights.

  • Plant performance related charts.

PQM Anomaly Finder Service

  • Actively monitors anomalies in process quality.

  • Added notification for relevant user groups promptly for proactive anomaly management.

PQM Scheduler (CronJob Scheduler)

  • Automation of test scheduling based on environment configuration and MDMS test standard configurations.

  • Triggers schedule APIs from PQM-Scheduler to generate tests at defined frequency.

  • Efficiently runs tests at specified intervals, ensuring a configurable approach.

Sanitation Worker:

A new worker registry concept has been introduced. Creating a worker, updating details, searching and tagging a worker for different operations on sanitation programmes. Sanitation workers' creation, updation, and search operations are performed using the individual registry.

  • Added functionality for creating, updating, and searching for sanitation workers.

  • Deprecated the drivers tab and added the driver concept from the FSM registry.

  • Introduced the sanitation workers tab to the FSM registry.

Vendor:

  • Added functionality for assigning. a sanitation worker to a vendor.

  • Migration of existing drivers to sanitation workers.

  • Deprecation of delinking of a driver with vendors introduced in v1.3.

FSM:

  • Tag sanitation workers (drivers and helpers) to an FSM application for capturing the workers' activities.

  • The inbox for FSM has been upgraded from V1 to V2.

No core services have been modified. Workflow details, flow diagram, and API details are given in confluence.

API List (Modified and New):

FSM Registry

From the FSM card in the home screen, there is a link to the "FSM Registry". FSM admins have access to manage the FSM Registry.

FSM Registry

  • The FSM Registry is multi-tabbed search screen.

  • Using the FSM Registry, FSM admins can manage vehicles, vendors, and sanitation workers in the system.

  • There are three tabs available, that is, Vendor, Vehicle, Sanitation Worker.

  • Vendor and vehicle were already there in FSM 1.3. The Sanitation Worker tab have now been added.

Sanitation Worker Tab

  • This tab shows a list of sanitation workers in the system.

  • Admins can search for sanitation workers with the sanitation worker ID, name, and mobile number.

  • Clicking on a particular ID takes the user to the .

  • Admins can disable/enable sanitation workers.

  • There is a vendor dropdown available to each sanitation worker which shows a list of vendors that they can be tagged to. An admin can tag a sanitation worker to a vendor using that dropdown.

  • Vendors are listed based on agency type. Currently, there are two types of agency: ULB and private vendor.

  • If a sanitation worker is employed by the ULB, then the dropdown will show vendors whose agency type is ULB, and likewise for private vendors.

  • The employer selection of a sanitation worker can be done while .

  • We are using the individual registry to create, update, and disable sanitation workers.

  • If an admin disables a sanitation worker already tagged to a vendor, then that vendor tagging is also disabled. This implies that the if an admin enables that user, we need to tag the vendor again.

  • There is an 'Add' option at the top right of this screen using which admins can create vehicle, vendor, and sanitation worker.

Note: There is a SANITATION_WORKER role in the system. All sanitation workers created through the system will have this role.

API Details

Individual Search

  • We will hit hit the individual search API to get a list of sanitation workers using the SANITATION_WORKER system role.

  • The curl is given below:

Vendor Search

  • We will hit the "vendor/v1/_search" endpoint to get a list of vendors.

  • The curl is given below:

Vendor Update

  • We will hit the "/vendor/v1/_update" to update tagging of sanitation workers to vendors.

  • The curl is given below:

Individual Update

  • We will utilise the individual update API for disabling/enabling sanitation workers.

  • The curl is given below:

Role-Action Mapping

  • Role-action mapping is done for the above mentioned API endpoints for FSM admin users with the following role code:

Create Sanitation Worker

From the screen, an admin can create the sanitation worker page using the add option.

Creating Sanitation Workers

  • Admins can fill the "Add Sanitation Worker" form to create sanitation workers in the system.

  • Admins can fill details such as Mobile Number, Name, Date of Birth, Photograph, Address, Skills, etc.

  • The mobile number has to be unique, otherwise a validation error will be shown and the user will not be able to submit the form.

  • There is a role details section at the bottom which is non-mandatory.

  • Using this role details section, an admin can specify the functional roles that this worker has, such as driver, helper, etc.

  • By default, all workers will have a generic SANITATION_WORKER role.

  • The functional roles have been mapped to the system roles using .

  • Currently, driver and helper functional roles are present in the system. Both are created as citizens.

  • Sanitation workers can have multiple functional roles, that is, they can be a driver as well as a helper.

  • Employer has two options: ULB and private vendor. This specifies the current employer of this worker. This can be changed in .

  • Sanitation workers can also be tagged to vendors on this page based on whether the employer type is a ULB or a private vendor. This implies that the vendor select dropdown is populated based on the employer type.

  • Vendors can be a ULB or a private vendor. This is specified in .

  • After submitting the necessary details, an admin can click on submit and a response page is shown.

API Details

Individual Create

  • We will hit the "/individual/v1/_create" endpoint to create sanitation workers

  • The curl is given below:

Vendor Update

  • If a vendor is selected while creating a sanitation worker, we are calling this endpoint "/vendor/v1/_update" to tag this worker to a vendor after the individual create has responded with success.

  • The curl is given below:

Role-Action Mapping

  • Role-action mapping is done for the above two API endpoints for the following role:

Requirements to enable FSM Module in a new evironment

To enable FSM module in any new environment, we would need to perform certain steps. Considering an AWS account is already setup, following are the steps to be followed:

Configuration Requirements

  1. Update the with the following requirements:

    • Indexer config: We will need following indexer files for setting up any module

    • Persister config Persister files required:

    • Searcher config

    • Pdf config Data config: Format config:

    • Reports Also mention the path of the above report file .

    • Dashboard configs => =>

  2. Add all configs required

    • Add all Actions/endpoints required for fsm as mentioned in this . Add all actions with respect to core and business-services as well, like those of - egov-user, egov-mdms-service, apportion-service, collection-service, billing-service, egov-location, egov-common-masters, egov-idgen, egf-master, egov-user-event, otp services, access, egov-workflow-v2, data-uploader, egov-hrms, filestore-service, pdf-service, egov-pdf, report, localization-service, egov-persister, egov-indexer, egov-searcher, eg-pg-service, dasboard-analytics, dashboard-ingest, digit-ui, fsm, fsm-calculator, vendor, vehicle.

    • Add Role-Action mapping in file

    • Add required Roles for the respective FSM module in

    • Add , , , , , , , , , , , folders with their respective files.

    • Also add ULB/city specific data in their respective folders, for instance, create a folder and add the respective data files like Slum.json, UrcConfig.json, ZeroPricing.json required.

Note: The data sepecific to any ULB needs to be collected from the ULB officials and need to be present in mdms level. Refer the ULB specific data documentation and updation/upsertion

DevOps Requirements

  1. Add all the helm charts with respect to the business-services, core-services and municipal-services. Refer .

  2. Add DevOps level changes in the evironment file. Refer . Add all the paths for files in the configs in the environment file. For instance, add the the path of indexer, persister and searcher files, etc. Make sure to add required properties at each service level as defined in the above mentioned environment file.

Backend/Frontend Requirements

  1. Deploy all required core-services builds to support this municipal-services(FSM and its dependent services). The core-services include: egov-accesscontrol, egov-common-masters, egov-data-uploader, egov-document-uploader, egov-enc-service, egov-filestore, egov-idgen,egov-indexer, egov-localization, egov-location, egov-mdms-service, egov-notification-mail, egov-notification-sms, egov-otp, egov-persister, egov-pg-service, egov-searcher, egov-url-shortening, egov-user, egov-workflow-v2, pdf-service, report, user-otp, zuul

  2. Deploy all required business-services builds to support this municipal-service(FSM and its dependent services). The business-services include: billing-service, collection-services, dashboard-analytics, dashboard-ingest, egf-instrument, egf-master, egov-apportion-service, egov-hrms.

  3. Deploy this municipal-service “fsm” as well as dependent municipal-services: fsm-calculator, vendor, vehicle, inbox, egov-user-event.

  4. Upsert the required localizations. Refer for detailed steps.

  5. Upsert the workflows as mentioned in the .

  6. Upsert the SMS templates as localizations in your environment as well as update them in the SMS portal being used by the state. For detailed infomation,

Service

API's

Description

New/Update

PQM Service

/pqm-service/v1/_create

Adhoc create test

New

/pqm-service/v1/_update

Update test with results, save test with partial results as drafts

New

/pqm-service/v1/_search

Search for PQM tests

New

/pqm-service/v1/_scheduler

Schedule test based on the test standards in MDMS

New

/pqm-service/v1/_plainsearch

API for redexing the data

New

pqm-service/plant/user/v1/_create

Add plant and user mapping

New

pqm-service/plant/user/v1/_update

Update plant and user mapping

New

pqm-service/plant/user/v1/_search

Search for plant user mapping

New

PQM Anomaly FInder Service

/pqm-anomaly-finder/v1/_search

Search for anomalies

New

/pqm-anomaly-finder/v1/_plainsearch

Reindex the anomaly data

New

FSM

/fsm/v1/_update

Added list of workers object for tagging workers to the FSM application

Updated

Vendor

/vendor/v1/_update

Added list of workers object to assign sanitation worker to vendor

Updated

v1.4
v1.4
v1.4
v1.4
v1.4
v1.4
v1.4
v1.4
v1.4
v1.4
here
v1.4
v1.4
v1.4
v1.4
v1.4
v1.4
v1.4
v1.4
Configs repo
FSM indexer
Vehicle indexer
Vendor indexer
Demand/billing indexer
Payment indexer
Apportion persister
Billing-service persister
Workflow persister
HRMS persister
Filestore persister
PDF gen persister
Pg-service persister
Upload persister
egov-user-event-persister
FSM persister
FSM Calculator persister
Vehicle persister
Vendor persister
FSM searcher
fsm-receipt
fsm-receipt
fsm-report
here
ChartApiConfig.json
MasterDashboardConfig.json
mdms
file
roleactions.json
roles.json
BillingService
DIGIT-UI
DataSecurity
FSM
Vehicle
Vendor
Workflow
common-masters
dss-dashboard
egf-master
egov-hrms
tenant
angul
here.
here
here
this document
document
read here
.

Loading Vendor,Vehicle and Driver Data

Ways to load Vendor details :

  • From Api

  • By FSM Registry

Loading from API :

Steps:

  1. Import this collection - https://www.getpostman.com/collections/59691b6d0a7346a7f29b

  2. Change the request url specific to environment.

For Create DSO(URL) : https://sujog-dev.odisha.gov.in/vendor/v1/_create

For Search DSO(URL) : https://sujog-dev.odisha.gov.in/vendor/v1/_search?tenantId=od.anandapur

For Update DSO(URL) : https://sujog-dev.odisha.gov.in/vendor/v1/_update?tenantId=od.anandapur

  1. Login from FSM_ADMINDEV credentials(for sujog-dev) which is having FSM Admin role for all the ulb’s.

  2. Copy the auth token. Paste the auth token in the req. Body “authToken” field.

  3. Request Info (eg. anandapur ulb) for Create DSO :-

    {
        "RequestInfo": {
            "apiId": "Rainmaker",
            "authToken": "453cf29c-58de-4e47-9821-91f39e2dde3e",
            "userInfo": {
                "id": 3186071,
                "uuid": "2f3851cd-864e-42d7-869c-d5a05abb8f39",
                "userName": "FSM_ADMINDEV",
                "name": "Taresh",
                "mobileNumber": "7721827042",
                "emailId": null,
                "locale": null,
                "type": "EMPLOYEE",
                "roles": [
                    {
                        "name": "FSM Administrator",
                        "code": "FSM_ADMIN",
                        "tenantId": "od.anandapur"
                    }
                ],
                "active": true,
                "tenantId": "od.anandapur",
                "permanentCity": null
            },
            "msgId": "1660805524793|en_IN"
        },
        "vendor": {
            "tenantId": "od.anandapur",
            "name": "NIPS",
            "agencyType": "ULB",
            "paymentPreference": "post-service",
            "address": {
                "tenantId": "od.anandapur",
                "doorNo": "my door",
                "plotNo": "my plot",
                "landmark": "my landmark",
                "city": "anandapur",
                "district": "anandapur",
                "region": "anandapur",
                "state": "odisha",
                "country": "in",
                "pincode": "143001",
                "additionDetails": null,
                "buildingName": "my building",
                "street": "my streat",
                "locality": {
                    "id": 2,
                    "name": "Padampur",
                    "localname": "Padampur",
                    "longitude": null,
                    "latitude": null,
                    "label": "Locality",
                    "code": "VIL1",
                    "children": []
                },
                "geoLocation": {
                    "latitude": 0,
                    "longitude": 0,
                    "additionalDetails": {}
                }
            },
            "owner": {
                "tenantId": "od.anandapur",
                "name": "NIPS",
                "fatherOrHusbandName": "NA",
                "relationship": "FATHER",
                "gender": "MALE",
                "dob": 550261800000,
                "emailId": "[email protected]",
                "correspondenceAddress": "KPHB",
                "mobileNumber": 8908257220
            },
            "vehicles": [
                {
                    "tenantId": "od.anandapur",
                    "registrationNumber": "OD09J7873",
                    "model": "MAHINDRA",
                    "type": "MAHINDRA.TRUCK1",
                    "tankCapacity": "1000",
                    "suctionType": "SEWER_SUCTION_MACHINE",
                    "pollutionCertiValidTill": 1611584416772,
                    "InsuranceCertValidTill": 1611584416772,
                    "fitnessValidTill": 1611584416772,
                    "roadTaxPaidTill": 1611584416772,
                    "gpsEnabled": true,
                    "source": "Municipal records",
                    "status": "ACTIVE",
                    "vendorVehicleStatus": "ACTIVE",
                    "owner": {
                        "tenantId": "od.anandapur",
                        "name": "NIPS",
                        "fatherOrHusbandName": "NA",
                        "relationship": "FATHER",
                        "gender": "MALE",
                        "dob": 550261800000,
                        "emailId": "[email protected]",
                        "correspondenceAddress": "KPHB",
                        "mobileNumber": 8908257220
                    }
                }
            ],
            "drivers": [
                {
                    "tenantId": "od.anandapur",
                    "name": "DIPU MUKHI",
                    "licenseNumber": "OR0920040025878",
                    "status": "ACTIVE",
                    "owner": {
                        "tenantId": "od",
                        "name": "DIPU MUKHI",
                        "fatherOrHusbandName": "NA",
                        "relationship": "OTHER",
                        "gender": "MALE",
                        "dob": -19800000,
                        "emailId": "[email protected]",
                        "mobileNumber": "6371957727"
                    },
                    "vendorDriverStatus": "ACTIVE"
                }
            ],
            "source": "WhatsApp"
        }
    }

Note:

  1. Before pushing the vendor,first add Vehicle in MDMS. Take Vehicle Make, Model and Capacity from VehicleMakeModel in MDMS.

  2. No special characters allowed in Vendor name.

  3. Vehicle Registration number should be unique for every vehicle.

  4. Scenerios for Vendor and Vehicle users: - One Vendor can be linked with two or more vehicles. - One Vehicle is linked with One Vendor. - Two Vendors can’t have same mobile number because vendor is a user and user is stored uniquely in database. - Vendor owner, Vehicle owner and Driver owner can be same or different for One Vehicle.

  5. Hit the url it’ll push the data of vendor.

From FSM Registry :

Add details of Cesspool Operator,Vehicle and Driver from FSM Registry and link Vehicle with Cesspool operator and Driver with Cesspool Operator.

https://github.com/egovernments/egov-mdms-data/blob/5ef0673280bd08850f6cdd359c73f4f88b19de4d/data/pg/ACCESSCONTROL-ROLES/roles.json
Roles.json
https://github.com/egovernments/egov-mdms-data/blob/0897a28910f5a5aae182da54cddf963083f16aba/data/pg/tenant/citymodule.json
citymodule.json
https://github.com/egovernments/SANITATION/blob/7e548a49c137d1a0bc876fa517ce3fc94cc30548/frontend/micro-ui/web/src/App.jsgithub.com
App.js
https://github.com/egovernments/SANITATION/blob/7e548a49c137d1a0bc876fa517ce3fc94cc30548/frontend/micro-ui/web/micro-ui-internals/example/src/index.jsgithub.com
index.js
https://github.com/egovernments/egov-mdms-data/blob/b7c8f264c6005b030f694ada754f0d7a52a85640/data/pg/common-masters/howItWorks.json
curl 'https://unified-dev.digit.org/individual/v1/_search?tenantId=pg.citya&limit=10&offset=0&sortBy=createdTime&sortOrder=DESC&_=1702466726727' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/fsm/registry?selectedTabs=WORKER' \
  -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  --data-raw '{"Individual":{"roleCodes":["SANITATION_WORKER"],"tenantId":"pg.citya"},"RequestInfo":{"apiId":"Rainmaker","authToken":"06170439-7751-41d9-8043-04ede25e9499","userInfo":{"id":927,"uuid":"49341961-f413-4ae1-b7f8-92a8d9136f38","userName":"ADMIN","name":"Plant operator","mobileNumber":"8282828121","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"FSM Administrator","code":"FSM_ADMIN","tenantId":"pg.citya"},{"name":"FSM Employee Application Viewer","code":"FSM_VIEW_EMP","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1702466726727|en_IN","plainAccessRequest":{}}}' \
  --compressed
curl 'https://unified-dev.digit.org/vendor/v1/_search?tenantId=pg.citya&vehicleIds=&driverIds=&status=ACTIVE' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/fsm/registry?selectedTabs=WORKER' \
  -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  --data-raw '{"RequestInfo":{"apiId":"Rainmaker","authToken":"06170439-7751-41d9-8043-04ede25e9499","userInfo":{"id":927,"uuid":"49341961-f413-4ae1-b7f8-92a8d9136f38","userName":"ADMIN","name":"Plant operator","mobileNumber":"8282828121","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"FSM Administrator","code":"FSM_ADMIN","tenantId":"pg.citya"},{"name":"FSM Employee Application Viewer","code":"FSM_VIEW_EMP","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1702466726728|en_IN","plainAccessRequest":{}}}' \
  --compressed
curl 'https://unified-dev.digit.org/vendor/v1/_update?tenantId=pg.citya' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/fsm/registry?selectedTabs=WORKER' \
  -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  --data-raw '{"vendor":{"id":"da5dae4c-95d7-43b6-a92f-e504d6000ef8","tenantId":"pg.citya","name":"djhdjkdhsjkh","address":{"tenantId":"pg.citya","doorNo":"","plotNo":"","id":"7132305a-ecd1-4f5e-af02-9894103a3742","landmark":"","city":"CityA","district":"CityA","region":"CityA","state":null,"country":"in","pincode":"","additionalDetails":"{\"description\": \"\"}","buildingName":"","street":"","locality":{"code":"SUN01","name":"Ajit Nagar - Area1","label":"Locality","latitude":"31.63089","longitude":"74.871552","children":[],"materializedPath":null},"geoLocation":null,"auditDetails":null},"owner":{"id":933,"uuid":"5b610239-fa1c-4538-b771-90cf255304b3","userName":"7787678673","password":null,"salutation":null,"name":"djhdjkdhsjkh","gender":"MALE","mobileNumber":"7787678673","emailId":"[email protected]","altContactNumber":null,"pan":null,"aadhaarNumber":null,"permanentAddress":null,"permanentCity":null,"permanentPinCode":null,"correspondenceCity":null,"correspondencePinCode":null,"correspondenceAddress":null,"active":true,"dob":0,"pwdExpiryDate":1710525714000,"locale":null,"type":"CITIZEN","signature":null,"accountLocked":false,"roles":[{"id":null,"name":"FSM Desluding Operator","code":"FSM_DSO","tenantId":"pg"},{"id":null,"name":"Citizen","code":"CITIZEN","tenantId":"pg"}],"fatherOrHusbandName":"djhdjkdhsjkh","relationship":"OTHER","bloodGroup":null,"identificationMark":null,"photo":null,"createdBy":"927","createdDate":1702393314000,"lastModifiedBy":"927","lastModifiedDate":1702481871000,"otpReference":null,"tenantId":"pg"},"vehicles":null,"drivers":null,"workers":[{"id":"59090353-59f6-4242-86ea-bbd92ecbe674","tenantId":"pg.citya","vendorId":"da5dae4c-95d7-43b6-a92f-e504d6000ef8","individualId":"1e5ad42e-2734-48fc-b934-fc32ef5058a6","additionalDetails":null,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702373514847,"lastModifiedTime":1702462026145},"vendorWorkerStatus":"ACTIVE"},{"id":"1e19a4f0-3ead-4985-bb59-aa4b57df6af2","tenantId":"pg.citya","vendorId":"da5dae4c-95d7-43b6-a92f-e504d6000ef8","individualId":"c050f0e5-d0a0-4f2a-83c0-63876827d6e1","additionalDetails":null,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702373514847,"lastModifiedTime":1702462071879},"vendorWorkerStatus":"ACTIVE"},{"id":"acf5a060-08db-4173-9232-c923653a57e4","tenantId":"pg.citya","vendorId":"da5dae4c-95d7-43b6-a92f-e504d6000ef8","individualId":"02bc1a5b-fed9-4176-bada-974aeeb8e613","additionalDetails":null,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702373514847,"lastModifiedTime":1702457057286},"vendorWorkerStatus":"INACTIVE"},{"id":"0a79d0d1-ac14-4ed4-a6cc-7971a29043e2","tenantId":"pg.citya","vendorId":"da5dae4c-95d7-43b6-a92f-e504d6000ef8","individualId":"f6f99ec9-9fcd-489c-8f66-58a4a63432b3","additionalDetails":null,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702373514847,"lastModifiedTime":1702459924693},"vendorWorkerStatus":"ACTIVE"},{"id":"39cc81f9-58e7-4912-9743-81f51ba03cd5","tenantId":"pg.citya","vendorId":"da5dae4c-95d7-43b6-a92f-e504d6000ef8","individualId":"8215eb13-f247-4782-9acd-665214d24a98","additionalDetails":null,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702373514847,"lastModifiedTime":1702461623872},"vendorWorkerStatus":"ACTIVE"}],"additionalDetails":{"description":""},"source":"WhatsApp","description":null,"ownerId":"5b610239-fa1c-4538-b771-90cf255304b3","agencyType":"ULB","paymentPreference":"post-service","status":"ACTIVE","auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702373514847,"lastModifiedTime":1702462071879}},"RequestInfo":{"apiId":"Rainmaker","authToken":"06170439-7751-41d9-8043-04ede25e9499","userInfo":{"id":927,"uuid":"49341961-f413-4ae1-b7f8-92a8d9136f38","userName":"ADMIN","name":"Plant operator","mobileNumber":"8282828121","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"FSM Administrator","code":"FSM_ADMIN","tenantId":"pg.citya"},{"name":"FSM Employee Application Viewer","code":"FSM_VIEW_EMP","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1702466976575|en_IN","plainAccessRequest":{}}}' \
  --compressed
curl 'https://unified-dev.digit.org/individual/v1/_update' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/fsm/registry?selectedTabs=WORKER' \
  -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  --data-raw '{"tenantId":"pg.citya","Individual":{"id":"02bc1a5b-fed9-4176-bada-974aeeb8e613","individualId":"IND-2023-12-11-011010","tenantId":"pg.citya","clientReferenceId":null,"userId":null,"userUuid":null,"name":{"givenName":"sdjhsdhsdkjhs","familyName":null,"otherNames":null},"dateOfBirth":"01/01/1970","gender":"MALE","bloodGroup":null,"mobileNumber":"7897897899","altContactNumber":null,"email":null,"address":[{"id":"d2a6e81d-c3ce-4608-af11-5b0d0ca0aa0d","clientReferenceId":null,"individualId":"02bc1a5b-fed9-4176-bada-974aeeb8e613","tenantId":"pg.citya","doorNo":null,"latitude":0,"longitude":0,"locationAccuracy":0,"type":"PERMANENT","addressLine1":null,"addressLine2":null,"landmark":null,"city":"pg.citya","pincode":null,"buildingName":null,"street":null,"locality":{"code":"SUN01","name":null,"label":null,"latitude":null,"longitude":null,"children":null,"materializedPath":null},"ward":null,"isDeleted":false,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702288646617,"lastModifiedTime":1702459735736}}],"fatherName":null,"husbandName":null,"relationship":null,"identifiers":[{"id":"c29c1d4d-a652-41ed-919e-690ebc26641a","clientReferenceId":null,"individualId":"02bc1a5b-fed9-4176-bada-974aeeb8e613","identifierType":"SYSTEM_GENERATED","identifierId":"********************************e613","isDeleted":false,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1702288646617,"lastModifiedTime":1702288646617}}],"skills":[{"id":"19a53767-cf30-40ef-b319-448a71543d6b","clientReferenceId":null,"individualId":"02bc1a5b-fed9-4176-bada-974aeeb8e613","type":"DRIVING","level":"UNSKILLED","experience":null,"isDeleted":false,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702288646617,"lastModifiedTime":1702381056019}},{"id":"d033165f-e71a-492d-9047-a0f7a8100bf9","clientReferenceId":null,"individualId":"02bc1a5b-fed9-4176-bada-974aeeb8e613","type":"Driving","level":"UNSKILLED","experience":null,"isDeleted":false,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702459735089,"lastModifiedTime":1702459735089}},{"id":"83d3c583-4195-49d9-8447-3fdea59a3f47","clientReferenceId":null,"individualId":"02bc1a5b-fed9-4176-bada-974aeeb8e613","type":"Lab Operator","level":"UNSKILLED","experience":null,"isDeleted":false,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702459735089,"lastModifiedTime":1702459735089}},{"id":"db0d86de-5f6e-42b0-8978-1953bd4a71a4","clientReferenceId":null,"individualId":"02bc1a5b-fed9-4176-bada-974aeeb8e613","type":"Driving","level":"UNSKILLED","experience":null,"isDeleted":false,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702459735737,"lastModifiedTime":1702459735737}},{"id":"8c623d37-5a83-431a-8c09-5cd6a3bc54c2","clientReferenceId":null,"individualId":"02bc1a5b-fed9-4176-bada-974aeeb8e613","type":"Lab Operator","level":"UNSKILLED","experience":null,"isDeleted":false,"auditDetails":{"createdBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702459735737,"lastModifiedTime":1702459735737}}],"photo":null,"additionalFields":{"schema":null,"version":null,"fields":[{"key":"FUNCTIONAL_ROLE_1","value":"SANITATION_HELPER"},{"key":"EMPLOYMENT_TYPE_1","value":"FIXED"},{"key":"FUNCTIONAL_ROLE_COUNT","value":"01"},{"key":"EMPLOYER","value":"ULB"}]},"isDeleted":false,"rowVersion":11,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1702288646617,"lastModifiedTime":1702459735737},"clientAuditDetails":{"createdBy":null,"lastModifiedBy":null,"createdTime":0,"lastModifiedTime":0},"isSystemUser":true,"isSystemUserActive":false,"userDetails":{"username":"7897897899","password":null,"tenantId":"pg.citya","roles":[{"name":null,"code":"SANITATION_HELPER","description":null,"tenantId":"pg.citya"},{"name":null,"code":"SANITATION_WORKER","description":null,"tenantId":"pg.citya"},{"name":null,"code":"CITIZEN","description":null,"tenantId":"pg.citya"}],"type":"CITIZEN"}},"RequestInfo":{"apiId":"Rainmaker","authToken":"06170439-7751-41d9-8043-04ede25e9499","userInfo":{"id":927,"uuid":"49341961-f413-4ae1-b7f8-92a8d9136f38","userName":"ADMIN","name":"Plant operator","mobileNumber":"8282828121","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"FSM Administrator","code":"FSM_ADMIN","tenantId":"pg.citya"},{"name":"FSM Employee Application Viewer","code":"FSM_VIEW_EMP","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1702467231568|en_IN","plainAccessRequest":{}}}' \
  --compressed
FSM_ADMIN
sanitation worker details page
creating a sanitation worker
FSM Registry
curl 'https://unified-dev.digit.org/individual/v1/_create?tenantId=pg.citya' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/fsm/registry/new-worker' \
  -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  --data-raw '{"Individual":{"tenantId":"pg.citya","name":{"givenName":"Yin Yang"},"dateOfBirth":897955200000,"gender":"MALE","mobileNumber":"7733773377","address":[{"tenantId":"pg.citya","city":"pg.citya","locality":{"code":"SUN01"},"type":"PERMANENT"}],"identifiers":[{"identifierType":"DRIVING_LICENSE_NUMBER","identifierId":"RJ 12 40412"}],"skills":[{"type":"DRIVING","level":"UNSKILLED"},{"type":"OPERATOR","level":"UNSKILLED"}],"photo":null,"additionalFields":{"fields":[{"key":"FUNCTIONAL_ROLE_1","value":"DRIVER"},{"key":"EMPLOYMENT_TYPE_1","value":"FIXED"},{"key":"FUNCTIONAL_ROLE_COUNT","value":"01"},{"key":"EMPLOYER","value":"ULB"}]},"isSystemUser":true,"userDetails":{"username":"7733773377","tenantId":"pg.citya","roles":[{"code":"FSM_DRIVER","tenantId":"pg.citya"},{"code":"SANITATION_WORKER","tenantId":"pg.citya"},{"code":"CITIZEN","tenantId":"pg.citya"}],"type":"CITIZEN"}},"RequestInfo":{"apiId":"Rainmaker","authToken":"06170439-7751-41d9-8043-04ede25e9499","userInfo":{"id":927,"uuid":"49341961-f413-4ae1-b7f8-92a8d9136f38","userName":"ADMIN","name":"Plant operator","mobileNumber":"8282828121","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"FSM Administrator","code":"FSM_ADMIN","tenantId":"pg.citya"},{"name":"FSM Employee Application Viewer","code":"FSM_VIEW_EMP","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1702468403390|en_IN","plainAccessRequest":{}}}' \
  --compressed
curl 'https://unified-dev.digit.org/vendor/v1/_update?tenantId=pg.citya' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/fsm/registry/new-worker' \
  -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
  --data-raw '{"vendor":{"id":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","tenantId":"pg.citya","name":"testing","address":{"tenantId":"pg.citya","doorNo":"","plotNo":"","id":"525c701b-9d76-431a-85be-5957885c75c5","landmark":"","city":"CityA","district":"CityA","region":"CityA","state":null,"country":"in","pincode":"","additionalDetails":"{\"description\": \"\"}","buildingName":"","street":"","locality":{"code":"SUN01","name":"Ajit Nagar - Area1","label":"Locality","latitude":"31.63089","longitude":"74.871552","children":[],"materializedPath":null},"geoLocation":null,"auditDetails":null},"owner":{"id":780,"uuid":"602dcd18-a9a0-4eb1-bf3d-d2d25402fc0c","userName":"9876543211","password":null,"salutation":null,"name":"testing","gender":"MALE","mobileNumber":"9876543211","emailId":"[email protected]","altContactNumber":null,"pan":null,"aadhaarNumber":null,"permanentAddress":null,"permanentCity":null,"permanentPinCode":null,"correspondenceCity":null,"correspondencePinCode":null,"correspondenceAddress":null,"active":true,"dob":1361318400000,"pwdExpiryDate":1708017613000,"locale":null,"type":"CITIZEN","signature":null,"accountLocked":false,"roles":[{"id":null,"name":"FSM Desluding Operator","code":"FSM_DSO","tenantId":"pg"},{"id":null,"name":"Citizen","code":"CITIZEN","tenantId":"pg"}],"fatherOrHusbandName":"testing","relationship":"OTHER","bloodGroup":null,"identificationMark":null,"photo":null,"createdBy":"715","createdDate":1698519013000,"lastModifiedBy":"927","lastModifiedDate":1702470891000,"otpReference":null,"tenantId":"pg"},"vehicles":[{"owner":{"id":781,"uuid":"86cf4d58-1c57-4878-8a73-3cbef096bf97","userName":"07e76b6d-32c5-41ea-a661-74cc3251e785","password":null,"salutation":null,"name":"Rajesh","gender":"MALE","mobileNumber":"9876543212","emailId":"[email protected]","altContactNumber":null,"pan":null,"aadhaarNumber":null,"permanentAddress":null,"permanentCity":null,"permanentPinCode":null,"correspondenceCity":null,"correspondencePinCode":null,"correspondenceAddress":"","active":true,"dob":0,"pwdExpiryDate":1708077096000,"locale":null,"type":"CITIZEN","signature":null,"accountLocked":false,"roles":[{"id":null,"name":"FSM Driver","code":"FSM_DRIVER","tenantId":"pg"}],"fatherOrHusbandName":"Rajesh","relationship":"OTHER","bloodGroup":null,"identificationMark":null,"photo":null,"createdBy":"715","createdDate":1698519096000,"lastModifiedBy":"927","lastModifiedDate":1702470891000,"otpReference":null,"tenantId":"pg"},"id":"5214b5fd-f760-4cc7-8982-39da770cafbc","tenantId":"pg.citya","registrationNumber":"AB 12 AS 1234","model":"TATA","type":"TATA.407","tankCapacity":1000,"suctionType":"SEWER_SUCTION_MACHINE","pollutionCertiValidTill":0,"InsuranceCertValidTill":0,"fitnessValidTill":0,"roadTaxPaidTill":0,"gpsEnabled":true,"additionalDetails":{"description":""},"source":"Municipal records","vendorVehicleStatus":"ACTIVE","status":"ACTIVE","auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1698499296513,"lastModifiedTime":1702451091704}},{"owner":{"id":862,"uuid":"19aaa423-8a4c-49a4-89af-f19620302352","userName":"33192d06-27b4-41c2-b077-aa2d97d96e71","password":null,"salutation":null,"name":"raju","gender":"MALE","mobileNumber":"6543210987","emailId":"[email protected]","altContactNumber":null,"pan":null,"aadhaarNumber":null,"permanentAddress":null,"permanentCity":null,"permanentPinCode":null,"correspondenceCity":null,"correspondencePinCode":null,"correspondenceAddress":"","active":true,"dob":0,"pwdExpiryDate":1709309830000,"locale":null,"type":"CITIZEN","signature":null,"accountLocked":false,"roles":[{"id":null,"name":"FSM Driver","code":"FSM_DRIVER","tenantId":"pg"}],"fatherOrHusbandName":"raju","relationship":"OTHER","bloodGroup":null,"identificationMark":null,"photo":null,"createdBy":"715","createdDate":1700821030000,"lastModifiedBy":"927","lastModifiedDate":1702470891000,"otpReference":null,"tenantId":"pg"},"id":"e6425160-7fa6-42ee-bdd3-7530dd41dc17","tenantId":"pg.citya","registrationNumber":"PO 23 GH 9876","model":"TATA","type":"TATA.407","tankCapacity":1000,"suctionType":"SEWER_SUCTION_MACHINE","pollutionCertiValidTill":0,"InsuranceCertValidTill":0,"fitnessValidTill":0,"roadTaxPaidTill":0,"gpsEnabled":true,"additionalDetails":{"description":""},"source":"Municipal records","vendorVehicleStatus":"ACTIVE","status":"ACTIVE","auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1700801230911,"lastModifiedTime":1702451091527}}],"drivers":[{"id":"3f1b3a51-9ab9-43a2-8afb-f3c544cdcda1","tenantId":"pg.citya","name":"rajesh","owner":{"id":931,"uuid":"8a9fd87d-23dd-42af-aa24-b518bbc7a713","userName":"1111111147","password":null,"salutation":null,"name":"rajesh","gender":"MALE","mobileNumber":"1111111147","emailId":"[email protected]","altContactNumber":null,"pan":null,"aadhaarNumber":null,"permanentAddress":null,"permanentCity":null,"permanentPinCode":null,"correspondenceCity":null,"correspondencePinCode":null,"correspondenceAddress":null,"active":true,"dob":1262390400000,"pwdExpiryDate":1706798530000,"locale":null,"type":"CITIZEN","signature":null,"accountLocked":false,"roles":[{"id":null,"name":"FSM Driver","code":"FSM_DRIVER","tenantId":"pg.citya"},{"id":null,"name":"FSM Driver","code":"FSM_DRIVER","tenantId":"pg"}],"fatherOrHusbandName":"rajesh","relationship":"OTHER","bloodGroup":null,"identificationMark":null,"photo":null,"createdBy":"927","createdDate":1702389651000,"lastModifiedBy":"927","lastModifiedDate":1702389651000,"otpReference":null,"tenantId":"pg"},"ownerId":"8a9fd87d-23dd-42af-aa24-b518bbc7a713","additionalDetails":null,"description":null,"licenseNumber":"456789032166783","status":"ACTIVE","auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698864130067,"lastModifiedTime":1700715369667},"vendorDriverStatus":"ACTIVE"},{"id":"3d916d24-5756-4d01-b547-b4f2feac4366","tenantId":"pg.citya","name":"Krishana","owner":{"id":932,"uuid":"2499b3ef-c501-4780-9241-bfdd7c12b289","userName":"1111111141","password":null,"salutation":null,"name":"Krishana","gender":"MALE","mobileNumber":"1111111141","emailId":"[email protected]","altContactNumber":null,"pan":null,"aadhaarNumber":null,"permanentAddress":null,"permanentCity":null,"permanentPinCode":null,"correspondenceCity":null,"correspondencePinCode":null,"correspondenceAddress":null,"active":true,"dob":1169683200000,"pwdExpiryDate":1706439751000,"locale":null,"type":"CITIZEN","signature":null,"accountLocked":false,"roles":[{"id":null,"name":"FSM Driver","code":"FSM_DRIVER","tenantId":"pg.citya"},{"id":null,"name":"FSM Driver","code":"FSM_DRIVER","tenantId":"pg"}],"fatherOrHusbandName":"Krishana","relationship":"OTHER","bloodGroup":null,"identificationMark":null,"photo":null,"createdBy":"927","createdDate":1702389651000,"lastModifiedBy":"927","lastModifiedDate":1702389651000,"otpReference":null,"tenantId":"pg"},"ownerId":"2499b3ef-c501-4780-9241-bfdd7c12b289","additionalDetails":null,"description":null,"licenseNumber":"987654321067890","status":"ACTIVE","auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698564751818,"lastModifiedTime":1698995381495},"vendorDriverStatus":"ACTIVE"}],"workers":[{"id":"28db807d-b1f7-4ec0-8198-3a24849564ef","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"eb446b2b-c79b-4b36-ac86-cc1a12d4b7e4","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1701253383254},"vendorWorkerStatus":"ACTIVE"},{"id":"64c3e042-7c08-4339-8d8b-c91517993025","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"9a43e3d9-2499-4272-b316-3f10a1458d29","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1700733128794},"vendorWorkerStatus":"ACTIVE"},{"id":"681cff35-5ed1-4819-b682-f68d8d88c48c","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"b39b9bea-7df5-40d4-9e96-ea3036adeb88","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1700710831040},"vendorWorkerStatus":"ACTIVE"},{"id":"d1adde76-49ce-40ab-891a-17d01499a6f5","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"b00a79bc-4574-4749-a371-e706a404588f","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1700730405052},"vendorWorkerStatus":"ACTIVE"},{"id":"31a41afd-dc9f-4ea0-a331-d8be9c655059","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"IND-2023-11-29-010926","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1701252195270},"vendorWorkerStatus":"ACTIVE"},{"id":"d6741795-4171-4307-bd65-4d2b29c46364","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"e496c773-251b-42eb-9812-450f453e6cbb","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1701695433280},"vendorWorkerStatus":"ACTIVE"},{"id":"dacc15d6-fda6-4f29-8635-cec877ee2649","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"16f9ba98-cb15-4d10-883a-b6d04184b14b","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1701943427056},"vendorWorkerStatus":"ACTIVE"},{"id":"c5cc4c36-7791-488a-becb-13a2b5ce9b59","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"19ec0f63-9cc9-4c84-9414-00bdfb1110cc","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1702272847021},"vendorWorkerStatus":"ACTIVE"},{"id":"9ec0387b-1a0a-406a-b511-ac4526f6ee50","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"7ac94e46-8278-4aff-9693-908f58902fca","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1702024388227},"vendorWorkerStatus":"ACTIVE"},{"id":"31d6a8d2-568c-4956-a87f-81d9caf27adc","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"92c84f7a-ff92-4530-a678-a817540f2c28","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1698499213598,"lastModifiedTime":1702448704333},"vendorWorkerStatus":"ACTIVE"},{"id":"6563352a-648b-475b-b2f3-08745155840b","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"19a1da54-5269-4170-b6af-1654cd69e677","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1702272832743},"vendorWorkerStatus":"ACTIVE"},{"id":"376dac06-52a4-4a65-b759-435d3a2cc330","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"a32a1429-cc4f-4038-878c-610ea4d36d3a","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1698499213598,"lastModifiedTime":1702448935221},"vendorWorkerStatus":"ACTIVE"},{"id":"704af1f6-e2b4-48fa-86bd-60e701163e9d","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"1c1cde73-15c0-44f9-991f-78df04eb4e0d","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1702272841574},"vendorWorkerStatus":"ACTIVE"},{"id":"4c64320b-e5c6-485d-9578-144f482ac3f2","tenantId":"pg.citya","vendorId":"e427ddf2-7c49-47f1-ba0f-4418bb10f0b7","individualId":"37dcceb0-40f5-42fd-a801-078e95bad933","additionalDetails":null,"auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","createdTime":1698499213598,"lastModifiedTime":1702036374284},"vendorWorkerStatus":"ACTIVE"},{"individualId":"0ca71210-80bb-4b5a-a33b-68865e4728eb","vendorWorkerStatus":"ACTIVE"}],"additionalDetails":{"description":""},"source":"WhatsApp","description":null,"ownerId":"602dcd18-a9a0-4eb1-bf3d-d2d25402fc0c","agencyType":"ULB","paymentPreference":"post-service","status":"ACTIVE","auditDetails":{"createdBy":"4a747fc5-6a8c-4645-8748-fec35f1b9e17","lastModifiedBy":"49341961-f413-4ae1-b7f8-92a8d9136f38","createdTime":1698499213598,"lastModifiedTime":1702451091813}},"RequestInfo":{"apiId":"Rainmaker","authToken":"06170439-7751-41d9-8043-04ede25e9499","userInfo":{"id":927,"uuid":"49341961-f413-4ae1-b7f8-92a8d9136f38","userName":"ADMIN","name":"Plant operator","mobileNumber":"8282828121","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"FSM Administrator","code":"FSM_ADMIN","tenantId":"pg.citya"},{"name":"FSM Employee Application Viewer","code":"FSM_VIEW_EMP","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1702468403810|en_IN","plainAccessRequest":{}}}' \
  --compressed
FSM_ADMIN
FSM Registry
this master
Edit Sanitation Worker
this master
Create Sanitation Workers

SMS Templates for FSM

  • Sample of SMS present in FSM product :

  • The above SMS needs to be registered with specific TEMPLATE ID(Eg.'1407169140018862465') for each Localization key from the state Government/Client on their respective SMS portals.

  • Append the TEMPLATE ID at the end of message. Example.

  • Push the sms templates in Localisation. SMS related to OTP:

Employee User Manual

Urban local body (ULB) officials/employees are responsible for ensuring that regular treatment quality tests are performed at plants. In certain cases, the ULB officials/employees or third-party agencies such as the Pollution Control Board may perform independent tests. In case of non-compliance with treatment quality standards, the ULB officials/employees are to ensure that corrective actions are promptly taken.

Based on the role and responsibilities of the ULB official/employee, the following functionalities are available:

  • View Test Schedule: Based on the frequency of testing that is configured on the backend, the system generates a testing schedule. ULB officials/employees can view the upcoming tests for all plants tagged to the ULB.

  • View Past Test Results: A digital record of all the past test results uploaded on the platform can be accessed. Sort and filter functionalities make it easy to view all the test results.

  • Record Test Result: In case adhoc tests are conducted, employees have a provision to record the test results. Adhoc test results will also be available to view in the past test results section.

Login

Employee login credentials (login ID and password) can be created for employees via the HRMS. Using this, the employees can sign in.

The user can perform the following actions:

  • Login by entering a username and password, and selecting the city.

  • Use the "Forgot Password" link to reset password.

Treatment Quality Home Screen

After Logging in, the user will land on the home screen which contains a card with links to actions that can be performed by the user.

  1. The "Treatment Quality" card contains the following:

    1. Count of the total pending tests.

    2. Inbox to view the upcoming tests.

    3. View past test results.

    4. Add test result.

  2. Notifications: The notification panel displays the following:

    1. Tests that are overdue for >7 days.

    2. Failed tests where test results are not as per the parameter.

The user can view the details of the test by clicking on the “View Details” button. The user can dismiss the notification by clicking on the cross button.

View Upcoming and Pending Tests

The inbox link will redirect the user to the list of upcoming tests for plants tagged to the ULB.

User Actions:

  1. View the list of upcoming tests: The list of upcoming tests will be sorted by the pending date, where the test with the highest SLA is displayed first. The user can sort the list by clicking on the table headers.

  2. Filter tests: Filters are displayed on the left-hand panel of the screen. The following filters are available:

    1. Treatment process: This will be multi-select showing values for the treatment processes configured for the ULB.

    2. Stages: This will be a dropdown showing values for stages configured for the plant.

    3. Status: This will be a multi-select showing the value for the status in the treatment quality workflow.

  3. Selected filters can be removed by clicking on the refresh button on the top right hand corner of the filter pane or the clear button. Sort: Tests can be sorted by the pending date by clicking on the date column.

  4. Search:

    1. Tests can be searched using the following:

      1. Test ID

      2. Plant name

    2. Users can fill either test ID or plant or both and click on the search button.

    3. Users can clear search by clicking on the "Clear Search’"

The user can redirect to the home screen by using the breadcrumbs or the back button of the browser.

View Test Details

A test details page can be accessed by clicking on the "Test ID" hyperlink in the inbox.

This will show details about the upcoming test.

View Past Test Results

The past test results can be viewed from the TQM landing page and clicking on "View Past Results".

On clicking on "View Past Results", the user is redirected to the list of past tests.

The user can perform the following tasks:

  1. View the list of past tests: The results will be sorted on the test date.

  2. View test details: The user can view test details by clicking on the “Test ID” link in each row.

  3. Search tests: The user can search based on the following:

  • Test ID:

  • Plant Name.

  • Treatment process

  • Test type

  • Date range

To clear search and view all past tests, the user can click on 'Clear'.

  1. Sort: Tests can be sorted by the pending date by clicking on the date column.

  2. Download test results in Excel and PDF formats using the download button.

On clicking on any "Test ID" hyperlink, the user will be redirected to the test details page. The test details page will display the summary of the submitted test along with the timelines/workflow.

Record Test Result

A user can record test results by clicking on the “Add Test Result” link on the treatment quality card.

Clicking on the “Add Test Result” button will redirect the user to the “Add Test Result” page.

The user has to enter the below fields:

  • Plant Name

  • Treatment Process

  • Treatment Stage

  • Output Type

  • Quality Parameters: Based on the selections for the above, the parameters to be tested are populated in the form. At Least one parameter needs to be filled in for the submit button to be enabled. If no parameter is filled and the user clicks on the submit button, an error message is displayed saying “At Least one parameter needs to be filled to Add Test Result”.

  • Attachments, if any.

Once the user clicks on the ‘Submit’ button, the test results page is displayed.

Based on the benchmarks for an acceptable range of parameters defined, the user will be able to view whether the test overall and each parameter has passed or failed.

S.No

Action

Localization key

localization message

SMS

1

Employee creates an application

FSM_SMS_ASSIGN_DSO_APPLY

Dear citizen, your application for cleaning septic tank/pit is created with application reference no {2}. You will be notified when an operator is assigned to a request. Request is expected to be completed within {SLA_HOURS}hrs. Thank You. EGOVS.

Dear citizen, your application for cleaning septic tank/pit is created with application reference no FSM-AND-2023-07-27-003405. You will be notified when an operator is assigned to a request. Request is expected to be completed within 48hrs. Thank You. EGOVS.

2

Citizen creates an application

FSM_SMS_ASSIGN_DSO_APPLY

Dear citizen, your application for cleaning septic tank/pit is created with application reference no {2}. You will be notified when an operator is assigned to a request. Request is expected to be completed within {SLA_HOURS}hrs. Thank You. Govt. of Odisha.

Dear citizen, your application for cleaning septic tank/pit is created with application reference no FSM-AND-2023-07-27-003406. You will be notified when an operator is assigned to a request. Request is expected to be completed within 48hrs. Thank You. Govt. of Odisha.

3

At the time of assign vehicle

FSM_POST_PAY_SMS_DSO_INPROGRESS_DSO_ACCEPT

Dear citizen, Vehicle {VEHICLE_REG_NO} will be reaching your location to clean the septic tank/pit on {POSSIBLE_SERVICE_DATE} with reference to your application number {2}. You can contact the operator in +91 {DSO_MOBILE_NUMBER} Thank You. Govt. of Odisha

Dear citizen, Vehicle OD09J7874 will be reaching your location to clean the septic tank/pit on 27-07-2023 with reference to your application number FSM-AND-2023-07-27-003406. You can contact the operator in +91 9988998898 Thank You. Govt. of Odisha

4

Updating no of trips

FSM_SMS_DSO_INPROGRESS_UPDATE

Dear citizen, your application for cleaning septic tank /pit with application number {2} is updated and the operator has entered the number of trips: {NO_OF_TRIPS}. Please click this link {PAY_LINK} to pay the amount of Rs {AMOUNT_TO_BE_PAID} towards cleaning of your septic tank/pit. Thank You. EGOVS

Dear citizen, your application for cleaning septic tank /pit with application number FSM-AND-2023-07-27-003406 is updated and the operator has entered the number of trips: 2. Please click this link https://sujog-dev.odisha.gov.in/egov-url-shortening/Q56N2npkX6OKAJ4l to pay the amount of Rs 2000.0 towards cleaning of your septic tank/pit. Thank You. EGOVS

5

Collect payment

FSM_SMS_DSO_INPROGRESS_PAY

Dear citizen, amount of Rs.{AMOUNT_TO_BE_PAID}/- is received towards the payment of cleaning septic tank /pit for reference no. {RECEIPT_NO}. Please click this link {RECEIPT_LINK} to download the receipt. Thank You. Govt. of Odisha

Dear citizen, amount of Rs.2000.0/- is received towards the payment of cleaning septic tank /pit for reference no. 07/2023-24/009469. Please click this link https://sujog-dev.odisha.gov.in/egov-url-shortening/eRX3JK18bW0BAalM to download the receipt. Thank You. Govt. of Odisha

6

Complete Request

FSM_SMS_CITIZEN_FEEDBACK_PENDING_COMPLETED

Dear citizen, your request for cleaning septic tank/pit is completed. Please take some time to rate us using the link {FSM_APPL_LINK}. Thank You. Govt. of Odisha

Dear citizen, your request for cleaning septic tank/pit is completed. Please take some time to rate us using the link https://sujog-dev.odisha.gov.in/egov-url-shortening/5oyNDr9LJRmnMY6P. Thank You. Govt. of Odisha

7

Cancel Request by ULB

FSM_SMS_CANCELED_CANCEL

Dear citizen, your request for cleaning the septic tank/pit is cancelled with the reason {FSM_CANCEL_REASON}. Please use this link {NEW_FSM_LINK} to create a new request if needed. Thank You. Govt. of Odisha

Dear citizen, your request for cleaning the septic tank/pit is cancelled with the reason CITIZEN_DENIED_REQUEST. Please use this link https://sujog-dev.odisha.gov.in/egov-url-shortening/d0mgXKeAE8XKLxvb to create a new request if needed. Thank You. Govt. of Odisha

8

Decline Request after assinging dso

FSM_SMS_DSO_REJECTED_DSO_REJECT

Dear citizen, your request for cleaning the septic tank/pit is rejected with the reason {FSM_DSO_REJECT_REASON}. Please use this link {NEW_FSM_LINK} to create a new request if needed. Thank You. Govt. of Odisha

Dear citizen, your request for cleaning the septic tank/pit is rejected with the reason Vehicle is under repair. Please use this link https://sujog-dev.odisha.gov.in/egov-url-shortening/LM7ROBzx9dOnAXd0 to create a new request if needed. Thank You. Govt. of Odisha

9

Submit Vehicle Trip

FSM_SMS_DSO_INPROGRESS_UPDATE

Dear citizen, your application for cleaning septic tank /pit with application number {2} is updated and the operator has entered the number of trips: {NO_OF_TRIPS}. Please click this link {PAY_LINK} to pay the amount of Rs {AMOUNT_TO_BE_PAID} towards cleaning of your septic tank/pit. Thank You. EGOVS

Dear citizen, your application for cleaning septic tank /pit with application number FSM-AND-2023-07-27-003408 is updated and the operator has entered the number of trips: 1. Please click this link https://sujog-dev.odisha.gov.in/egov-url-shortening/az21kn2R95Gnpwb4 to pay the amount of Rs 1000.0 towards cleaning of your septic tank/pit. Thank You. EGOVS

10

After updating trips first time and generating payment

FSM_ADVANCE_APP_CREATE

Dear citizen, Your application reference number for cleaning septic tank/pit is {2}. You have opted to pay an advance amount of Rs.{AMOUNT_TO_BE_PAID}/-. Please click this link {PAY_LINK} to make the payment. You will be notified when an operator is assigned. Thank you for contacting us. EGOVS

Dear citizen, Your application reference number for cleaning septic tank/pit is 107-FSM-2023-02-15-006749. You have opted to pay an advance amount of Rs.100/-. Please click this link https://qa.digit.org/egov-url-shortening/p8Lvp0 to make the payment. You will be notified when an operator is assigned. Thank you for contacting us. EGOVS

{
    "code": "FSM_SMS_DSO_INPROGRESS_PAY",
    "message": "Dear citizen, amount of Rs.{AMOUNT_TO_BE_PAID}/- is received towards the payment of cleaning septic tank/pit for reference no. {RECEIPT_NO}. Please click this link {RECEIPT_LINK} to download the receipt.Thank You. Govt. of Punjab|1301157492438182299|1407169140018862465",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
}
{
    "code": "sms.login.otp.msg",
    "message": "Dear Citizen, Your Login OTP is %s. Thank You. Govt. of Punjab|1301157492438182299|1407169156622167544",
    "module": "egov-user",
    "locale": "en_IN"
},
{
    "code": "sms.pwd.reset.otp.msg",
    "message": "Dear Citizen, Your OTP for recovering password is %s. Thank You. Govt. of Punjab|1301157492438182299|1407169156626870208",
    "module": "egov-user",
    "locale": "en_IN"
},
{
    "code": "sms.register.otp.msg",
    "message": "Dear Citizen, Your OTP to complete your Registration is %s. Thank You. Govt. of Punjab|1301157492438182299|1407169156632042484",
    "module": "egov-user",
    "locale": "en_IN"
}
Creative Commons License
Logo

Configuration Updates

Configuration Changes

Feature
Service Name
Changes
Description

pqm-persister

PQM

Added persister config for the pqm service.

pqm-anomaly-persister

PQM-Anomaly

Added persister file for the pqm-anomaly service.

pqm-indexer

PQM

Added indexer file for the pqm service.

pqm-anomaly-indexer

PQM-anomaly

Added indexer file for the pqm-anomaly service.

pqm-inbox-indexer

PQM

Added inbox indexer file for the pqm service.

Vendor-persister

Vendor

Updated vendor-persister file for sanitation worker feature.

FSM-persister

FSM

Updated fsm-persister file for sanitation worker feature.

TQM Chart API changes

PQM

Added chart API configs for TQM plant operator landing page.

PQM Download PDF

PQM

|

Pdf download configuration for test results summary

Kafka Topic Details

Service
Type
Topic Name

PQM

Save test on creation

save-test-application

Update test

update-test-application

Update test workflow

update-workflow-test-application

Save test topic for inbox

save-test-event-application

Update test topic for inbox

update-test-event-application

Anomaly topic for when a test fails

create-pqm-anomaly-finder

Anomaly topic for when a test result has not been submitted

testResultNotSubmitted-anomaly-topic

Creation of plant-user mapping

save-plant-user-mapping

Updation of plant-user mapping

update-plant-user-mapping

PQM Anomaly Finder

Anomaly topic for when a test fails

save-pqm-test-anomaly-details

Anomaly topic for when test result not submitted

testResultNotSubmitted-anomaly-topic

Save anomaly topic

create-pqm-anomaly-finder

Event (In-App) Notification

persist-user-events-async

FSM

Save new FSM application

save-fsm-application

Update FSM application

update-fsm-application

Update FSM application workflow

update-fsm-workflow-application

Update vehicle trip details

update-vehicle-trip-Details

Save plant user mapping

save-plant-map-application

Update plant user mapping

update-plant-map-application

Receipts get pushed to this topic

egov.collection.payment-create

SMS notification topic

egov.core.notification.sms

Event (In-app) notification topic

persist-user-events-async

Vendor

Save vendor topic

save-vendor-application

Update vendor topic

update-vendor-application

Save driver topic

save-driver-application

Update driver topic

update-driver-application

Update vendor-driver and vendor-vehicle relationship

save-vendordrivervehicle-application

Inbox/Test Details Screen

From the TQM card in the home screen, there is a link to the Inbox.

Inbox

  • The inbox will show a list of tests that are in workflow.

  • Filters and search options are available such as Treatment process, Stage, Output, Status, Test Id and Plant name.

  • Clicking on a test will take the user to the test details screen.

  • Note: Unlike the plant operator inbox, this inbox is only for visibility purposes. A ULB admin cannot take any action in the tests that are in the inbox.

  • The test detail screen will show all the details about the test and status of the test.

  • When tests are in the submitted status, it's status will show as PASS or FAIL depending on the values of the benchmark.

  • If tests are in the workflow, it's status will show as pending.

ULB Admin's Inbox
View Past Tests

API Details for Inbox :

  • Use inbox-v2 API.

  • URL for inbox "/inbox/v2/_search".

  • Sample request object:

{
    "inbox": {
        "processSearchCriteria": {
            "businessService": [
                "PQM"
            ],
            "moduleName": "pqm",
            "tenantId": "pg.citya"
        },
        "moduleSearchCriteria": {
            "sortBy": "createdTime",
            "plantCodes": [
                "ANGUL_FSTP",
                "PURI_FSTP"
            ],
            "processCodes": [
                "WATER_FILTERING",
                "FECAL_SLUDGE_MANAGEMENT"
            ],
            "materialCodes": [
                "ARSENIC",
                "NA",
                "SCREENED_SLUDGE",
                "CHLORINE",
                "SALT",
                "IRON",
                "FECAL_SLUDGE",
                "EFFLUENTS",
                "BIOSOLID",
                "POTABLE_WATER"
            ],
            "wfStatus": [
                "SCHEDULED",
                "PENDINGRESULTS"
            ],
            "fromDate": 1698777000000,
            "toDate": 1701368999000
        },
        "limit": 100,
        "offset": 0,
        "tenantId": "pg.citya"
    },
    "RequestInfo": {
        "apiId": "Rainmaker",
        "authToken": "e5d10a5d-b262-47fc-a9ee-fc24c3a0de19",
        "userInfo": {
            "id": 721,
            "uuid": "41488b21-c742-4290-af8e-a2a1dc3749ac",
            "userName": "TQM_DEV_PLANTOPERATOR",
            "name": "Plant operator",
            "mobileNumber": "7281638699",
            "emailId": null,
            "locale": null,
            "type": "EMPLOYEE",
            "roles": [
                {
                    "name": "PQM TP OPERATOR",
                    "code": "PQM_TP_OPERATOR",
                    "tenantId": "pg.citya"
                }
            ],
            "active": true,
            "tenantId": "pg.citya",
            "permanentCity": null
        },
        "msgId": "1701076328474|en_IN",
        "plainAccessRequest": {}
    }
}
  • Sample curl for inbox:

curl 'https://unified-dev.digit.org/inbox/v2/_search' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'cookie: _ga_V2CPZCVTXQ=GS1.1.1695293925.1.1.1695293950.0.0.0; __cuid=59fd9aac25b044f6af006bd4b159cbbf; amp_fef1e8=f4fc07f6-3fb0-4c67-8114-a1beb906e625R...1hf75985a.1hf76uet8.i.8.q; _ga_P1TZCPKF6S=GS1.1.1699974064.1.1.1699975479.60.0.0; _ga=GA1.2.1291438273.1695293925; _ga_0JZG96DZSM=GS1.1.1699977339.2.0.1699977339.60.0.0' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/tqm/inbox' \
  -H 'sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"' \
  -H 'sec-ch-ua-mobile: ?1' \
  -H 'sec-ch-ua-platform: "Android"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36' \
  --data-raw '{"inbox":{"processSearchCriteria":{"businessService":["PQM"],"moduleName":"pqm","tenantId":"pg.citya"},"moduleSearchCriteria":{"sortBy":"createdTime","plantCodes":["ANGUL_FSTP","PURI_FSTP"],"processCodes":["WATER_FILTERING","FECAL_SLUDGE_MANAGEMENT"],"materialCodes":["ARSENIC","NA","SCREENED_SLUDGE","CHLORINE","SALT","IRON","FECAL_SLUDGE","EFFLUENTS","BIOSOLID","POTABLE_WATER"],"wfStatus":["SCHEDULED","PENDINGRESULTS"],"fromDate":1698777000000,"toDate":1701368999000},"limit":100,"offset":0,"tenantId":"pg.citya"},"RequestInfo":{"apiId":"Rainmaker","authToken":"e5d10a5d-b262-47fc-a9ee-fc24c3a0de19","userInfo":{"id":721,"uuid":"41488b21-c742-4290-af8e-a2a1dc3749ac","userName":"TQM_DEV_PLANTOPERATOR","name":"Plant operator","mobileNumber":"7281638699","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"PQM TP OPERATOR","code":"PQM_TP_OPERATOR","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1701076328474|en_IN","plainAccessRequest":{}}}' \
  --compressed

Role-Action Mapping:

Role-action mapping is done for the "/pqm-service/v1/_search" and "/inbox/v2/_search" endpoint for a ULB admin user role, that is:

PQM_ADMIN

API Details For Search

  • Use pqm-service.

  • URL for search "/pqm-service/v1/_search".

  • Sample request object:

{
    "testSearchCriteria": {
        "processCodes": [
            "WATER_FILTERING",
            "FECAL_SLUDGE_MANAGEMENT"
        ],
        "materialCodes": [
            "ARSENIC",
            "NA",
            "SCREENED_SLUDGE",
            "FECAL_SLUDGE",
            "EFFLUENTS",
            "BIOSOLID",
            "CHLORINE",
            "SALT",
            "IRON",
            "POTABLE_WATER"
        ],
        "testType": [
            "IOT_SCHEDULED",
            "LAB_ADHOC",
            "LAB_SCHEDULED"
        ],
        "fromDate": 1698777000000,
        "toDate": 1701368999000,
        "wfStatus": [
            "SUBMITTED"
        ],
        "plantCodes": [
            "ANGUL_FSTP",
            "PURI_FSTP"
        ]
    },
    "pagination": {
        "limit": 100
    },
    "RequestInfo": {
        "apiId": "Rainmaker",
        "authToken": "e5d10a5d-b262-47fc-a9ee-fc24c3a0de19",
        "userInfo": {
            "id": 721,
            "uuid": "41488b21-c742-4290-af8e-a2a1dc3749ac",
            "userName": "TQM_DEV_PLANTOPERATOR",
            "name": "Plant operator",
            "mobileNumber": "7281638699",
            "emailId": null,
            "locale": null,
            "type": "EMPLOYEE",
            "roles": [
                {
                    "name": "PQM TP OPERATOR",
                    "code": "PQM_TP_OPERATOR",
                    "tenantId": "pg.citya"
                }
            ],
            "active": true,
            "tenantId": "pg.citya",
            "permanentCity": null
        },
        "msgId": "1701076145507|en_IN",
        "plainAccessRequest": {}
    }
}
  • Sample curl for search:

curl 'https://unified-dev.digit.org/pqm-service/v1/_search' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'cookie: _ga_V2CPZCVTXQ=GS1.1.1695293925.1.1.1695293950.0.0.0; __cuid=59fd9aac25b044f6af006bd4b159cbbf; amp_fef1e8=f4fc07f6-3fb0-4c67-8114-a1beb906e625R...1hf75985a.1hf76uet8.i.8.q; _ga_P1TZCPKF6S=GS1.1.1699974064.1.1.1699975479.60.0.0; _ga=GA1.2.1291438273.1695293925; _ga_0JZG96DZSM=GS1.1.1699977339.2.0.1699977339.60.0.0' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/tqm/search-test-results' \
  -H 'sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"' \
  -H 'sec-ch-ua-mobile: ?1' \
  -H 'sec-ch-ua-platform: "Android"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36' \
  --data-raw '{"testSearchCriteria":{"processCodes":["WATER_FILTERING","FECAL_SLUDGE_MANAGEMENT"],"materialCodes":["ARSENIC","NA","SCREENED_SLUDGE","FECAL_SLUDGE","EFFLUENTS","BIOSOLID","CHLORINE","SALT","IRON","POTABLE_WATER"],"testType":["IOT_SCHEDULED","LAB_ADHOC","LAB_SCHEDULED"],"fromDate":1698777000000,"toDate":1701368999000,"wfStatus":["SUBMITTED"],"plantCodes":["ANGUL_FSTP","PURI_FSTP"]},"pagination":{"limit":100},"RequestInfo":{"apiId":"Rainmaker","authToken":"e5d10a5d-b262-47fc-a9ee-fc24c3a0de19","userInfo":{"id":721,"uuid":"41488b21-c742-4290-af8e-a2a1dc3749ac","userName":"TQM_DEV_PLANTOPERATOR","name":"Plant operator","mobileNumber":"7281638699","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"PQM TP OPERATOR","code":"PQM_TP_OPERATOR","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1701076145507|en_IN","plainAccessRequest":{}}}' \
  --compressed

DSO User Manual

The Desludging Operators or DSOs are responsible for initiating and completing action on citizen requests for desludging services. The requests are routed to the respective DSOs by the urban local body (ULB) officials. The DSOs update the application status once the services are delivered and the payments are collected.

DSOs can do the following:

  • ​Assign vehicles for desludging services​

  • Decline service requests​

  • Complete service requests​

Login

DSOs operators are provided with credentials to log in to the system.

User Actions

On this page, the following actions can be performed:

  • Enter username and password

  • Select city for login

  • Reset password by clicking on the “Forgot Password” link

On clicking continue, DSOs are redirected to the FSM homepage.

User Actions

On this page, the following actions can be performed in the FSM card:

  • Click on Inbox to view assigned requests

  • Search for historical requests serviced

  • Change language

  • Edit profile details by clicking on the user icon on top right hand corner

  • Logout by clicking on the user icon on the top right hand corner

Approve requests

Requests assigned to the DSO can be viewed by clicking on the Inbox link in the FSM homepage.

Requests pending for acceptance will be viewable in the status: Pending for DSO Approval.

User Actions

The following actions can be performed:

  • Search for an active application using “Application No.” and “Mobile No.”

  • Clear search by clicking on “Clear Search’”

  • View and update applications by clicking on an application number

  • Filter applications by locacilty using the ‘Locality’ dropdown

  • Filter applications by ‘Status’

  • Search for past applications by using “Search Application”

  • Sort applications by Application date.

On clicking on an application number, application details are displayed.

User Actions

The following actions can be performed:

  • View application details

  • Click on the “Take Action” button

The take action button has the following options:

  • Assign Vehicle

  • Decline Request

A request can be approved by assigning a vehicle. Clicking on “Assign Vehicle’’ will display the following pop-up:

User Actions

The following actions can be performed:

  • Update Vehicle Registration No.

  • Close pop-up by clicking on the Close button on the pop-up.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up

  • Confirm decline request by clicking on the “Assign Vehicle” button

A snack bar will confirm assignment of vehicle and the application timeline will be updated to DSO in Progress.

Update/Schedule Trips

Once DSO is in progress, the number of trips can be updated.

User Actions

The following actions can be performed:

  • Search for an active application using “Application No.” and “Mobile No.”

  • Clear search by clicking on “Clear Search”

  • View and update applications by clicking on an application number

  • Filter applications by ‘Locacilty’ using the locality dropdown

  • Filter applications by ‘Status’

  • Search for past applications by using “Search Application”

On clicking on an application number, application details are displayed.

User Actions

The following actions can be performed:

  • View application details

  • Click on the ‘Take Action’ button

The take action button has the following options:

  • Complete Request

  • Update/Schedule Trips

On clicking on Update/Schedule trips, the following pop up is displayed:

User Actions

The following actions can be performed:

  • Increase the number of trips by clicking on the + button

  • Decrease the number of trips by clicking on the - button

  • Close pop-up by clicking on the Close button on the pop-up.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up

  • Confirm update/schedule trips by clicking on the “Update/schedule” button

A snack bar will confirm that the number of trips have been updated

Complete Request

Once the service request has been completed and all pending payments have been collected, the same has to be confirmed in the system. This can be done by selecting the “Complete Request” button in the “Take Action” button. On clicking on Complete Request, the following pop up is displayed:

User Actions

The following actions can be performed:

  • Confirm/Update service date

  • Confirm/Update Volume of waste collected

  • Confirm/Update pit details

  • Upload pit photo

  • Close pop-up by clicking on the Close button on the pop-up.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up

  • Confirm details by clicking on the ‘Completed’’ button

A snack bar will confirm that request has been completed and the status will be updated to “Waiting for Disposal”.

Decline Request

DSOs can choose to decline unserviceable service requests. Applications can be rejected by a DSO in the “Pending for DSO Approval” stage.

User Actions

The following actions can be performed:

  • Search for an active application using “Application No.” and “Mobile No.”

  • Clear search by clicking on “Clear Search”

  • View and update applications by clicking on an application number

  • Filter applications by ‘Locacilty’ using the locality dropdown

  • Filter applications by ‘Status’

  • Search for past applications by using “Search Application”

On clicking on an application number, application details are displayed.

User Actions

The following actions can be performed:

  • View application details

  • Click on the “Take Action” button

The take action button has the following options:

  • Assign Vehicle

  • Decline Request

Clicking on “Decline Request’’ will display the following pop-up:

User Actions

The following actions can be performed:

  • Reason for declining

  • Enter comments

  • Close pop-up by clicking on the Close button on the pop up.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up

  • Confirm decline Request by clicking on the “Decline Request” button

A snack bar will confirm decline and the application timeline will be updated to DSO Rejected.

Inbox/Update Tests

From the TQM card in the home screen, there is a link to the inbox.

Update Tests Flow

  • Tests are created through the cronjob scheduler at the backend.

  • These tests created have a two-step workflow: Scheduled (initial state) -> Select Lab -> Pending Results -> Submitted (final state).

  • By default, tests which are in the workflow, will show up in the inbox of a plant operator. The inbox shows a list of cards corresponding to each test.

  • Each card contains data relevant to the test such as Test ID, Treatment Process, Stage, Output, Status, etc.

  • There is a dynamic action button in each card. According to the current workflow status, it will show either update status (scheduled state) or update results.

  • Clicking on the update status opens an update test screen which shows data about the test and a dropdown which has a list of labs configured in MDMS. A user can select one of the labs and update the test.

  • Clicking on update results opens an update test screen, which also shows the same test details, but the bottom card shows a list of benchmarks to be tested in that test. A user can enter these benchmarks and update the test. There is an option to upload a document as well, and at least one benchmark is mandatory to enter.

  • A success/failure toast is shown once the test is updated.

  • Filter and sort options are available in the inbox.

  • A user can filter by -> Treatment Process, Output Type, Date Range, Workflow Status.

  • A user can sort by date (latest first/latest last).

API Details for Update Tests :

  • Use the pqm-service.

  • URL for inbox "/pqm-service/v1/_update".

  • Sample request object:

  • Sample curl for update:

Role-Action Mapping:

Role-action mapping is done for the "/pqm-service/v1/_update" endpoint for a plant operator user role, that is:

API Details for Inbox:

  • Use the inbox-v2 API.

  • URL for inbox "/inbox/v2/_search".

  • Sample request object:

  • Sample curl for inbox:

Role-Action Mapping:

Role action mapping is done for the "/inbox/v2/_search" endpoint for a plant operator user role, that is:

Steps to Configure URC

MDMS Changes

Create UrcConfig.json and Add GP data for all the ulbs for which the URC feature needs to enable.

Backend Changes

UI Changes

Localisation Changes

Following localisations needs to be added :

Dashboard Changes

In the dashboard, add the following chart:

Loading Billing Slab Data

For adding the rate slabs(pricing) of vehicles,consider different combination of propertyType , slum and tank capacity.

  • Required combination of property types and Sub-property types added in :

  1. RESIDENTIAL and RESIDENTIAL.SUB-PROPERTY_TYPE

  2. INSTITUTIONAL and INSTITUTIONAL.SUB-PROPERTY_TYPE

  3. COMMERCIAL and COMMERCIAL.SUB-PROPERTY_TYPE

  • Consider billing slab property types and Sub-property types for both slum and non-slum areas.Take slum='YES' for slum areas and take slum='NO' for non-slum areas.

  • Sample Data for pricing : - The pricing is provided according to Vehicle capacity,property-types and slum areas.

Within the tenant,For two Vehicles having the same capacity,the pricing should be same. Example : In Vehicle-1 and Vehicle-3,for capacity 1000,pricing for Residential properties with Slum='NO' = 1000 Commercial properties with Slum='NO' = 1000 Institutional properties with Slum='NO' = 1000 Residential properties with Slum='YES' = 800 Commercial properties with Slum='YES' = 800 Institutional properties with Slum='YES' = 800

  • Loading Rate Slabs Steps:

  1. Import this collection -

  2. Change the request url specific to environment.

For search billing-slab(url) -

For create billing-slab(url) -

For update billing-slab(url) -

  1. Login from FSM_ADMINDEV credentials(for sujog-dev) which is having FSM Admin role for all the ulb’s.

  2. Copy the auth token. Paste the auth token in the req. Body “authToken” field.

  3. Download these files - and update the file by changing the different combination of propertyType , slum and tank capacity with respect to tenant/ulb.

  4. Open the runner tab (ctrl+shift+R) and import the file which is shared in the step 5. (For example: billing-athagarh.json for pushing athagarh billing slab).

  5. Drag the api which is provided in Step 1 collection.

  6. Hit the postman collection.

IMPORTANT POINTS:

1.The format of billing slab data is:

Eg.

2.The capacity always starts from 0.

3.Example. If the given capacity is 1000 and 3000 then the range should be:

"capacityFrom": 0,

"capacityTo": 1000,

"capacityFrom": 1001,

"capacityTo": 3000,

4.Consider billing-slab for both slum and non-slum areas.

5.The status is always ACTIVE.

6.If the price of all the slums is given as 0,then mark zeroPricingStatus as true otherwise mark it as false in .

How to update billing slab data:

  1. The format of updating billing slab data is:

2.If the need is to update the price for all the slums from 800 to 500,for this Take the response from search api for slum “YES”,make a json file with updated price and push it using runner with the syntax mentioned in point 1.

Eg.

Zero Pricing property in billing-slab :

For some combination of property types and sub-property types,the zero pricing property is given.For that,the price will be considered as 0(zero) for all the capacities and slum areas.

Link
Link
Link
Link
Link
PR
PR
Link
data-config
format-config

Feature

Service Name

PR

Added new component for URC

data/pg/FSM/CommonFieldsConfig.JSON

https://github.com/egovernments/egov-mdms-data/commit/8117ef65d1da946aad11ce0b230482c1babc7faa

Create UrcConfig.json to enable URC feature

data/pg/angul/FSM/UrcConfig.json

https://github.com/egovernments/egov-mdms-data/commit/457a65f0da8cd6448fb2687015843a3a0281fd68

Enabling overRide for tripAmount

data/pg/FSM/Config.json

https://github.com/egovernments/egov-mdms-data/commit/c18e06d623300cd7bee0d62a9719a66e2489d917

Added GP data for specific ulb

data/pg/ulb-name/egov-location/boundary-data.json

https://github.com/egovernments/egov-mdms-data/commit/bf5533a156af4468995dec496411110eb8644779

Feature

Service Name

Changes

URC

FSM

https://github.com/egovernments/DIGIT-Dev/pull/5296 https://github.com/egovernments/DIGIT-Dev/pull/5297 https://github.com/egovernments/DIGIT-Dev/pull/5308 https://github.com/egovernments/DIGIT-Dev/pull/5309 https://github.com/egovernments/DIGIT-Dev/pull/5312 https://github.com/egovernments/DIGIT-Dev/pull/5315 https://github.com/egovernments/DIGIT-Dev/pull/5317 https://github.com/egovernments/DIGIT-Dev/pull/5318 https://github.com/egovernments/DIGIT-Dev/pull/5319 https://github.com/egovernments/DIGIT-Dev/pull/5376 https://github.com/egovernments/DIGIT-Dev/pull/5378 https://github.com/egovernments/DIGIT-Dev/pull/5399 https://github.com/egovernments/DIGIT-Dev/pull/5406

[
    {
        "code": "CS_FILE_APPLICATION_PROPERTY_LOCATION_GRAM_PANCHAYAT_TEXT",
        "message": "Choose the Grama Panchayat of the Property from the list given below.",
        "module": "rainmaker-fsm",
        "locale": "en_IN"
    },
    {
        "code": "DSS_FSM_TOTAL_REQUESTS_FROM_GP",
        "message": "Applications from Grama Panchayat",
        "module": "rainmaker-fsm",
        "locale": "en_IN"
    },
    {
        "code": "FROM_GRAM_PANCHAYAT",
        "message": "From Gram Panchayat",
        "module": "rainmaker-fsm",
        "locale": "en_IN"
    },
    {
        "code": "WITHIN_ULB_LIMITS",
        "message": "Within ULB Limits",
        "module": "rainmaker-fsm",
        "locale": "en_IN"
    },
    {
        "code": "CS_VILLAGE_NAME",
        "message": "Village Name",
        "module": "rainmaker-common",
        "locale": "en_IN"
    },
    {
        "code": "ES_INBOX_PLEASE_SPECIFY_GRAM_PANCHAYAT",
        "message": "If Others, Specify Gram Panchayat",
        "module": "rainmaker-common",
        "locale": "en_IN"
    },
    {
        "code": "ES_INBOX_PLEASE_SPECIFY_LOCALITY",
        "message": "If Others, Specify Locality",
        "module": "rainmaker-common",
        "locale": "en_IN"
    },
    {
        "code": "ES_INBOX_PLEASE_SPECIFY_VILLAGE",
        "message": "Specify Village",
        "module": "rainmaker-common",
        "locale": "en_IN"
    },
    {
        "code": "CS_GRAM_PANCHAYAT",
        "message": "Gram Panchayat",
        "module": "rainmaker-common",
        "locale": "en_IN"
    },
    {
        "code": "TIP_DSS_FSM_TOTAL_REQUESTS_FROM_GP",
        "message": "Applications from Grama Panchayat",
        "module": "rainmaker-dss",
        "locale": "en_IN"
    },
    {
        "code": "TIP_DSS_FSM_TOTAL_REQUESTS_FROM_GP",
        "message": "Applications from Grama Panchayat",
        "module": "rainmaker-fsm",
        "locale": "en_IN"
    },
    {
        "code": "TIP_DSS_FSM_TOTAL_REQUESTS_FROM_GP",
        "message": "Applications from Grama Panchayat",
        "module": "rainmaker-common",
        "locale": "en_IN"
    },
    {
        "code": "FROM_OTHER_ULB",
        "message": "Outside ULB Limits",
        "module": "rainmaker-fsm",
        "locale": "en_IN"
    }
]

Feature

Location

PR

  1. Add pie chart: Applications by Source

  2. Add Bar chart: No. of applications per month from Gram Panchayat

configs/egov-dss-dashboards/dashboard-analytics/ChartApiConfig.json,

configs/egov-dss-dashboards/dashboard-analytics/MasterDashboardConfig.json

https://github.com/egovernments/punjab-rainmaker-customization/pull/659/

https://github.com/egovernments/digit-ui/pull/84
https://github.com/egovernments/digit-ui/pull/85
https://github.com/egovernments/digit-ui/pull/86
https://github.com/egovernments/digit-ui/pull/87
https://github.com/egovernments/digit-ui/pull/88
https://github.com/egovernments/digit-ui/pull/88
https://github.com/egovernments/digit-ui/pull/89
https://github.com/egovernments/digit-ui/pull/90
https://github.com/egovernments/digit-ui/pull/91
https://github.com/egovernments/digit-ui/pull/92
https://github.com/egovernments/digit-ui/pull/93
https://github.com/egovernments/digit-ui/pull/95
https://github.com/egovernments/digit-ui/pull/96
https://github.com/egovernments/digit-ui/pull/97
https://github.com/egovernments/digit-ui/pull/98
https://github.com/egovernments/digit-ui/pull/99
https://github.com/egovernments/digit-ui/pull/105
https://github.com/egovernments/digit-ui/commit/e6c4825b3141c02476b31f7907b4c97896d38d20
https://github.com/egovernments/digit-ui/pull/107
https://github.com/egovernments/digit-ui/commit/f3ae54412997da76bc9adc61d177d498eda6b3ac

Name of the ULB: (Write in right side box)

Anandapur Municipality

Details

Description

Vehicle-1

Vehicle-2

Vehicle-3

Cesspool Tank Capacity (in Litres)

->

1000

3000

1000

Per trip Pricing for Residential properties

->

1000

2000

1000

Per trip Pricing for Commercial properties

->

1000

2000

1000

Per trip Pricing for Institutional properties

->

1000

2000

1000

Per trip Pricing for Slum areas

->

800

1500

800

{
    "tenantId": "{{tenantId}}",
    "capacityFrom": "{{capacityFrom}}",
    "capacityTo": "{{capacityTo}}",
    "propertyType": "{{propertyType}}",
    "slum": "{{slum}}",
    "price": "{{price}}",
    "status": "{{status}}"
}
{
    "tenantId": "pg.rourkela",
    "capacityFrom": 0,
    "capacityTo": 1000,
    "propertyType": "RESIDENTIAL",
    "slum": "YES",
    "price": 800,
    "status": "ACTIVE"
}
{
    "id": "{{id}}",
    "tenantId": "{{tenantId}}",
    "capacityFrom": "{{capacityFrom}}",
    "capacityTo": "{{capacityTo}}",
    "propertyType": "{{propertyType}}",
    "slum": "{{slum}}",
    "price": "{{price}}",
    "status": "{{status}}",
    "auditDetails": {
        "createdBy": "0ea42eb0-4406-4acf-91b0-52eca31403ab",
        "lastModifiedBy": "0ea42eb0-4406-4acf-91b0-52eca31403ab",
        "createdTime": 1685258218048,
        "lastModifiedTime": 1685258218048
    }
}

Name of the ULB (Write in right side box)

Anandapur Municipality

E. Zero Pricing Properties of ULB

Sl No.

Property Type

Property Sub Type

1

Institutional

CT,PT, Temple, Govt. High School, Govt. Hospital, Govt. School

MDMS
https://www.getpostman.com/collections/d039948bfdf20f7286ad
https://sujog-dev.odisha.gov.in/fsm-calculator/v1/billingSlab/_search? tenantId=od.rourkela&limit=-1
https://sujog-dev.odisha.gov.in/fsm-calculator/v1/billingSlab/_create
https://sujog-dev.odisha.gov.in/fsm-calculator/v1/billingSlab/_update
https://drive.google.com/drive/folders/1cmEcpnvOHiGeq0pKpuznzWKoIYXL4VEI?usp=sharing
MDMS
https://drive.google.com/file/d/11GqEB3mtDO2A9g5P6ilbBOUSuN0kPGgx/view?usp=sharing
{
    "tests": [
        {
            "id": "591836e7-c38e-4427-ad0d-2ec1f3d5e73b",
            "testId": "1013-PQM-2023-11-24-001079",
            "testCode": null,
            "tenantId": "pg.citya",
            "plantCode": "PURI_FSTP",
            "processCode": "FECAL_SLUDGE_MANAGEMENT",
            "stageCode": "COAGULATION",
            "materialCode": "POTABLE_WATER",
            "deviceCode": null,
            "testCriteria": [
                {
                    "id": "edbaeafe-6db4-413e-9977-01406dd56c87",
                    "testId": "1013-PQM-2023-11-24-001079",
                    "criteriaCode": "TSS_LESST_100",
                    "resultValue": "20",
                    "allowedDeviation": null,
                    "resultStatus": "PENDING",
                    "isActive": true,
                    "auditDetails": {
                        "createdBy": "60cf0229-3334-49bd-a83b-7354080ef2fc",
                        "lastModifiedBy": "60cf0229-3334-49bd-a83b-7354080ef2fc",
                        "createdTime": 1700824652571,
                        "lastModifiedTime": 1700824879822
                    }
                }
            ],
            "status": "PENDING",
            "wfStatus": "PENDINGRESULTS",
            "testType": "LAB_SCHEDULED",
            "scheduledDate": 1700888886872,
            "isActive": true,
            "documents": [],
            "additionalDetails": {},
            "auditDetails": {
                "createdBy": "60cf0229-3334-49bd-a83b-7354080ef2fc",
                "lastModifiedBy": "60cf0229-3334-49bd-a83b-7354080ef2fc",
                "createdTime": 1700824652571,
                "lastModifiedTime": 1700824879822
            },
            "workflow": {
                "action": "UPDATE_RESULT"
            },
            "labAssignedTo": null
        }
    ],
    "RequestInfo": {
        "apiId": "Rainmaker",
        "authToken": "e5d10a5d-b262-47fc-a9ee-fc24c3a0de19",
        "userInfo": {
            "id": 721,
            "uuid": "41488b21-c742-4290-af8e-a2a1dc3749ac",
            "userName": "TQM_DEV_PLANTOPERATOR",
            "name": "Plant operator",
            "mobileNumber": "7281638699",
            "emailId": null,
            "locale": null,
            "type": "EMPLOYEE",
            "roles": [
                {
                    "name": "PQM TP OPERATOR",
                    "code": "PQM_TP_OPERATOR",
                    "tenantId": "pg.citya"
                }
            ],
            "active": true,
            "tenantId": "pg.citya",
            "permanentCity": null
        },
        "msgId": "1701076677904|en_IN",
        "plainAccessRequest": {}
    }
}
curl 'https://unified-dev.digit.org/pqm-service/v1/_update' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'cookie: _ga_V2CPZCVTXQ=GS1.1.1695293925.1.1.1695293950.0.0.0; __cuid=59fd9aac25b044f6af006bd4b159cbbf; amp_fef1e8=f4fc07f6-3fb0-4c67-8114-a1beb906e625R...1hf75985a.1hf76uet8.i.8.q; _ga_P1TZCPKF6S=GS1.1.1699974064.1.1.1699975479.60.0.0; _ga=GA1.2.1291438273.1695293925; _ga_0JZG96DZSM=GS1.1.1699977339.2.0.1699977339.60.0.0' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/tqm/test-details?id=1013-PQM-2023-11-24-001079' \
  -H 'sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"' \
  -H 'sec-ch-ua-mobile: ?1' \
  -H 'sec-ch-ua-platform: "Android"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36' \
  --data-raw '{"tests":[{"id":"591836e7-c38e-4427-ad0d-2ec1f3d5e73b","testId":"1013-PQM-2023-11-24-001079","testCode":null,"tenantId":"pg.citya","plantCode":"PURI_FSTP","processCode":"FECAL_SLUDGE_MANAGEMENT","stageCode":"COAGULATION","materialCode":"POTABLE_WATER","deviceCode":null,"testCriteria":[{"id":"edbaeafe-6db4-413e-9977-01406dd56c87","testId":"1013-PQM-2023-11-24-001079","criteriaCode":"TSS_LESST_100","resultValue":"20","allowedDeviation":null,"resultStatus":"PENDING","isActive":true,"auditDetails":{"createdBy":"60cf0229-3334-49bd-a83b-7354080ef2fc","lastModifiedBy":"60cf0229-3334-49bd-a83b-7354080ef2fc","createdTime":1700824652571,"lastModifiedTime":1700824879822}}],"status":"PENDING","wfStatus":"PENDINGRESULTS","testType":"LAB_SCHEDULED","scheduledDate":1700888886872,"isActive":true,"documents":[],"additionalDetails":{},"auditDetails":{"createdBy":"60cf0229-3334-49bd-a83b-7354080ef2fc","lastModifiedBy":"60cf0229-3334-49bd-a83b-7354080ef2fc","createdTime":1700824652571,"lastModifiedTime":1700824879822},"workflow":{"action":"UPDATE_RESULT"},"labAssignedTo":null}],"RequestInfo":{"apiId":"Rainmaker","authToken":"e5d10a5d-b262-47fc-a9ee-fc24c3a0de19","userInfo":{"id":721,"uuid":"41488b21-c742-4290-af8e-a2a1dc3749ac","userName":"TQM_DEV_PLANTOPERATOR","name":"Plant operator","mobileNumber":"7281638699","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"PQM TP OPERATOR","code":"PQM_TP_OPERATOR","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1701076677904|en_IN","plainAccessRequest":{}}}' \
  --compressed
PQM_TP_OPERATOR
{
    "inbox": {
        "processSearchCriteria": {
            "businessService": [
                "PQM"
            ],
            "moduleName": "pqm",
            "tenantId": "pg.citya"
        },
        "moduleSearchCriteria": {
            "sortBy": "createdTime",
            "plantCodes": [
                "ANGUL_FSTP",
                "PURI_FSTP"
            ],
            "processCodes": [
                "WATER_FILTERING",
                "FECAL_SLUDGE_MANAGEMENT"
            ],
            "materialCodes": [
                "ARSENIC",
                "NA",
                "SCREENED_SLUDGE",
                "CHLORINE",
                "SALT",
                "IRON",
                "FECAL_SLUDGE",
                "EFFLUENTS",
                "BIOSOLID",
                "POTABLE_WATER"
            ],
            "wfStatus": [
                "SCHEDULED",
                "PENDINGRESULTS"
            ],
            "fromDate": 1698777000000,
            "toDate": 1701368999000
        },
        "limit": 100,
        "offset": 0,
        "tenantId": "pg.citya"
    },
    "RequestInfo": {
        "apiId": "Rainmaker",
        "authToken": "e5d10a5d-b262-47fc-a9ee-fc24c3a0de19",
        "userInfo": {
            "id": 721,
            "uuid": "41488b21-c742-4290-af8e-a2a1dc3749ac",
            "userName": "TQM_DEV_PLANTOPERATOR",
            "name": "Plant operator",
            "mobileNumber": "7281638699",
            "emailId": null,
            "locale": null,
            "type": "EMPLOYEE",
            "roles": [
                {
                    "name": "PQM TP OPERATOR",
                    "code": "PQM_TP_OPERATOR",
                    "tenantId": "pg.citya"
                }
            ],
            "active": true,
            "tenantId": "pg.citya",
            "permanentCity": null
        },
        "msgId": "1701076328474|en_IN",
        "plainAccessRequest": {}
    }
}
curl 'https://unified-dev.digit.org/inbox/v2/_search' \
  -H 'authority: unified-dev.digit.org' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'content-type: application/json;charset=UTF-8' \
  -H 'cookie: _ga_V2CPZCVTXQ=GS1.1.1695293925.1.1.1695293950.0.0.0; __cuid=59fd9aac25b044f6af006bd4b159cbbf; amp_fef1e8=f4fc07f6-3fb0-4c67-8114-a1beb906e625R...1hf75985a.1hf76uet8.i.8.q; _ga_P1TZCPKF6S=GS1.1.1699974064.1.1.1699975479.60.0.0; _ga=GA1.2.1291438273.1695293925; _ga_0JZG96DZSM=GS1.1.1699977339.2.0.1699977339.60.0.0' \
  -H 'origin: https://unified-dev.digit.org' \
  -H 'referer: https://unified-dev.digit.org/sanitation-ui/employee/tqm/inbox' \
  -H 'sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"' \
  -H 'sec-ch-ua-mobile: ?1' \
  -H 'sec-ch-ua-platform: "Android"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36' \
  --data-raw '{"inbox":{"processSearchCriteria":{"businessService":["PQM"],"moduleName":"pqm","tenantId":"pg.citya"},"moduleSearchCriteria":{"sortBy":"createdTime","plantCodes":["ANGUL_FSTP","PURI_FSTP"],"processCodes":["WATER_FILTERING","FECAL_SLUDGE_MANAGEMENT"],"materialCodes":["ARSENIC","NA","SCREENED_SLUDGE","CHLORINE","SALT","IRON","FECAL_SLUDGE","EFFLUENTS","BIOSOLID","POTABLE_WATER"],"wfStatus":["SCHEDULED","PENDINGRESULTS"],"fromDate":1698777000000,"toDate":1701368999000},"limit":100,"offset":0,"tenantId":"pg.citya"},"RequestInfo":{"apiId":"Rainmaker","authToken":"e5d10a5d-b262-47fc-a9ee-fc24c3a0de19","userInfo":{"id":721,"uuid":"41488b21-c742-4290-af8e-a2a1dc3749ac","userName":"TQM_DEV_PLANTOPERATOR","name":"Plant operator","mobileNumber":"7281638699","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"PQM TP OPERATOR","code":"PQM_TP_OPERATOR","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1701076328474|en_IN","plainAccessRequest":{}}}' \
  --compressed
PQM_TP_OPERATOR
Plant Operator Inbox
Update Tests (Select Lab)
Update Test(Add test result)

Steps to Configure Garima

Overview

  • Provision of urban local bodies (ULBs)/DSO to assign one or more sanitation workers to each request:

    1. Sanitation workers will be made available via integration with the Garima database through API in the workflow.

    2. Since the Garima ID may not be well known to the ULB/DSO, a search functionality is to be made available by entering a phone number.

    3. Preview details of the selected sanitation worker for confirmation.

  • Capture sanitation worker details if a sanitation worker is not available in the Garima database.

  • Provide aggregated data around how many requests are served by date via unique Garima IDs by API to UMC.

  • No linking will be done between the Garima worker and the vendor in Sujog FSM.

  • Provide enumeration and benefits to sanitation workers.

  • Identify the percentage of services with evidence of safe practices.

MDMS Changes

Create UrcConfig.json and add GP data for all the ULBs for which the URC feature needs to be enabled.

Backend Changes

Created two adaptors for Garima:

1. Create API

- The adapter calls the UMC API to create records and generate the unique garima ID.

2. Search API

- Get a response from the UMC API based on the search criteria.

Changes made in the FSM Update API

When we update the FSM application, we create a record of Garima in the DIGIT system simultaneously which uses the individual service to create an individual record in the DIGIT database.

Accordingly, one needs to set up the individual service for Garima.

Devops Changes

Builds

Services
Builds

Collection

Service
Api
Collection

UI Changes

Step 1:

Create a Garima folder in web\micro-ui-internals\packages\modules\fsm\src\pages\employee

Add the following code.

https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/modules/fsm/src/pages/employee/GarimaDetails/index.js#L1C1-L200C30

Step 2:

Add the required Garima custom components and register them.

  • https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/modules/fsm/src/pageComponents/GarimaPersonalDetails.js#L1C1-L199C38

Register the above custom page components:

Step 3:

Add the redirection URL for the "Add vehicle" action option:

Step 4:

Add the necessary Garima hooks call:

Localisation Changes

The following localisations need to be added:

Feature

Service Name

PR

Added new component for URC

data/pg/FSM/CommonFieldsConfig.JSON

https://github.com/egovernments/egov-mdms-data/commit/8117ef65d1da946aad11ce0b230482c1babc7faa

Create UrcConfig.json to enable URC feature

data/pg/angul/FSM/UrcConfig.json

https://github.com/egovernments/egov-mdms-data/commit/457a65f0da8cd6448fb2687015843a3a0281fd68

Enabling overRide for tripAmount

data/pg/FSM/Config.json

https://github.com/egovernments/egov-mdms-data/commit/c18e06d623300cd7bee0d62a9719a66e2489d917

Added GP data for specific ulb

data/pg/ulb-name/egov-location/boundary-data.json

https://github.com/egovernments/egov-mdms-data/commit/bf5533a156af4468995dec496411110eb8644779

Feature

Service Name

Changes

Garima

FSM

https://github.com/egovernments/DIGIT-Dev/commit/5f28f07e9a43597da22703964edb00f8f554c1fc https://github.com/egovernments/DIGIT-Dev/commit/7b325edf26f34aaad0b8a1aa09f132c47232424c https://github.com/egovernments/DIGIT-Dev/commit/0405a900dd8a12de03b60bb0f47ab1733ca03e66 https://github.com/egovernments/DIGIT-Dev/commit/5f44d9c3dc0b7515beb10b53ba4e6c06d0df2833 https://github.com/egovernments/DIGIT-Dev/commit/99f15a522f70f0a44a4335b9492cd4b7d589e0c1 https://github.com/egovernments/DIGIT-Dev/commit/4f16b9e9681ebca19e814ed2ec8cf256cb08946c

FSM

egovio/fsm:FSM1.3Impl-sujog-Odisha-handover-pqm-4f16b9e968-176

egovio/fsm-db:FSM1.3Impl-sujog-Odisha-handover-pqm-4f16b9e968-176

Individual

egovio/individual-db:sujog-individual-d13a5d35fb-199

egovio/individual:sujog-individual-d13a5d35fb-199

Digit-ui

egovio/digit-ui:FSM-Sujog-40157ab-325

FSM

/fsm/v1/_update

https://api.postman.com/collections/23418568-5c53f370-7a38-41c2-9d87-4d8c7e0e1355?access_key=PMAT-01HZ44N39TJCNA3KWQN1JMYV4M

/fsm/v1/_searchGarimaWorker

https://api.postman.com/collections/23418568-5c53f370-7a38-41c2-9d87-4d8c7e0e1355?access_key=PMAT-01HZ44N39TJCNA3KWQN1JMYV4M

/fsm/v1/_createGarimaWorker

https://api.postman.com/collections/23418568-5c53f370-7a38-41c2-9d87-4d8c7e0e1355?access_key=PMAT-01HZ44N39TJCNA3KWQN1JMYV4M

Individual

/individual/v1/_create

https://api.postman.com/collections/23418568-5c53f370-7a38-41c2-9d87-4d8c7e0e1355?access_key=PMAT-01HZ44N39TJCNA3KWQN1JMYV4M

/individual/v1/_search

https://api.postman.com/collections/23418568-5c53f370-7a38-41c2-9d87-4d8c7e0e1355?access_key=PMAT-01HZ44N39TJCNA3KWQN1JMYV4M

UMC

api/egov/sanitation-worker/search

https://api.postman.com/collections/23418568-9cbef29b-687f-4a34-9bec-7beef6d6eabd?access_key=PMAT-01HZ44SGFJ64PAHARXDBQFMMD0

/api/v1/egov/sanitation-worker/capture

https://api.postman.com/collections/23418568-9cbef29b-687f-4a34-9bec-7beef6d6eabd?access_key=PMAT-01HZ44SGFJ64PAHARXDBQFMMD0

[
  {
    "code": "ADD_DRIVER_MOBILE_NUMBER",
    "message": "Add driver's mobile number",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
  },
  {
    "code": "ADD_HELPER",
    "message": "Add Helper",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
  },
  {
    "code": "ADD_HELPER_MOBILE_NUMBER",
    "message": "Add helper's mobile number",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
  },
  {
    "code": "ASSIGN_DRIVER",
    "message": "Assign driver",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
  },
  {
    "code": "ASSIGN_HELPER",
    "message": "Assign helper",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
  },
  {
    "code": "ASSIGN_SANIATION_WORKER",
    "message": "Assign sanitation worker",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
  },
  {
    "code": "ES_FSM_ADD_DRIVER_SUCCESS",
    "message": "Driver Added Successfully",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
  },
  {
    "code": "ES_TITLE_DRIVER_DETAILS",
    "message": "Driver Details",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
  },
  {
    "code": "GARIMA_DRIVER",
    "message": "Driver",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
  },
  {
    "code": "FSM_HELPER_LABEL",
    "message": "Helper",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
  },
  {
    "code": "GARIMA_HELPER",
    "message": "Helper",
    "module": "rainmaker-fsm",
    "locale": "en_IN"
  }
]
https://github.com/egovernments/DIGIT-DevOps/commit/0af62303dd48d944c988a2b1fb2e772c5df61b3d
https://github.com/egovernments/DIGIT-DevOps/tree/unified-env/deploy-as-code/helm/charts/common-services/individual
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/modules/fsm/src/pageComponents/SelectVehicleNumber.js#L1C1-L62C36
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/modules/fsm/src/pageComponents/SelectvehicleCapacity.js#L1C1-L34C36
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/modules/fsm/src/pageComponents/SelectGarimaTripNo.js#L1C1-L23C35
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/modules/fsm/src/pageComponents/SelectGraimaDriver.js#L1C1-L144C35
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/modules/fsm/src/pageComponents/SelectGraimaHelper.js#L1C1-L165C35
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/modules/fsm/src/pageComponents/AddSaniationWorker.js#L1C1-L184C35
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/modules/fsm/src/Module.js#L180C2-L185C22
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/modules/fsm/src/Module.js#L9C1-L14C70
https://github.com/egovernments/digit-ui/commit/900f784b813f0e733ee0b9eae162759345248d42
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/libraries/src/hooks/fsm/useSanitationWorker.js#L1C1-L8C36
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/libraries/src/services/molecules/FSM/FileDesludging.js#L1C1-L82C3
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/libraries/src/hooks/fsm/useGarimaSearchActions.js#L1C1-L8C39
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/libraries/src/services/molecules/FSM/GarimaSearchActions.js#L1C1-L13C36
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/libraries/src/services/elements/FSM.js#L177C1-L195C6
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/libraries/src/hooks/index.js#L91C1-L91C61
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/libraries/src/hooks/index.js#L72C1-L72C67
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/libraries/src/hooks/index.js#L310C3-L311C1
https://github.com/egovernments/digit-ui/blob/900f784b813f0e733ee0b9eae162759345248d42/web/micro-ui-internals/packages/libraries/src/hooks/index.js#L284C3-L284C26

Treatment Plant Operator User Manual

The treatment plant operator is responsible for ensuring that the treatment quality for the plant is as per benchmarks. For this, treatment quality tests need to be performed regularly and any deviations in quality need to be corrected immediately.

The treatment plant operator has the following functionalities:

  • View the list of upcoming tests: Based on the frequency of testing that is configured on the backend, a testing schedule is generated for the plant. The plant operator can receive timely reminders and can view overdue and upcoming tests.

  • View test details: Details of upcoming tests can be accessed to verify outputs, parameters, and test due dates.

  • Update the test status and results: Test status and results against a scheduled test can be updated.

  • View past test results: A digital record of all past test results uploaded on the platform can be accessed. Sort and filter functionalities make it easy to view all the test results.

Login

Treatment plant operator credentials (login ID and password) can be created for employees via the HRMS. Using this, the treatment plant operator can sign in.

On this page, the following actions can be performed:

  • Enter username and password.

  • Select the city for login.

  • Reset password by clicking on the “Forgot Password” link.

Home Page

The user will land on the home page post-login. The user can perform the following actions:

User Actions

  • Access treatment quality module (Update test status and results).

  • Switch between the plants.

  • Users can view the List of pending tasks: This will show the list of tests pending within the next [X] days. A button for “View All Pending Tasks” will be displayed which will redirect the user to “All Pending Tasks”.

Other actions such as an inbox to view the incoming vehicles for disposal and record incoming vehicles will be available here, based on the functionality assigned.

Treatment Quality Home Page

On clicking on the treatment quality card, the user is redirected to the TQM home page. The user can perform the following actions:

User Actions:

  • View and take action on upcoming tests using the inbox. The inbox will show a count of upcoming tests beside it.

  • Past test results: Past test results submitted for the plant can be viewed here.

  • View performance: This widget shows the performance of the plant in regards to treatment quality and will display the following KPIs:

    • Test compliance: Compliance percentage of plant with regards to the treatment quality

    • Percentage of test results passed - The total test results passed/the total test results submitted (for the past 30 days).

    • Count of alerts raised in the past 30 days.

    • Distribution of alerts based on the alert category.

  • Go back to the Landing page using the ‘Back’ button.

Access Help

A help button is available for the user to get a guided view of the page. This is available on every page.

View List of Upcoming Tests

On clicking on the inbox link the user is redirected to the list of upcoming tests. This will show only a list of tests to be completed and updated by the Treatment Plant operator.

User Actions

  1. The total count of upcoming tests is displayed beside the inbox.

  2. View the list of upcoming tests. The following fields will be displayed:

    1. Test ID.

    2. Treatment process

    3. Stage

    4. Output type

    5. Pending date

    6. Status

    7. SLA

  3. Filter tests: On clicking on the filter icon, a pop-up will be displayed. The following filters are available:

    1. Treatment process: The dropdown shows the values for treatment processes configured for the plant. The selected treatment process is displayed here on selection. If not, the field is left blank.

    2. Output type: The dropdown shows values for output types configured for the plant. The selected output type is displayed here on selection. If not, the field is left blank.

    3. Status: The dropdown shows values for the status in the treatment quality workflow. The selected status is displayed here on selection. If not, the field is left blank.

    4. Date range: Selection of date range (calendar view): The selected date range is displayed here on selection. If not, the field is left blank.

    5. On selecting values for the filters above, the user can click on search to filter the inbox.

    6. To clear filters, the user can click on 'Clear'.

    7. To close the pop-up, a user can click on the cross in the top right hand corner of the screen.

  1. Sort: On clicking on sort, a pop-up will be displayed:

  2. Tests can be sorted by the pending date:

    1. Date (Latest First)

    2. Date (Latest Last)

  3. On selecting values for the sort above, the user can click on sort to sort the inbox.

  4. To clear sort, a user can click on clear all.

  5. To close the pop-up, a user can click on the cross in the top right hand corner of the screen.

View Test Details

The test details can be viewed by the user in two ways:

  • Via the pending tasks.

  • Via the inbox.

  1. View Test Details Via Pending Tasks

  • The list of pending tasks can be accessed via the landing page for TQM. This will show the list of tests pending within the next 7 days.

  • This will show tests in both workflow stages:

    • Submit Sample

    • Update Results

Based on the workflow stage, the action for the user will be displayed.

  • On clicking the “Submit Sample/Update Results” button, the user will be redirected to the test details page.

  1. View Test Details Via Inbox

  • For test results in the scheduled stage, the "Update status" button will be displayed.

  • For tests in the pending results stage, the "Update results" button will be displayed.

Update Test Details

On clicking on the "Update Status", the user will be redirected to the test details page.

The test details page will consist of 2 cards.

  1. The first card will display the following fields:

  • Test ID

  • Treatment Process

  • Stage

  • Output Type

  • Pending Date

  • Status

  • Parameters to be tested along with their unit of measurement

  • SLA (This will be displayed in red/green based on the SLA. If today>pending date, this is red, If today<pending date, then it is green).

  1. The second card will be based on the test status:

  • For status tests ‘Scheduled’, the user will be asked to ‘Select a lab’

  • For status tests “Pending Results”, the user will be asked to "Add test results".

The user can select the lab from the dropdown and click on the "Update Status".

The user can :

  1. Update parameter readings (mandatory fields): Only numerical values can be entered.

  2. Attach documents (non-mandatory).

  1. Submit test results by clicking on the ‘Submit’ button. The button will be deactivated unless all values have been updated. On clicking the submit button, a pop-up will be displayed to the user to confirm submission.

The user can confirm submission by clicking on the ‘Submit’ button.

The user can go back to the test details page by clicking on the “Go back” button.

On submission, the system displays the lab results submitted successfully along with the test ID

The user can see the summary of the test results and whether it has passed/failed based on a comparison between the values entered by the user and the benchmarks.

In case all values are as per the benchmarks, the test results will be displayed as ‘Pass’. All values will be shown in green, and the user receives feedback that all results are as per the benchmarks.

In case one or more values are not as per the benchmarks, the test results will be displayed as ‘Fail’. All values as per the benchmarks will be shown in green. Values not as per the benchmarks will be shown in red. The user is provided with information that the test results are not as per the benchmark.

The user can go back to the home page by clicking on the ‘Back’ button.

View Past Test Results

Past test results can be viewed via the TQM landing page and by clicking on "View Past Results’"

On clicking on the past tests, the user is redirected to the list of the past tests.

User Actions :

  1. View the list of past tests . Details of tge past tests can accessed by clicking on the "View Results".

  2. Filter and sort test.

How is the schedule generated?

A scheduler runs for every ‘X’ days and new tests are generated within the treatment plant operator’s login.

Workflow for Treatment Quality Tests

There are 2 statuses:

  1. Update Status

  2. Update Results

Update Status : When the tests are scheduled and pending for status update, the status of the test is 'Scheduled'.

Update Results : Once the status of the tests are updated , the status of the tests will change to “Pending Result”, that is, waiting for the results to be updated.

Verifying against benchmarks and Pass/Fail. The status of the test depends on benchmarks that are pre-defined.

FSM Citizen User Manual

Citizens represent individuals or communities who are the system end-users. The FSM module provides citizens with the scope to apply for desludging services and make the payment for the applied services.

Citizens can do the following:

  • Language selection

  • Login

  • Apply for desludging services

  • Check application status and vehicle status

  • Download application acknowledgement

  • Choose to pay an amount above the minimum advance required and pay the remaining balance post service

  • Rate the services provided by the urban local bodies (ULBs)

Language Selection

Overview

When the user opens the application, it asks them to first select the language. The selected language is highlighted in orange colour.

User actions

On this page, the following actions can be performed:

  • A user can switch the language.

  • A user can click on 'Continue' to navigate to the login screen.

Login

Overview

Users are redirected to this screen once they select the preferred language in the previous screen. Users can choose to either register as a new user or login as an existing user.

Register a new user

User Actions

On this page, the following actions can be performed:

  • A person can register as a new user by entering the mobile number, name and the city.

  • A person can login as an existing user by clicking on the login button.

  • A user can choose to continue with Whatsapp to raise a service request.

  • After the user clicks on "Continue", the page navigates to the "Enter OTP" page.

User actions

On this page, the following actions can be performed:

  • Enter the OTP received on the given mobile number to login.

  • The system will prompt for the selection from a list of available cities. Select the city to complete login.

Login as an Existing User

Overview

This is the page one is redirected to when the user clicks on ‘Login’ to login as an existing user.

User Actions

On this page, the following actions can be performed:

  • Enter mobile number to login as an existing user.

  • Navigate to register as a new user.

  • A user can choose to continue with Whatsapp to raise a service request.

  • After the user clicks on ‘Continue’, the page navigates to the “Enter OTP” page.

User Actions

On this page, the following actions can be performed:

  • Enter the OTP received on the given mobile number to login.

  • Once the OTP is entered, users are prompted to choose a location. Using this screen, they can select the location for which they would like to request for services.

User Actions

On this page, the following actions can be performed:

  • A user can switch the location.

  • A user can click on 'Continue' to navigate to the login screen.

Apply for Desludging Services

Overview

After they login, users are redirected to this screen where multiple actions can be performed related to Faecal Sludge Management services.

User Actions

On this page, the following actions can be performed:

  • Desludging services can be requested by clicking on “Apply for Emptying of Septic Tank/Pit” option on the homepage.

  • User is redirected to the Service Request Page.

User Actions

On this page, the following actions can be performed:

  • Enter “No of Trips” required

  • Enter “Vehicle Capacity” required.

  • Skip and Continue if the above information is not available.

On clicking on “Next”, the user is redirected to the Choose Property Type page.

User Actions

On this page, the following actions can be performed:

  • Selection of Property Type

  • Basis Property Type selected, information regarding tentative cost of desludging service is provided.

On clicking on “Next”, the user is redirected to the Choose Property Subtype page.

User Actions

On this page, the following actions can be performed:

  • Selection of Property Subtype

On clicking on “Next”, the user is redirected to the Pin Property Location page.

User Actions

On this page, the following actions can be performed:

  • Enable the Location finder to allow GPS to track the current location, or, move the pin to the location manually.

  • Search for location using the search bar.

  • Skip and Continue if the above information is not available.

If pin location is not selected, the user is redirected to enter Pincode.

User Actions

On this page, the following actions can be performed:

  • Entering Pincode.

  • Skip and Continue if the above information is not available.

On clicking on “Next”, the user is redirected to the Provide Property Address page.

User Actions

On this page, the following actions can be performed:

  • Selection of City

  • Selection of Locality/Mohalla

On clicking on “Next”, the user is redirected to mention whether the property is located in a Slum.

User Actions

On this page, the following actions can be performed:

  • Selection of whether property is located in Slum

On clicking on “Next”, the user is redirected to the Provide Name of Slum page. If no is selected, then this page is skipped.

User Actions

On this page, the following actions can be performed:

  • Selection of Slum name from dropdown

On clicking on “Next”, the user is redirected to the Provide property address page.

User Actions

On this page, the following actions can be performed:

  • Enter Street Name

  • Enter Door No.

  • Skip and Continue if above information is not available

On clicking on “Next”, the user is redirected to the Provide Landmark page.

User Actions

On this page, the following actions can be performed:

  • Enter Landmark

  • Skip and Continue if above information is not available.

On clicking on “Next”, the user is redirected to the Pit/Septic Tank Details page.

User Actions

On this page, the following actions can be performed:

  • Enter Length of Septic Tank

  • Enter Breadth of Septic Tank

  • Enter Depth of Septic Tank

  • Skip and Continue if the above information is not available.

On clicking on “Next”, the user is redirected to the Upload Pit photo page.

User Actions

On this page, the following actions can be performed:

  • Upload Pit Photo

  • Skip and Continue if the above information is not available.

On clicking on “Next”, the user is redirected to the Select Gender page.

User Actions

On this page, the following actions can be performed:

  • Select Gender

  • Skip and Continue if the above information is not available.

On clicking on “Next”, the user is redirected to the Payment Details page. The page displays Total amount and Minimum amount payable. The advance amount payable field displays the minimum amount payable.

User Actions

On this page, the following actions can be performed:

  • Enter advance amount greater than minimum amount payable and lower than total amount

  • Skip and Continue if the above information is not available

On clicking on “Next”, the user is redirected to the Summary page. The page displays a summary of all the details filled by the user.

User Actions

On this page, the following actions can be performed:

  • Click on Change to change any filled details

  • Click on Submit once the review is complete and the details are satisfactory

On clicking on “Submit”, the user is redirected to the Application Submitted page.

User Actions

On this page, the following actions can be performed:

  • Download application receipt by clicking on download button

  • Go back to the home page.

The system triggers a notification along with the Application No. and details to the registered mobile number. Any subsequent updates and actions on the application also trigger a notification to the applicant.

The system triggers a notification along with the Application No. and details to the registered mobile number. Any subsequent updates and actions on the application also trigger a notification to the applicant.

Check Application Status

From the home page, users can access past application history by clicking on the “My Applications” page.

User Actions

On this page, the following actions can be performed:

  • Click on ‘My applications’ to view a list of past applications.

User Actions

On this page, the following actions can be performed:

  • View details of Applications

Clicking on View redirects the user to Application Details

User Actions

  • View details of applications

  • View current Status of application

On this page, the following actions can be performed:

Make Payment

If the application is on the Payment Pending stage, the user will have the option to make a payment from the View Applications page.

User Actions

On this page, the following actions can be performed:

  • Download Acknowledge receipt of application

  • Make a payment by clicking on the Make Payment button.

The user is redirected to the bill details page which displays the total, advance and due amount.

User Actions

On this page, the following actions can be performed:

  • Confirm details and Proceed to pay.

The user is redirected to Select Payment preference.

The system intimates the user that clicking on Pay will redirect them to a third party payment gateway.

User Actions

On this page, the following actions can be performed:

  • Select Payment Method.

  • Click on pay to proceed.

The system displays a payment acknowledgement message along with the Payment Receipt No.

User Actions

On this page, the following actions can be performed:

  • Print Payment receipt

Rate Services

If the application is on the Payment Pending stage, the user will have the option to make a payment from the View Applications page.

User Actions

On this page, the following actions can be performed:

  • Provide the rating for service by clicking on Rate us.

The user will be redirected to the Provide Feedback page.

User Actions

On this page, the following actions can be performed:

  • Selection of overall rating between 1-5 stars

  • Confirmation on Safety gears used by the operator

  • Providing additional inputs, if any, using the comments box.

Clicking on submit redirects the user to the confirmation page.

User Actions

On this page, the following actions can be performed:

  • Download final payment receipt

  • Go back to the home page.

Sanitation Worker( FSM 1.4) UI/UX Audit

Text
Type
Estimation( in hrs)
Assignee
Comments
Status
Gaps (if any)
Reviewed by Andrew

Selected tab white bg

Improvement

1

Done

Y

Add button width increase

Improvement

0.5

Done

Y

Dropdown width vendor

Improvement

0.1

Done

Y

Left padding of form

Improvement

0.1

Done

Y

Mobile and other validation spacing

Improvement

0.1

Done

Y

Role details input width should be same(License No)

Improvement

0.5

Done

Y

Delete Icon should be there

Improvement

0.1

Done

Y

Skills Localisation

Improvement

0.1

Done

Y

Dropdown height(upto 6-7 elements without scrolling)

Improvement

0.1

Done

Y

Add Vendor Icon should be before text

Improvement

0.1

Done

Y

Toast message should be up

Improvement

0.5

Done

Y

Delete popup spacing reduce

Improvement

Done

Role details tab compare with figma

Improvement

0.1

Done

Y

photograph compare with figma

Improvement

Done

Y

Icon in add role

Improvement

0.5

Done

Y

space b/w checkboxes

Improvement

0.1

Done

Y

Plus Icon in Details Page should be in circle

Improvement

0.1

Done

Y

FSM Card Icon missing Home Page

Improvement

1

Done

Y

Spacing between sections view worker

Improvement

1

Done

Y

Multiselect chips

Improvement

1

Done

Y

No Driver message check position(toast should touch the footer)

Improvement

0.5

Done

Y

Role details card spacing b/w labels and values

Improvement

0.5

Done

Y

All toasts should be at the bottom(close to either footer or action bar)

Improvement

0.1

Done

Y

Release Builds for Core

Category

Services

GIT TAGS

Docker Artifact ID

Remarks

Frontend (old UI)

Citizen

citizen:v1.8.0-b078fa041d-97

Employee

employee:v1.8.0-2ac8314b2f-116

DSS dashboard

dss-dashboard:v1.8.0-0d70d60e63-53

Core Services

Encryption

egov-enc-service:v1.1.3-44558a0-3

xState chatbot

xstate-chatbot:v1.1.1-44558a0-2

Searcher

egov-searcher:v1.1.5-72f8a8f87b-16

Payment gateway

egov-pg-service:v1.2.3-ffbb7a6-4

Filestore

egov-filestore-db:v1.3.0-72d8393-4

Zuul - API gateway

zuul:v1.3.1-76bf31f-5

Mail notification

egov-notification-mail:v1.2.0-9fde481-3

SMS notification

egov-notification-sms:v1.1.3-48a03ad7bb-10

Localisation

egov-notification-sms:v1.2.0-9fde481-3

Persist

egov-persister:v1.1.5-3371bc2-5

ID gen

egov-idgen:v1.2.3-44558a0-3

User

egov-user:v1.2.8-9fde481-19

User chatbot

egov-user-chatbot:v1.3.0-6cfa52c1f9-1

MDMS

egov-mdms-service:v1.3.2-44558a0-3

URL shortening

egov-url-shortening:v1.1.2-1715164454-3

Indexer

egov-indexer:v1.1.7-44558a0-3

Report

report:v1.3.4-96b24b0d72-16

Workflow

egov-workflow-v2:v1.3.0-fbea797-11

PDF generator

pdf-service:v1.1.6-96b24b0d72-22

Chatbot

chatbot:v1.1.6-72f8a8f87b-8

Deprecated

Access control

egov-accesscontrol:v1.1.3-72f8a8f87b-24

Location

egov-location:v1.1.5-fbea797-5

OTP

egov-otp:v1.2.3-9fde481-3

User OTP

user-otp:v1.2.0-9fde481-8

NLP engine

nlp-engine:v1.0.0-fbea6fba-21

No changes in the current release.

Egov document-Uploader

egov-document-uploader:v1.1.1-6cfa52c1f9-4

National dshboard ingest

national-dashboard-ingest:v1.0.1-44558a0-3

New service

National dashboard Kafka pipeline

national-dashboard-kafka-pipeline:v1.0.1-44558a0-3

New service

Business Services

Apportion

egov-apportion-service:v1.1.5-72f8a8f87b-5

Collection

collection-services:v1.1.6-c856353983-29

Billing

billing-service:v1.3.4-72f8a8f87b-39

HRMS

egov-hrms-db:v1.2.6-116d8db-9

Dashboard analytics

dashboard-analytics:v1.1.7-1ffb5fa2fd-49

Dashboard ingest

dashboard-ingest:v1.1.4-72f8a8f87b-10

EGF instrument

egf-instrument:v1.1.4-72f8a8f87b-4

EGF master

egf-master:v1.1.3-72f8a8f87b-15

Finance collection Voucher consumer

finance-collections-voucher-consumer:v1.1.6-96b24b0d72-18

Municipal Services

Individual

User event

egov-user-event:v1.2.0-c1e1e8ce24-21

Inbox

inbox:v1.3.1-733167672c-14

Utilities Services

Custom consumer

egov-custom-consumer:v1.1.1-72f8a8f87b-3

PDF

egov-pdf:v1.1.2-344ffc814a-37

eDCR

eDCR

egov-edcr:v2.1.1-1815083c26-25

Finance

Finance

egov-finance:v3.0.2-0d0a8db8ff-28

Treatment Quality Monitoring Dashboard KPIs

S.No

Section Heading

Chart Heading

Subheading

Definitions (This will appear on the dashboard whenever a user hovers on the metric, wherever applicable).

Chart Type

X-Axis

Y-Axis

Value

Columns

How to calculate

Boundary

Drilldown/Toggle

Comparison KPIs, if any

Show comparison in

Specific to State/ULB/ TRP/all

Tooltip on Hover on Data Point

Input Fields

1

Input

Total incoming sludge

NA

The total incoming sludge from registered and unregistered vehicles.

KPI

NA

NA

Total incoming sludge.

NA

Total incoming sludge = (Volume of waste disposed of for registered vehicles) + (Volume of waste disposed of for unregistered vehicles).

State, Plant ULB

NA

NA

NA

NA

2

Input

Number of incoming trips

NA

The number of trips disposed of at the treatment plant.

KPI

NA

NA

The count of trips to the treatment plant from registered and unregistered vehicles.

NA

Number of trips disposed = Count (Distinct trip ID).

State, Plant ULB

NA

NA

NA

NA

3

Treatment Quality

Overall quality

NA

The percentage of tests where all parameters are as per the benchmarks.

KPI

NA

NA

The percentage of test results meeting the benchmarks.

NA

Overall quality = (Number of tests where all parameters meet benchmarks/ The total number of tests) * 100.

State, Plant ULB

NA

NA

NA

NA

4

Treatment Quality

Compliance

NA

The percentage of tests where results have been recorded.

KPI

NA

NA

The percentage of tests with the status as submitted out of the total tests.

Compliance percentage = (Count of test ID in status 'Submitted'/Count (distinct trip ID) * 100.

State, Plant ULB

NA

NA

NA

NA

5

Alerts

Total alerts

NA

The total alerts raised by the system in the following categories: 1) Test results not as per the benchmark, 2) No reading from the IoT device, 3) Lab results and IoT results not matching.

KPI

NA

NA

Total alerts.

Count (Distinct alert ID).

State, Plant ULB

NA

NA

NA

NA

6

Treatment Quality Plants

Total plants

NA

NA

NA

NA

NA

Count of plants

Count (Distinct plant ID).

State, Plant ULB

NA

NA

NA

NA

7

Treatment Quality Plants

Treatment quality passed

NA

Treatment quality is considered passed if all parameters of both biosolids and effluents are as per the benchmarks for the output of the treatment process in the last test recorded.

NA

NA

NA

The count of plants with treatment quality passed.

Treatment quality for the output type =If(COUNT IF (All parameters meet benchmarks, FALSE) = 0, "Treatment Quality for Output type passed", "Treatment Quality for Output type failed"). Treatment quality for plant passed = =IF(COUNT IF (Treatment quality for output type, FALSE) = 0, " Treatment Quality Passed", "Treatment Quality Failed").

State, Plant ULB

NA

NA

NA

NA

8

Treatment Quality Plants

Treatment quality failed

NA

Treatment quality is considered failed when one or more parameters of biosolids or effluents are not as per the benchmarks for the output of the treatment process in the last test recorded.

NA

NA

NA

The count of plants with treatment quality failed.

Count (Distinct plant ID) - Treatment quality passed.

State, Plant ULB

NA

NA

NA

NA

9

Treatment Quality Plants

NA

NA

NA

Map

NA

NA

Point = Geolocation of plant. Plant icon colour is green if the treatment quality is passed, and red if the treatment quality failed.

Same as 7 and 8

State, Plant ULB

NA

NA

NA

NA

Name of the plant

10

Treatment Quality Plants

NA

NA

NA

Table

NA

NA

NA

Plant Name, Test Result, Compliance %

Test result same as S.No 7 and S.No 8

State, Plant ULB

NA

NA

NA

NA

11

Treatment Quality Plants

NA

NA

NA

Table

NA

NA

NA

Stage, Output Type, Parameters 1...n, Compliance %

Mentioned above

State, Plant ULB

NA

Compliance percentage.

The percentage from the last month.

NA

12

Trend in [Parameter Name] Readings

NA

NA

NA

Multi-line chart

Test dates

Parameter Value

- Value of device reading. - Value of lab results.

NA

NA

Plant

NA

NA

NA

NA

Date Lab result - X Device reading - Y

Manage Vendor, Sanitation Worker and Vehicle Details

The FSM Registry allows for the following actions from the frontend for a particular urban local body (ULB):

  • Add a new sanitation worker, vehicle, vendor.

  • Edit sanitation worker, vehicle, vendor details.

  • Enable and disable sanitation workers, vehicles and vendors.

  • Tag a sanitation worker and vehicle to vendors.

View and Edit Vendor Details

Login as a ULB admin and navigate to the FSM registry by clicking on it.

User Actions

The following actions can be performed:

  • View a list of all vendors in the system along with the details of tagged vehicles and sanitation workers.

  • Search for a vendor using the search box.

  • Clear search by using the "Clear Search" button.

  • Enable/disable a vendor by using the toggle.

  • Sort vendors by creation date.

  • View total vehicles tagged to the vendor by clicking on the value to “Total Vehicles”.

  • View active vehicles tagged to the vendor by clicking on the value to “Total Vehicles”.

  • View total sanitation workers tagged to the vendor by clicking on the value to “Total sanitation workers”.

  • View active sanitation workers tagged to the vendor by clicking on the value to “Total sanitation workers”.

  • Add a new vendor, sanitation worker or vehicle by clicking on the ‘Add’ button.

View Vendor List

Vendor details can be viewed by clicking on the vendor name in the FSM Registry homepage.

User Actions

The following actions can be performed:

  • View vendor details along with tagged vehicles and sanitation workers.

  • Tag a new vehicle to the vendor by clicking on the “Add Vehicle” button.

  • Remove a tagged vehicle by clicking on ‘Delete’ on the top right of the vehicle card.

  • Edit vehicle details by clicking on the ‘Edit’ symbol on the top right of the vehicle card.

  • Tag a new sanitation worker to the Vendor by clicking on the “Add Sanitation Worker” button.

  • Remove a tagged sanitation worker by clicking on the ‘Delete’ symbol on the top right of vehicle card.

  • Edit sanitation worker details by clicking on the ‘Edit’ symbol on the top right of the vehicle card.

  • The details of a vendor can be edited or a vendor deleted by clicking on the “Take Action” button.

Clicking on the ‘Edit’ button as part of the “Take Action” button will redirect the user to the “Edit Vendor” details page.

Edit Vendor Details

User Actions

The following actions can be performed:

  • Edit vendor details.

  • Submit application.

The user will be redirected to the list of vendors, and a snack bar will confirm edit.

Delete Vendor

A vendor can be deleted by clicking on the “Take Action” button and selecting delete. A pop-up will appear on the screen.

User Actions

The following actions can be performed:

  • Confirm delete.

  • Close pop-up by clicking on the 'Close' button on the pop-up.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up

The user will be redirected to the list of vendors, and a snack bar will confirm delete.

Tagging Vehicles and sanitation Workers to a Vendor

Multiple vehicles can be tagged to a vendor. It is necessary that a vehicle exists in the system before it can be tagged. A vehicle can be tagged to a vendor by clicking on the “Add Vehicle” button in the vendor details page.

User Actions

The following actions can be performed:

  • View vendor details along with tagged vehicles and sanitation workers.

  • Tag a new vehicle to the vendor by clicking on the “Add Vehicle” button.

  • Remove a tagged vehicle by clicking on the ‘Delete’ symbol on the top right of vehicle card.

  • Edit vehicle details by clicking on the ‘Edit’ symbol on the top right of the vehicle card.

  • Tag a new sanitation worker to the vendor by clicking on the “Add sanitation worker” button.

  • Remove a tagged sanitation worker by clicking on the ‘Delete’ symbol on the top right of vehicle card.

  • Edit sanitation worker details by clicking on the ‘Edit’ symbol on the top right of the vehicle card.

  • The details of a vendor can be edited or a vendor deleted by clicking on the “Take Action” button.

Clicking on “Add Vehicle” will display a pop-up.

Only vehicles that are not tagged to any vendor will be displayed.

User Actions

The following actions can be performed:

  • Select vehicle from the dropdown.

  • Click on 'Submit' to confirm.

  • Close pop-up by clicking on the Close button on the pop-up.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up.

The user will be able to see the tagged vehicle in the vehicle details section. The vehicle can be untagged from the vendor by clicking on the delete button against the vehicle details.

Multiple sanitation workers can be tagged to a vendor. It is necessary that a sanitation worker exists in the system before he/she can be tagged. A sanitation worker can be tagged to a vendor by clicking on the “Add sanitation worker” button in the vendor details page.

A pop-up will be displayed with a dropdown to select a sanitation worker. Only sanitation workers that are not tagged to any vendor will be displayed.

User Actions

The following actions can be performed:

  • Select sanitation worker from the dropdown.

  • Click on 'Submit' to confirm.

  • Close pop-up by clicking on the 'Close' button on the pop-up.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up

The added sanitation worker details will be displayed. The sanitation worker can be untagged from the vendor by clicking on the delete button against the sanitation worker details.

Adding a New Vendor

A new vendor can be added by clicking on the ‘Add’ button on the FSM Registry landing page.

User Actions

The following actions can be performed:

  • Add a new vendor by clicking on vendor.

  • Add a new vehicle by clicking on vehicle.

  • Add a new sanitation worker by clicking on sanitation worker.

On clicking on vendor, the user will be redirected to the add vendor page.

User Actions

The following actions can be performed:

  • Enter vendor name.

  • Select vendor owner details such as Gender, Date of Birth, Email and Phone number. Each vendor is created with a unique mobile number and hence, an error message will be displayed if the mobile number has been used to create other vendors.

  • Enter address details.

  • Submit the application.

Once the user submits an application, a snack bar will confirm the successful addition of a vendor.

Details of the added vendor will be displayed in the vendor list.

View Vehicle List

The vehicle list can be viewed by clicking on the vehicle tab in the DSM registry.

A list of all vehicles in the system are visible along with the details of the vendor they are tagged to.

User Actions

The following actions can be performed:

  • View list of all vehicles in the system along with the details of tagged vendor.

  • Search for a vehicle using the search box.

  • Clear search by using the “Clear Search” button.

  • Enable/disable a vehicle by using the toggle.

  • Sort vehicles by creation date.

  • Add a new vendor, sanitation worker or vehicle by clicking on the ‘Add’ button.

View Vehicle Details

Vehicle details can be viewed by clicking on the vehicle name.

User Actions

The following actions can be performed:

  • View details of the vehicle.

  • Edit vendor tagging by clicking on the edit icon besides the vendor name.

  • Remove vendor tagging by clicking on the 'Delete' icon besides the vendor name.

  • Click on the “Take Action” button to edit or delete a vehicle.

Edit Vehicle Details

On clicking on the “Take Action” button, the following will be displayed.

User Actions

The following actions can be performed:

  • Click on edit to edit the vehicle.

  • Click on delete to delete the vehicle.

  • Click anywhere else on the screen to go back to vehicle details.

On clicking on the edit button, the user will be redirected to the “Edit Vehicle” page.

User Actions

The following actions can be performed:

  • Edit vehicle details.

  • Submit edited details.

The user will be redirected to the vehicle details page and the edits will be reflected.

Delete Vehicle Details

A vehicle can be deleted by clicking on the “Take Action” button and selecting delete.

User Actions

The following actions can be performed:

  • Click on edit to edit the vehicle.

  • Click on delete to delete the vehicle.

  • Click anywhere else on the screen to go back to vehicle details.

On clicking the delete button, a pop-up will be displayed for confirmation.

User Actions

The following actions can be performed:

  • Close pop-up by clicking on the 'Close' button on the pop-up.

  • Close pop-up by clicking on the cross icon on the top right of the pop-u

  • Confirm deletion by clicking on the delete button.

On clicking on ‘Delete', the user will be directed to a list of vehicles and a snack bar will be displayed as confirmation.

Tagging a Vehicle to a Vendor

Apart from tagging a vehicle to a vendor from the vendor details page, tagging can also be done from the vehicle details page by clicking on the add vendor button.

User Actions

The following actions can be performed:

  • View details of the vehicle.

  • Tagging vehicle to a Vendor by clicking on the ‘+’ icon besides “Add New Vendor”.

A pop-up will be displayed with a dropdown to select a vendor.

User Actions

The following actions can be performed:

  • Selection of a vendor from the dropdown.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up.

  • Close pop-up by clicking on 'Cancel'.

  • Confirm vendor selection by clicking on 'Submit'.

On clicking submit, the added vendor details will be displayed in the vehicle details page and a snack bar will be displayed for confirmation.

Adding a New Vehicle

Add a new vehicle by clicking on the Add button on the FSM Registry landing page and select vehicle.

User Actions

The following actions can be performed:

  • Add a new vendor by clicking on vendor.

  • Add a new vehicle by clicking on vehicle.

  • Add a new sanitation worker by clicking on sanitation worker.

On clicking on ‘Vehicle’, the user will be redirected to the add vehicle page.

User Actions

The following actions can be performed:

  • Enter the vehicle registration number. Each vehicle is created with a unique registration number and hence, an error message will be displayed if the registration number has been used to create other vehicles.

  • Select vehicle details such as model, type, capacity, details of pollution certificate, insurance and road tax.

  • Submit the application.

Once the user submits an application, a snack bar will confirm the successful addition of a vendor.

Details of the added vehicle will be displayed in the vehicle list.

View sanitation worker List

Login as a ULB admin and navigate to the FSM Registry by clicking on it. Click on the sanitation worker tab. A list of all sanitation workers in the system is visible along with the details of the vendor they are tagged to.

User Actions

The following actions can be performed:

  • View the list of all sanitation workers in the system along with the details of tagged vendor.

  • Search for a sanitation worker using the search box.

  • Clear search by using the “Clear Search” button.

  • Enable/disable a sanitation worker by using the toggle.

  • Sort sanitation workers by creation date.

  • Add a new vendor, sanitation worker or vehicle by clicking on the ‘Add’ button.

View sanitation worker Details

Sanitation worker details can be viewed by clicking on the sanitation worker’s ID.

User Actions

The following actions can be performed:

  • View details of the sanitation worker.

  • Edit vendor tagging by clicking on the edit icon besides the vendor name.

  • Remove vendor tagging by clicking on the 'Delete' icon beside the vendor name.

  • Click on the “Take Action” button to edit or delete a sanitation worker.

sanitation worker details can be edited by clicking on the “Take Action" button and selecting edit.

User Actions

The following actions can be performed:

  • Click on 'Edit' to edit the sanitation worker.

  • Click on 'Delete' to delete the sanitation worker.

  • Click anywhere else on the screen to go back to sanitation worker details.

Edit sanitation worker Details

On clicking the Edit button, the user will be redirected to the “Edit Sanitation Worker” page.

User Actions

The following actions can be performed:

  • Submit edited details like professional, role details.

The user will be redirected to the sanitation worker details page and the edits will be reflected.

Delete sanitation worker Details

A sanitation worker can be deleted by clicking on the “Take Action” button and selecting 'Delete'.

User Actions

The following actions can be performed:

  • Click on 'Edit' to edit the sanitation worker.

  • Click on 'Delete' to delete the sanitation worker.

  • Click anywhere else on the screen to go back to sanitation worker details.

On clicking the 'Delete' button, a pop-up will be displayed for confirmation.

User Actions

The following actions can be performed:

  • Close pop-up by clicking on the 'Close' button on the pop-up.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up.

  • Confirm deletion by clicking on the 'Delete' button.

On clicking on ‘Delete’, the user will be directed to a list of vehicles and a snack bar will be displayed as confirmation.

Tagging a sanitation worker to a Vendor

Method 1: Apart from tagging a sanitation worker to a vendor from the vendor details page, tagging can also be done from the sanitation worker details page by clicking on the add new vendor button.

User Actions

The following actions can be performed:

  • View details of the vehicle.

  • Tag sanitation worker to a vendor by clicking on the + icon besides the “Add New Vendor”.

A pop-up will be displayed with a dropdown to select a vendor.

User Actions

The following actions can be performed:

  • Selection of a vendor from the dropdown.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up.

  • Close pop-up by clicking on 'Cancel'.

  • Confirm vendor selection by clicking on 'Submit'.

On clicking on submit, the added vendor details will be displayed in the sanitation worker details page and a snack bar is displayed for confirmation.

Method 2: A sanitation worker can also be tagged to a vendor from the sanitation worker list page. Select a vendor from the dropdown. The sanitation worker will be tagged to the selected vendor.

Adding a New sanitation worker

Add a new sanitation worker by clicking on the 'Add' button on the FSM Registry landing page and select the sanitation worker.

User Actions

The following actions can be performed:

  • Add a new vendor by clicking on vendor.

  • Add a new vehicle by clicking on vehicle.

  • Add a new sanitation worker by clicking on sanitation worker.

On clicking on sanitation worker, the user will be redirected to the add sanitation worker page.

User Actions

The following actions can be performed:

  • Enter sanitation worker personal details such as Gender, Mobile number, DOB.

  • Enter the professional details like skills of the sanitation worker.

  • Click on "Add Role" to define the role for the sanitation worker if the worker is a driver or a helper or a plant operator.

  • Submit the application.

Once the user submits an application, a snack bar will confirm the successful addition of a vendor. Details of the added sanitation worker will be displayed in the sanitation worker list.

v2.9
v2.9
v2.9
v2.9
v2.9
v2.9
v2.9
S.No
S.No

Employee User Manual

Urban local body (ULB) officials or employees receive the service requests, and are responsible for managing and routing these requests to specific DSOs.

Employees can:

  • Create desludging application​ on behalf of citizens.

  • Collect payments.

  • ​Update application/generate demand​.​

  • Assign DSO to an application​.​

  • Assign sanitation worker to an application.

  • Re-assign DSO to an application​. ​

  • Complete or decline request​. ​

  • Multiple request assignment to a single vehicle​.

  • Manage vendor, driver, and vehicle details.

Language Selection

After landing on the employee URL, the user is prompted to select the language with which they would like to access the system.

User actions

On this page, the following actions can be performed:

  • Selection of language

After the user clicks on ‘Continue’, the page navigates to the ‘Login’ page.

Login

ULB employees are provided with credentials to login to the system. There are role-based access for various steps in the workflow, that is, different individuals can be assigned to create an application, modify applications or manage vendor, driver and vehicle details.

User actions

On this page, the following actions can be performed:

  • Enter username and password.

  • Select city for login.

  • Reset password by clicking on the “Forgot Password” link.

On clicking continue, employees are redirected to the FSM home page.

​Create Desludging Application

The FSM home page has 3 options:

  1. To create a new application on behalf of the citizen.

  2. View existing pending applications.

  3. Search for historical applications.

User Actions

On this page, the following actions can be performed:

  • Navigate to the inbox to view pending actions.

  • Create a new desludging application.

  • Search for old applications.

  • Change language.

  • Edit profile details by clicking on the user icon on top right hand corner.

  • Logout by clicking on the user icon on top right hand corner.

Click on "New Desludging Application" to create a new application.

User Actions

On this page, the following actions can be performed:

  • Enter application details (Application Channel, Applicant Name, Applicant Mobile Number and Gender).

  • Enter property details (Property Type and Property Subtype).

  • Enter location details (Pincode, City, Locality, Whether Slum and slum name, Street Name, Door/House No., Landmark).

  • Enter pit/septic tank details (Pit Type, Dimensions).

  • Enter trip details (No. of trips required and vehicle capacity).

On filling the above details, the "Amount per Trip" and "Total Amount" are calculated automatically.

User Actions

The following actions can be performed:

  • The advance amount may be edited (above minimum advance amount and below total advance amount).

Click on "Submit Application" to submit the application, and it redirects to a confirmation page.

User Actions

The following actions can be performed:

  • Download application acknowledgement receipt.

  • Go back to the homepage.

An SMS will be triggered to the citizen with an acknowledgement and payment link, if payment is due.

Update Application

An application created by a citizen through the online channel has to be updated by an employee before confirmation. This application will show with the status “Application Created”.

User Actions

The following actions can be performed:

  • Search for an active application using “Application No.” and “Mobile No.”.

  • Clear search by clicking on “Clear Search”.

  • View and update applications by clicking on an application number.

  • Filter applications by ‘Locality’ using the Locality dropdown.

  • Filter applications by ‘Status’.

  • Search for past applications by using “Search Application”.

On clicking on an application number, application details are displayed.

The following actions can be performed:

  • View application details.

On clicking on the update application, application details will be viewed. Details such as locality, number of trips and capacity will be displayed.

Clicking on “Update application” will update the status of the application as “Pending for Payment”.

Collect Payment

Desludging applications pending for payment are accessible in the inbox of the user assigned the collector role. The status of the application is reflected in the status column.

User Actions

The following actions can be performed:

  • Search for an active application using “Application No.” and “Mobile No.”.

  • Clear Search by clicking on “Clear Search”.

  • View and update applications by clicking on an application number.

  • Filter applications by ‘Lolacilty’ using the locality dropdown.

  • Filter applications by ‘Status’.

  • Search for past applications by using “Search Application”.

On clicking on an application number, application details are displayed.

User Actions

The following actions can be performed:

  • View application details, including applicant, property and trip details

  • View application timeline.

  • Proceed to collect by clicking on the “Collect Payment” button.

A user is redirected to the following screen on clicking on "Collect Payment".

User Actions

The following actions can be performed:

  • View collection amount, including total amount and amount per trip.

  • Enter/update payee details.

  • Select payment mode.

  • Gen/G8 receipt details by entering receipt no. and issue date.

Upon clicking on collect, a user is redirected to a confirmation page.

User Actions

The following actions can be performed:

  • Print payment receipt.

  • Go back to home by clicking on the “Take Action” button.

The following is the view of the payment receipt.

Assign DSO

Open desludging applications are accessible by navigating to the inbox via the FSM homepage. Applications where DSO needs to be assigned will be shown as "Pending for DSO Assignment".

User Actions

The following actions can be performed:

  • Search for an active application using “Application No." and “Mobile No.”.

  • Clear Search by clicking on “Clear Search”.

  • View and update applications by clicking on an application number.

  • Filter applications by ‘Locality’ using the locality dropdown.

  • Filter applications by ‘Status’.

  • Search for past applications by using “Search Application”.

On clicking on an application number, application details are displayed.

User Actions

The following actions can be performed:

  • View application detail.

  • Assign DSO.

On clicking the "Assign DSO" button, a pop-up will occur.

User Actions

The following actions can be performed:

  • Select DSO name via dropdown.

  • Select expected date of completion.

  • Close pop-up by clicking on the 'Close' button.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up.

Clicking on 'Assign' will redirect the user to the application details page and display a snack bar as confirmation. The status of the application will be updated to “Pending for DSO Approval”.

Re-Assign DSO

Employees can reassign to other DSOs in case the request has been rejected or declined by the DSO for some reason. Search for applications "Pending for DSO Approval" status.

User Actions

The following actions can be performed:

  • Search for an active application using “Application No." and “Mobile No.”.

  • Clear search by clicking on “Clear Search”.

  • View and update applications by clicking on an application number.

  • Filter applications by ‘Localilty’ using the locality dropdown.

  • Filter applications by ‘Status’.

  • Search for past applications by using “Search Application”.

On clicking on an application number, application details are displayed.

User Actions

The following actions can be performed:

  • View application details.

  • Click on “Take Action” button.

The take action button has the following options:

  • Assign vehicle (on behalf of DSO).

  • Decline request (on behalf of DSO).

  • Re-assign DSO.

Clicking on “Re-assign DSO” will display the following pop-up.

User Actions

The following actions can be performed:

  • Select “Reason for Re-assign”.

  • Select “DSO Name”.

  • Update “Expected date of completion”.

  • Close pop-up by clicking on the 'Close' button on the pop up.

  • Close pop-up by clicking on the cross icon on the top right of the pop up.

  • Confirm re-assignment by clicking on the ‘Reassign’ button.

Clicking on 'Assign' will redirect the user to the application details page and display a snack bar as confirmation. The status of the application will remain as “Pending for DSO Approval".

Decline Request (On behalf of DSO)

Employees can be assigned the role of the DSO, and can decline a request on behalf of the DSO. Applications can be rejected by an employee when in “Pending for DSO Approval” stage.

User Actions

The following actions can be performed:

  • Search for an active application using “Application No." and “Mobile No.”.

  • Clear search by clicking on “Clear Search”.

  • View and update applications by clicking on an application number.

  • Filter applications by ‘Localilty’ using the locality dropdown.

  • Filter applications by ‘Status’.

  • Search for past applications by using “Search Application”.

On clicking on an application number, application details are displayed.

User Actions

The following actions can be performed:

  • View application details.

  • Click on the “Take Action” button.

The take action button has the following options:

  • Assign vehicle (on behalf of DSO).

  • Decline request (on behalf of DSO).

  • Re-assign DSO.

Clicking on “Decline Request’” will display the following pop-up.

User Actions

The following actions can be performed:

  • Reason for declining.

  • Enter comments.

  • Close pop-up by clicking on the 'Close' button on the pop-up.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up.

  • Confirm decline request by clicking on the “Decline Request” button.

A snack bar will confirm decline and the application timeline will be updated to "DSO Rejected".

Assign Vehicle and Sanitation Worker (On Behalf of DSO)

Employees can be assigned the role of the DSO, and can assign a vehicle and a sanitation worker on behalf of the DSO. A vehicle and a sanitation worker can be assigned when the application is in the “Pending for DSO Approval" stage.

User Actions

The following actions can be performed:

  • Search for an active application using “Application No.” and “Mobile No.”

  • Clear search by clicking on “Clear Search”.

  • View and update applications by clicking on an application number.

  • Filter applications by ‘Locality’ using the locality dropdown.

  • Filter applications by ‘Status’.

  • Search for past applications by using “Search Application”.

On clicking on an application number, application details are displayed.

User Actions

The following actions can be performed:

  • View application details.

  • Click on the “Take Action” button.

The take action button has the following options:

  • Assign vehicle (on behalf of DSO).

  • Assign sanitation worker (on behalf of DSO).

  • Decline request (on behalf of DSO).

  • Re-assign DSO.

Clicking on “Assign Vehicle and Sanitation Worker’’ will display the following pop-up.

User Actions

The following actions can be performed:

  • Update vehicle registration number.

  • Update the driver and the sanitation worker.

  • Choosing a driver is mandatory.

  • Close pop-up by clicking on the 'Close' button on the pop up.

  • Close pop-up by clicking on the cross icon on the top right of the pop up.

  • Confirm decline request by clicking on the 'Assign' button

A snack bar will confirm assignment of vehicle and driver, and the application timeline will be updated to "DSO in Progress".

Update/Schedule Trips

Once DSO is in progress, the number of trips can be updated. This can be done by both the ULB and the DSO.

User Actions

The following actions can be performed:

  • Search for an active application using “Application No.” and “Mobile No.”.

  • Clear search by clicking on “Clear Search”.

  • View and update applications by clicking on an application number.

  • Filter applications by ‘Locality’ using the locality dropdown.

  • Filter applications by ‘Status’.

  • Search for past applications by using “Search Application”.

On clicking on an application number, application details are displayed.

User Actions

The following actions can be performed:

  • View application details.

  • Click on the “Take Action” button.

The take action button has the following options:

  • Complete request.

  • Update/schedule trips.

  • Re-assign DSO.

On clicking on Update/Schedule trips, the following pop up is displayed:

User Actions

The following actions can be performed:

  • Increase the number of trips by clicking on the + button.

  • Decrease number of trips by clicking on the - button.

  • Close pop-up by clicking on the Close button on the pop up.

  • Close pop-up by clicking on the cross icon on the top right of the pop up.

  • Confirm update/schedule trips by clicking on the “Update/schedule” button.

A snack bar will confirm the updated number of trips.

Complete Request

Once the service request has been completed and all pending payment has been collected, the same has to be confirmed in the system. This can be done by selecting the “Complete Request” button in the “Take Action” button. On clicking on "Complete Request", the following pop-up is displayed:

User Actions

The following actions can be performed:

  • Confirm/update service date.

  • Confirm/update the volume of waste collected.

  • Confirm/update pit details.

  • Upload pit photo

  • Close pop-up by clicking on the 'Close' button on the pop up.

  • Close pop-up by clicking on the cross icon on the top right of the pop up

  • Confirm details by clicking on the ‘Completed' button.

A snack bar will confirm that request has been completed and the status will be updated to “Waiting for Disposal”.

Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora

Sanitation Worker Details

From the FSM Registry page Admins can Search for a Sanitation Worker and go to it's details page by clicking on Sanitation Worker Id

Sanitation Worker Details page

  • This page shows all the details about a Sanitation worker

  • Sample Page Screenshot is given below for reference

  • Sanitation Worker Details

  • Admin users will get an action bar at the bottom of the page which has two actions

  • Edit -> This takes the user to Edit Sanitation worker Page

  • Delete -> This calls the update Individual API and disables this user ( Soft delete)

  • A corresponding toast message is shown

  • After taking delete action page is automatically redirected to the FSM Registry

API Details

Search Individual

  • We are hitting this endpoint "/individual/v1/_search" to fetch Sanitation Worker Details

  • Refer the curl below:

```powershell
curl --location 'https://unified-dev.digit.org/individual/v1/_search?tenantId=pg.citya&offset=0&limit=100&_=1700205653156' \
--header 'authority: unified-dev.digit.org' \
--header 'accept: application/json, text/plain, */*' \
--header 'accept-language: en-GB,en-US;q=0.9,en;q=0.8' \
--header 'content-type: application/json' \
--header 'cookie: MicrosoftApplicationsTelemetryDeviceId=55de1d9a-a0cf-4d5b-9255-85b5b1493061; MicrosoftApplicationsTelemetryFirstLaunchTime=2023-10-16T06:23:27.369Z; PGADMIN_LANGUAGE=en; _oauth2_proxy=eyJFbWFpbCI6InNoYWlsZXNoLmt1bWFyQGVnb3Zlcm5tZW50cy5vcmciLCJVc2VyIjoic2hhaWxlc2gtZWdvdiJ9|1700033260|CTEqBthhJjZd2eND93q4SwyRXNc=; __cuid=9b7e8966323a4b45aa49cdd35080b492; amp_fef1e8=606c34a4-95cc-4a2b-bb9c-23bcfd531c60R...1hfbmtumv.1hfbmu1bc.37.l.3s' \
--header 'origin: https://unified-dev.digit.org' \
--header 'referer: https://unified-dev.digit.org/works-ui/employee/masters/view-wageseeker?tenantId=pg.citya&individualId=IND-2023-09-25-002330' \
--header 'sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "Windows"' \
--header 'sec-fetch-dest: empty' \
--header 'sec-fetch-mode: cors' \
--header 'sec-fetch-site: same-origin' \
--header 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36' \
--data '{
    "Individual": {
        "roleCodes":["SANITATION_WORKER"],
        "mobileNumber":"9494949494",
        "individualName":"Dummy1",
        "individualId": "IND-2023-11-23-010831"
    },
    "RequestInfo": {
        "apiId": "Rainmaker",
        "authToken": "4ff28c82-654f-4403-9f2d-8547b9c35687",
        "userInfo": {
            "id": 618,
            "uuid": "40e3b45a-0f64-4e8c-8768-aab82c095b2d",
            "userName": "AUTO1",
            "name": "Jagankumar E",
            "mobileNumber": "7654376563",
            "emailId": null,
            "locale": null,
            "type": "EMPLOYEE",
            "roles": [
                {
                    "name": "HRMS Admin",
                    "code": "HRMS_ADMIN",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "ESTIMATE VERIFIER",
                    "code": "ESTIMATE_VERIFIER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "OFFICER IN CHARGE",
                    "code": "OFFICER_IN_CHARGE",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "PROJECT CREATOR",
                    "code": "PROJECT_CREATOR",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "BILL_CREATOR",
                    "code": "BILL_CREATOR",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "ESTIMATE VIEWER",
                    "code": "ESTIMATE_VIEWER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "MB_APPROVER",
                    "code": "MB_APPROVER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "MUKTA Admin",
                    "code": "MUKTA_ADMIN",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "WORK ORDER CREATOR",
                    "code": "WORK_ORDER_CREATOR",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "ESTIMATE APPROVER",
                    "code": "ESTIMATE_APPROVER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "MB_VERIFIER",
                    "code": "MB_VERIFIER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "WORK ORDER VERIFIER",
                    "code": "WORK_ORDER_VERIFIER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "PROJECT VIEWER",
                    "code": "PROJECT_VIEWER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "MB_CREATOR",
                    "code": "MB_CREATOR",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "MUSTER ROLL VERIFIER",
                    "code": "MUSTER_ROLL_VERIFIER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "Localisation admin",
                    "code": "LOC_ADMIN",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "Employee Common",
                    "code": "EMPLOYEE_COMMON",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "BILL_VIEWER",
                    "code": "BILL_VIEWER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "TECHNICAL SANCTIONER",
                    "code": "TECHNICAL_SANCTIONER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "MUSTER ROLL APPROVER",
                    "code": "MUSTER_ROLL_APPROVER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "WORK ORDER APPROVER",
                    "code": "WORK_ORDER_APPROVER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "ESTIMATE CREATOR",
                    "code": "ESTIMATE_CREATOR",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "MDMS Admin",
                    "code": "MDMS_ADMIN",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "MB_VIEWER",
                    "code": "MB_VIEWER",
                    "tenantId": "pg.citya"
                },
                {
                    "name": "SUPER USER",
                    "code": "SUPERUSER",
                    "tenantId": "pg.citya"
                }
            ],
            "active": true,
            "tenantId": "pg.citya",
            "permanentCity": null
        },
        "msgId": "1700205653156|en_IN",
        "plainAccessRequest": {}
    }
}'
```

Update Individual

  • When individual is deleted we are making use of individual update "/individual/v1/_update"

  • Refer to the curl below

```powershell
curl --location 'https://unified-dev.digit.org/individual/v1/_update?_=1700205712385' \
--header 'authority: unified-dev.digit.org' \
--header 'accept: application/json, text/plain, */*' \
--header 'accept-language: en-GB,en-US;q=0.9,en;q=0.8' \
--header 'content-type: application/json' \
--header 'cookie: MicrosoftApplicationsTelemetryDeviceId=55de1d9a-a0cf-4d5b-9255-85b5b1493061; MicrosoftApplicationsTelemetryFirstLaunchTime=2023-10-16T06:23:27.369Z; PGADMIN_LANGUAGE=en; _oauth2_proxy=eyJFbWFpbCI6InNoYWlsZXNoLmt1bWFyQGVnb3Zlcm5tZW50cy5vcmciLCJVc2VyIjoic2hhaWxlc2gtZWdvdiJ9|1700033260|CTEqBthhJjZd2eND93q4SwyRXNc=; __cuid=9b7e8966323a4b45aa49cdd35080b492; amp_fef1e8=606c34a4-95cc-4a2b-bb9c-23bcfd531c60R...1hfbmtumv.1hfbmu1bc.37.l.3s' \
--header 'origin: https://unified-dev.digit.org' \
--header 'referer: https://unified-dev.digit.org/works-ui/employee/masters/modify-wageseeker?tenantId=pg.citya&individualId=IND-2023-09-25-002330' \
--header 'sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "Windows"' \
--header 'sec-fetch-dest: empty' \
--header 'sec-fetch-mode: cors' \
--header 'sec-fetch-site: same-origin' \
--header 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36' \
--data '{"Individual":{"tenantId":"pg.citya","name":{"givenName":"Anjali"},"dateOfBirth":"20/09/1990","gender":"FEMALE","mobileNumber":"7007099195","fatherName":"Belram","relationship":"HUSBAND","additionalFields":{"fields":[{"key":"SOCIAL_CATEGORY","value":"SC"}]},"address":[{"id":"2f96f127-825e-4de0-971a-caaab582d186","individualId":"8b8c53ea-9d47-476d-b5ff-fd70aaf1a6d2","tenantId":"pg.citya","city":"pg.citya","doorNo":"NA","street":"NA","type":"PERMANENT","locality":{"code":"SUN01"},"ward":{"code":"B1"}}],"auditDetails":{"createdBy":"1ec60cb3-a0c1-4d24-97ef-7a57f58e820d","lastModifiedBy":"1ec60cb3-a0c1-4d24-97ef-7a57f58e820d","createdTime":1695621659633,"lastModifiedTime":1695621659633},"id":"8b8c53ea-9d47-476d-b5ff-fd70aaf1a6d2","individualId":"IND-2023-09-25-002330","skills":[{"id":"a41c97c7-73ed-4376-af5e-6e0bc2c8fd68","clientReferenceId":null,"individualId":"8b8c53ea-9d47-476d-b5ff-fd70aaf1a6d2","type":"FEMALE_MULIA","level":"UNSKILLED","experience":null,"isDeleted":false,"auditDetails":{"createdBy":"1ec60cb3-a0c1-4d24-97ef-7a57f58e820d","lastModifiedBy":"1ec60cb3-a0c1-4d24-97ef-7a57f58e820d","createdTime":1695621659638,"lastModifiedTime":1695621659638},"code":"UNSKILLED.FEMALE_MULIA"},{"id":"95c91c30-7e26-4187-9626-46b68e4f6ccc","clientReferenceId":null,"individualId":"8b8c53ea-9d47-476d-b5ff-fd70aaf1a6d2","type":"MALE_MULIA","level":"UNSKILLED","experience":null,"isDeleted":false,"auditDetails":{"createdBy":"1ec60cb3-a0c1-4d24-97ef-7a57f58e820d","lastModifiedBy":"1ec60cb3-a0c1-4d24-97ef-7a57f58e820d","createdTime":1695621659638,"lastModifiedTime":1695621659638},"code":"UNSKILLED.MALE_MULIA"},{"id":"47b92eaf-4e31-4513-908d-ad8bd4b4e9dc","clientReferenceId":null,"individualId":"8b8c53ea-9d47-476d-b5ff-fd70aaf1a6d2","type":"SCAVENGER","level":"UNSKILLED","experience":null,"isDeleted":false,"auditDetails":{"createdBy":"1ec60cb3-a0c1-4d24-97ef-7a57f58e820d","lastModifiedBy":"1ec60cb3-a0c1-4d24-97ef-7a57f58e820d","createdTime":1695621659638,"lastModifiedTime":1695621659638},"code":"UNSKILLED.SCAVENGER"}],"rowVersion":1,"identifiers":[{"id":"3491e99d-d9a3-41d5-bdaf-2538fae19ef9","clientReferenceId":"a73d268a-07b6-ab4f-76c6-fe7e3d38188e","individualId":"8b8c53ea-9d47-476d-b5ff-fd70aaf1a6d2","identifierType":"AADHAAR","identifierId":"********7656","isDeleted":false,"auditDetails":{"createdBy":"1ec60cb3-a0c1-4d24-97ef-7a57f58e820d","lastModifiedBy":"1ec60cb3-a0c1-4d24-97ef-7a57f58e820d","createdTime":1695621659637,"lastModifiedTime":1695621659637}}]},"RequestInfo":{"apiId":"Rainmaker","authToken":"17b86f8a-6063-4028-abef-fbf005c1ba75","userInfo":{"id":618,"uuid":"40e3b45a-0f64-4e8c-8768-aab82c095b2d","userName":"AUTO1","name":"Jagankumar E","mobileNumber":"7654376563","emailId":null,"locale":null,"type":"EMPLOYEE","roles":[{"name":"HRMS Admin","code":"HRMS_ADMIN","tenantId":"pg.citya"},{"name":"ESTIMATE VERIFIER","code":"ESTIMATE_VERIFIER","tenantId":"pg.citya"},{"name":"OFFICER IN CHARGE","code":"OFFICER_IN_CHARGE","tenantId":"pg.citya"},{"name":"PROJECT CREATOR","code":"PROJECT_CREATOR","tenantId":"pg.citya"},{"name":"BILL_CREATOR","code":"BILL_CREATOR","tenantId":"pg.citya"},{"name":"ESTIMATE VIEWER","code":"ESTIMATE_VIEWER","tenantId":"pg.citya"},{"name":"MB_APPROVER","code":"MB_APPROVER","tenantId":"pg.citya"},{"name":"MUKTA Admin","code":"MUKTA_ADMIN","tenantId":"pg.citya"},{"name":"WORK ORDER CREATOR","code":"WORK_ORDER_CREATOR","tenantId":"pg.citya"},{"name":"ESTIMATE APPROVER","code":"ESTIMATE_APPROVER","tenantId":"pg.citya"},{"name":"MB_VERIFIER","code":"MB_VERIFIER","tenantId":"pg.citya"},{"name":"WORK ORDER VERIFIER","code":"WORK_ORDER_VERIFIER","tenantId":"pg.citya"},{"name":"PROJECT VIEWER","code":"PROJECT_VIEWER","tenantId":"pg.citya"},{"name":"MB_CREATOR","code":"MB_CREATOR","tenantId":"pg.citya"},{"name":"MUSTER ROLL VERIFIER","code":"MUSTER_ROLL_VERIFIER","tenantId":"pg.citya"},{"name":"Localisation admin","code":"LOC_ADMIN","tenantId":"pg.citya"},{"name":"Employee Common","code":"EMPLOYEE_COMMON","tenantId":"pg.citya"},{"name":"BILL_VIEWER","code":"BILL_VIEWER","tenantId":"pg.citya"},{"name":"TECHNICAL SANCTIONER","code":"TECHNICAL_SANCTIONER","tenantId":"pg.citya"},{"name":"MUSTER ROLL APPROVER","code":"MUSTER_ROLL_APPROVER","tenantId":"pg.citya"},{"name":"WORK ORDER APPROVER","code":"WORK_ORDER_APPROVER","tenantId":"pg.citya"},{"name":"ESTIMATE CREATOR","code":"ESTIMATE_CREATOR","tenantId":"pg.citya"},{"name":"MDMS Admin","code":"MDMS_ADMIN","tenantId":"pg.citya"},{"name":"MB_VIEWER","code":"MB_VIEWER","tenantId":"pg.citya"},{"name":"SUPER USER","code":"SUPERUSER","tenantId":"pg.citya"}],"active":true,"tenantId":"pg.citya","permanentCity":null},"msgId":"1700205712385|en_IN","plainAccessRequest":{}}}'
```

Update Vendor

  • When we delete a Sanitation worker who is tagged to a vendor we are updating the worker - vendor tagging to inactive.

  • Refer to the curl below:

```powershell
curl --location 'http://localhost:3000/vendor/v1/_update?tenantId=pg.citya' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Accept-Language: en-US,en;q=0.9' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json;charset=UTF-8' \
--header 'Origin: http://localhost:3000' \
--header 'Referer: http://localhost:3000/sanitation-ui/employee/fsm/registry?selectedTabs=DRIVER' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-origin' \
--header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36' \
--header 'sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "Windows"' \
--data-raw '{
    "vendor":   {
            "id": "ea138945-f35b-42a3-96af-9ded096fb809",
            "tenantId": "pg.citya",
            "name": "Raj",
            "address": {
                "tenantId": "pg.citya",
                "doorNo": "",
                "plotNo": "",
                "id": "894f60f2-0d27-4f24-b1ec-a0017920b51a",
                "landmark": "",
                "city": "CityA",
                "district": "CityA",
                "region": "CityA",
                "state": null,
                "country": "in",
                "pincode": "",
                "additionalDetails": "{\"description\": \"\"}",
                "buildingName": "",
                "street": "",
                "locality": {
                    "code": "SUN01",
                    "name": "Ajit Nagar - Area1",
                    "label": "Locality",
                    "latitude": "31.63089",
                    "longitude": "74.871552",
                    "children": [],
                    "materializedPath": null
                },
                "geoLocation": null,
                "auditDetails": null
            },
            "owner": {
                "id": 861,
                "uuid": "31b14828-1c46-42bb-9364-8f456509c375",
                "userName": "6543217890",
                "password": null,
                "salutation": null,
                "name": "Raj",
                "gender": "MALE",
                "mobileNumber": "6543217890",
                "emailId": "[email protected]",
                "altContactNumber": null,
                "pan": null,
                "aadhaarNumber": null,
                "permanentAddress": null,
                "permanentCity": null,
                "permanentPinCode": null,
                "correspondenceCity": null,
                "correspondencePinCode": null,
                "correspondenceAddress": null,
                "active": true,
                "dob": 1700611200000,
                "pwdExpiryDate": 1708695918000,
                "locale": null,
                "type": "CITIZEN",
                "signature": null,
                "accountLocked": false,
                "roles": [
                    {
                        "id": null,
                        "name": "FSM Desluding Operator",
                        "code": "FSM_DSO",
                        "tenantId": "pg"
                    },
                    {
                        "id": null,
                        "name": "Citizen",
                        "code": "CITIZEN",
                        "tenantId": "pg"
                    }
                ],
                "fatherOrHusbandName": "Raj",
                "relationship": "OTHER",
                "bloodGroup": null,
                "identificationMark": null,
                "photo": null,
                "createdBy": "715",
                "createdDate": 1700820918000,
                "lastModifiedBy": "715",
                "lastModifiedDate": 1700826327000,
                "otpReference": null,
                "tenantId": "pg"
            },
            "vehicles": null,
            "drivers": [
                {
                    "id": "f24d113e-c163-4aa1-a1b3-b54807308a40",
                    "tenantId": "pg.citya",
                    "name": "pintu",
                    "owner": {
                        "id": 820,
                        "uuid": "fc688f84-6b5c-4da5-ae69-3580d3d81fc6",
                        "userName": "1111111149",
                        "password": null,
                        "salutation": null,
                        "name": "pintu",
                        "gender": "MALE",
                        "mobileNumber": "1111111149",
                        "emailId": "[email protected]",
                        "altContactNumber": null,
                        "pan": null,
                        "aadhaarNumber": null,
                        "permanentAddress": null,
                        "permanentCity": null,
                        "permanentPinCode": null,
                        "correspondenceCity": null,
                        "correspondencePinCode": null,
                        "correspondenceAddress": null,
                        "active": true,
                        "dob": 0,
                        "pwdExpiryDate": 1706888228000,
                        "locale": null,
                        "type": "CITIZEN",
                        "signature": null,
                        "accountLocked": false,
                        "roles": [
                            {
                                "id": null,
                                "name": "FSM Driver",
                                "code": "FSM_DRIVER",
                                "tenantId": "pg.citya"
                            },
                            {
                                "id": null,
                                "name": "FSM Driver",
                                "code": "FSM_DRIVER",
                                "tenantId": "pg"
                            }
                        ],
                        "fatherOrHusbandName": "pintu",
                        "relationship": "OTHER",
                        "bloodGroup": null,
                        "identificationMark": null,
                        "photo": null,
                        "createdBy": "715",
                        "createdDate": 1699013642000,
                        "lastModifiedBy": "715",
                        "lastModifiedDate": 1700827360000,
                        "otpReference": null,
                        "tenantId": "pg"
                    },
                    "ownerId": "fc688f84-6b5c-4da5-ae69-3580d3d81fc6",
                    "additionalDetails": null,
                    "description": null,
                    "licenseNumber": "12345678999995",
                    "status": "DISABLED",
                    "auditDetails": {
                        "createdBy": "4a747fc5-6a8c-4645-8748-fec35f1b9e17",
                        "lastModifiedBy": "4a747fc5-6a8c-4645-8748-fec35f1b9e17",
                        "createdTime": 1698993428899,
                        "lastModifiedTime": 1700807560471
                    },
                    "vendorDriverStatus": "ACTIVE"
                }
            ],
            "workers": [
                {

                    "id": "f3104f07-9b62-460d-8b9c-e16a4b6c740f",
                    "tenantId": "pg.citya",
                    "vendorId": "ea138945-f35b-42a3-96af-9ded096fb809",
                    "individualId": "IND-2023-11-23-010844",
                    "additionalDetails": null,
                    "auditDetails": {
                        "createdBy": "4a747fc5-6a8c-4645-8748-fec35f1b9e17",
                        "lastModifiedBy": "4a747fc5-6a8c-4645-8748-fec35f1b9e17",
                        "createdTime": 1700801118082,
                        "lastModifiedTime": 1700803699721
                    },
                    "vendorWorkerStatus": "ACTIVE"
                },
                {
                    "individualId":"IND-2023-11-23-010831",
                    "vendorWorkerStatus":"ACTIVE"
                }

            ],
            "additionalDetails": {
                "description": ""
            },
            "source": "WhatsApp",
            "description": null,
            "ownerId": "31b14828-1c46-42bb-9364-8f456509c375",
            "agencyType": "ULB",
            "paymentPreference": "post-service",
            "status": "ACTIVE",
            "auditDetails": {
                "createdBy": "4a747fc5-6a8c-4645-8748-fec35f1b9e17",
                "lastModifiedBy": "4a747fc5-6a8c-4645-8748-fec35f1b9e17",
                "createdTime": 1700801118082,
                "lastModifiedTime": 1700806527779
            }
        },
    "RequestInfo": {
        "apiId": "Rainmaker",
        "authToken": "4ff28c82-654f-4403-9f2d-8547b9c35687",
        "userInfo": {
            "id": 715,
            "uuid": "4a747fc5-6a8c-4645-8748-fec35f1b9e17",
            "userName": "ADMIN",
            "name": "ADMIN",
            "mobileNumber": "9035169725",
            "emailId": "",
            "locale": null,
            "type": "EMPLOYEE",
            "roles": [
                {
                    "name": "FSM Administrator",
                    "code": "FSM_ADMIN",
                    "tenantId": "pg.citya"
                }
            ],
            "active": true,
            "tenantId": "pg.citya",
            "permanentCity": "CityA"
        },
        "msgId": "1700732793623|en_IN",
        "plainAccessRequest": {}
    }
}'
```

Role Action Mapping

Role Action mapping is done for the above three endpoints for FSM_ADMIN role

FSM_ADMIN

TQM UI/UX Audit

Text
Type
Estimation( in hrs)
Assignee
Comments
Status
Gaps (if any)
Reviewed by Andrew

Check left padding for all forms

Improvement

1

Done

Y

Border colour of the view test screen

Improvement

0.5

Done

Y

Result summary bold in view test screen

Improvement

0.1

Done

Y

Back button and help label spacing in the help screen

Improvement

0.1

Done

Y

Powered by DIGIT in sidebar at the bottom

Improvement

0.1

Done

Y

Truck icon change

Improvement

0.5

Done

Y

Role details: Remove colon, and values should not be bold

Improvement

0.1

Done

Y

Pending tasks text color change

Improvement

0.1

Done

Y

Left and right spacing of the notification cards to be equal

Improvement

0.1

Done

Y

The font size for notification subheads to be checked

Improvement

0.1

Done

Y

Empty state for notifications should be according to Figma

Improvement

0.5

Done

Y

Once notifications are cleared for the user, it should not appear when the page is refreshed

Improvement

Backend changes required. Will be done in patch.

View past test results to be left aligned to the icon

Improvement

0.1

Done

Y

On refreshing the page, the input filtered view should remain intact

Improvement

Done

Y

All cards and table to have 4px radius

Improvement

0.5

Done

Y

Spacing between the quality testing icon and text

Improvement

0.1

Done

Y

Width of the column to be increased and the proportion of row height should match Figma

Improvement

0.1

Done

Y

In some test results, the timeline connecting line is missing

Improvement

1

Done

Y

Notifications cards to be responsive

Improvement

1

Done

Y

Submit CTA does not work

Improvement

1

Done

Y

No toast validations on submitting

Improvement

0.5

Done

Y

The placement of the logout popup should be higher

Improvement

0.5

Done

Y

Test date localisation missing

Improvement

0.1

Done

Y

Background image to be changed

Improvement

0.5

In plants dropdown, the hover states should extend to the edges

Improvement

0.5

Done

Y

Inbox rows are not actionable

Improvement

1

Done

Y

Alerts - heading alignment

Improvement

0.5

Done

Y

Inner padding of

cards

Improvement

0.5

Done

Y

Share dropdown should close on clicking outside

Improvement

0.5

Done

Y

Size and alignment of buttons to be fixed

Improvement

1

Done

Y

Localisation missing for CTAs

Improvement

0.5

Done

Y

Once filters are applied, the filters should be retained while re-opening filters as well

Enhancement

Need enhancement in core components. Will be done in patch.

TODO

Need enhancement in core components.

Sort filters should be retained

Enhancement

Need enhancement in core components. Will be done in patch.

TODO

Need enhancement in core components.

On sorting the date column, the filters should also change

Enhancement

Need enhancement in core components. Will be done in patch.

TODO

Need enhancement in core components.

Filter card on the side should be sort

Enhancement

Need enhancement in core components. Will be done in patch.

TODO

Need enhancement in core components.

Garima Release Notes

Overview

  • The urban-rural convergence is an initiative that aims to ensure access to sanitation services to all gram panchayats (GPs) via urban local bodies (ULBs) located closest to them.

  • A ULB employee creates applications to cater to the sanitation needs of local communities in urban areas. In the same way, they should also cater to the same sanitation needs of rural bodies near that urban region.

  • They need a provision in a system while creating a new application to either choose local municipalities or urban-supported villages.

  • Based on their choice they would be able to select either a locality/mohalla or a GP area from the respective master data drop-down list.

  • The caveat here is that if a ULB employee chooses GP, then the trip amount field should be editable where he/she can fill in any logical amount based on the offline calculation instead of the auto-calculated amount already there in an application in the case of urban bodies.

  • ULB employees or DSO operators should also be able to edit the number of trips. The final amount should be multiple of the initial amount entered into an application with the number of trips.

Logical Data Flow

UI/UX Wireframe

Technical Components & Design

  • Update the MDMS data: boundary-data.json

    - Add a new children hierarchy for GP under city which will be parallel to locality. A sample MDMS is attached below:

  • By default, the 'Urban' option will be pre-selected in the radio button in the above wireframe and the drop-down will have the locality/mohalla master data. If an employee selects “ULB supported village”, then the locality/mohalla drop-down will be replaced by GPs and village drop-down data on the fly.

  • The system will use the below URL to fetch the localities or GPs and their corresponding villages.

    - In the case of localities, one needs to pass boundaryType as “Locality”.

    • https://dev.digit.org/egov-location/location/v11/boundarys/_search?hierarchyTypeCode=REVENUE&boundaryType=Locality&tenantId=pb.amritsar

    - In the case of GP/villages, one needs to pass the boundaryType as “GP”.

    • https://dev.digit.org/egov-location/location/v11/boundarys/_search?hierarchyTypeCode=REVENUE&boundaryType=GP&tenantId=pb.amritsar

  • Introduction of a new string column (boundary_type) in the FSM_APPLICATION table to capture (locality or GP) to determine if the application created is for rural or not so that in the near future it will be helpful for the analytics and statistics in dashboards.

    - The default value for this column will be locality to support backward compatibility

  • Adding a vehicle log would also have the option to select urban (default option) or rural. If rural gets selected the text name of an element would be replaced from 'locality' to “Gram Panchayat” for a text field.

  • Introduction of a new column of string type (boundary_type) in the vehicle_trip table to capture if the vehicle log is created for the GP or not.

    - The default value for this column will be Locality to support backward compatibility.

Sample MDMS

boundary-data.json

{
    "tenantId": "pb.amritsar",
    "moduleName": "egov-location",
    "TenantBoundary": [{
        "hierarchyType": {
          "code": "REVENUE",
          "name": "REVENUE"
        },
        "boundary": {
          "id": 1,
          "boundaryNum": 1,
          "name": "Angul",
          "localname": "Angul",
          "longitude": null,
          "latitude": null,
          "label": "City",
          "code": "od.angul",
          "children": [{
              "id": "2",
              "boundaryNum": 1,
              "name": "Baniabahal",
              "localname": "Baniabahal",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL1"
            },
            {
              "id": "3",
              "boundaryNum": 1,
              "name": "Hulurisinga",
              "localname": "Hulurisinga",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL2"
            },
            {
              "id": "4",
              "boundaryNum": 1,
              "name": "Angul town",
              "localname": "Angul town",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL3"
            },
            {
              "id": "5",
              "boundaryNum": 1,
              "name": "Other",
              "localname": "Other",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL4"
            },
            {
              "id": 6,
              "boundaryNum": 1,
              "name": "GP 1",
              "localname": "GP1",
              "longitude": null,
              "latitude": null,
              "label": "GP",
              "code": "GP1",
              "children": [{
                  "id": 11,
                  "boundaryNum": 1,
                  "name": "Village 1",
                  "localname": "Village local 1",
                  "longitude": 74.871552,
                  "latitude": 31.63089,
                  "label": "Village",
                  "code": "SUN04",
                  "pincode": [143001],
                  "area": "V-Area1",
                  "children": []
                },
                {
                  "id": 12,
                  "boundaryNum": 1,
                  "name": "Village 2",
                  "localname": "Village local 2",
                  "longitude": null,
                  "latitude": null,
                  "label": "Village",
                  "code": "SUN11",
                  "pincode": [143001],
                  "area": "V-Area1",
                  "children": []
                }
              ]
            },
            {
              "id": 8,
              "boundaryNum": 1,
              "name": "GP 2",
              "localname": "GP2",
              "longitude": null,
              "latitude": null,
              "label": "GP",
              "code": "GP2",
              "children": [{
                  "id": 13,
                  "boundaryNum": 1,
                  "name": "Village 3",
                  "localname": "Village local 3",
                  "longitude": 74.871552,
                  "latitude": 31.63089,
                  "label": "Village",
                  "code": "SUN04",
                  "pincode": [143001],
                  "area": "V-Area1",
                  "children": []
                },
                {
                  "id": 14,
                  "boundaryNum": 1,
                  "name": "Village 4",
                  "localname": "Village local 4",
                  "longitude": null,
                  "latitude": null,
                  "label": "Village",
                  "code": "SUN11",
                  "pincode": [143001],
                  "area": "V-Area1",
                  "children": []
                }
              ]
            }
          ]
        }
      },
      {
        "hierarchyType": {
          "code": "ADMIN",
          "name": "ADMIN"
        },
        "boundary": {
          "id": 1,
          "boundaryNum": 1,
          "name": "Angul",
          "localname": "Angul",
          "longitude": null,
          "latitude": null,
          "label": "City",
          "code": "od.angul",
          "children": [{
              "id": "2",
              "boundaryNum": 1,
              "name": "Baniabahal",
              "localname": "Baniabahal",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL1"
            },
            {
              "id": "3",
              "boundaryNum": 1,
              "name": "Hulurisinga",
              "localname": "Hulurisinga",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL2"
            },
            {
              "id": "4",
              "boundaryNum": 1,
              "name": "Angul town",
              "localname": "Angul town",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL3"
            }
          ]
        }
      }
    ]
  }

UrcConfig.json

To enable URC feature in the UI:

{
    "tenantId": "pg.angul",
    "moduleName": "FSM",
    "urcConfig": [
        {
            "URCEnable": true,
            "villageHierarchyAvailable": true
        }
    ]
}
  • We are keeping the locality hierarchy under the city as it is [No change there]. And the ‘location api’ with boundaryType as 'locality' will be used the same way it's being called currently to get the localities. Below are the API details: https://dev.digit.org/egov-location/location/v11/boundarys/_search?hierarchyTypeCode=REVENUE&boundaryType=Locality&tenantId=pb.amritsar Response:

{
    "ResponseInfo": {
        "apiId": "org.egov.boundary",
        "ver": null,
        "ts": "",
        "resMsgId": "uief87324",
        "msgId": null,
        "status": "200 OK"
    },
    "TenantBoundary": [
        {
            "hierarchyType": {
                "id": null,
                "name": "REVENUE",
                "code": "REVENUE",
                "localName": null,
                "tenantId": null,
                "createdBy": null,
                "createdDate": null,
                "lastModifiedBy": null,
                "lastModifiedDate": null,
                "version": 0,
                "new": false
            },
            "boundary": [
                {
                    "code": "VIL1",
                    "name": "Baniabahal",
                    "label": "Locality",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": []
                },
                {
                    "code": "VIL2",
                    "name": "Hulurisinga",
                    "label": "Locality",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": []
                },
                {
                    "code": "VIL3",
                    "name": "Angul town",
                    "label": "Locality",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": []
                },
                {
                    "code": "VIL4",
                    "name": "Other",
                    "label": "Locality",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": []
                }
            ],
            "tenantId": "pb.amritsar"
        }
    ]
}
  • To get a list of gram panchayats and corresponding villages, pass the boundaryType as 'GP'. Below are the API details: https://dev.digit.org/egov-location/location/v11/boundarys/_search?hierarchyTypeCode=REVENUE&boundaryType=GP&tenantId=pb.amritsar

{
    "ResponseInfo": {
        "apiId": "org.egov.boundary",
        "ver": null,
        "ts": "",
        "resMsgId": "uief87324",
        "msgId": null,
        "status": "200 OK"
    },
    "TenantBoundary": [
        {
            "hierarchyType": {
                "id": null,
                "name": "REVENUE",
                "code": "REVENUE",
                "localName": null,
                "tenantId": null,
                "createdBy": null,
                "createdDate": null,
                "lastModifiedBy": null,
                "lastModifiedDate": null,
                "version": 0,
                "new": false
            },
            "boundary": [
                {
                    "code": "GP1",
                    "name": "GP 1",
                    "label": "GP",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": [
                        {
                            "code": "SUN04",
                            "name": "Village 1",
                            "label": "Village",
                            "latitude": "31.63089",
                            "longitude": "74.871552",
                            "area": "V-Area1",
                            "pincode": [
                                143001
                            ],
                            "boundaryNum": 1,
                            "children": []
                        },
                        {
                            "code": "SUN11",
                            "name": "Village 2",
                            "label": "Village",
                            "latitude": null,
                            "longitude": null,
                            "area": "V-Area1",
                            "pincode": [
                                143001
                            ],
                            "boundaryNum": 1,
                            "children": []
                        }
                    ]
                },
                {
                    "code": "GP2",
                    "name": "GP 2",
                    "label": "GP",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": [
                        {
                            "code": "SUN04",
                            "name": "Village 3",
                            "label": "Village",
                            "latitude": "31.63089",
                            "longitude": "74.871552",
                            "area": "V-Area1",
                            "pincode": [
                                143001
                            ],
                            "boundaryNum": 1,
                            "children": []
                        },
                        {
                            "code": "SUN11",
                            "name": "Village 4",
                            "label": "Village",
                            "latitude": null,
                            "longitude": null,
                            "area": "V-Area1",
                            "pincode": [
                                143001
                            ],
                            "boundaryNum": 1,
                            "children": []
                        }
                    ]
                }
            ],
            "tenantId": "pb.amritsar"
        }
    ]
}

DB Details

Table Name

Column Name

Comments

eg_fsm_application

boundarytype

To capture (locality or GP) to determine if the application created is for rural or not based on the radio button selection.

eg_fsm_address

additionaldetails.gramPanchayat

To store the selected GP while creating an application.

eg_fsm_address

additionaldetails.village

To store the selected village while creating an application.

eg_vehicle_trip

boundarytype

To capture (locality or GP) if the vehicle log is created for GP or not.

Functional Impact

To analyse the impact, we deployed a different module (property tax) which points to the same boundary-data mdms.

Expectation:

For FSM Module: Non-URC flow: The locality drop-down should show all the localities as it is (there should be no impact). URC flow: The gram panchayat and village drop-down should show as per the new GP and village added to the MDMS.

For Property Tax Module: The locality drop-down should show all the localities as it is (there should be no impact).

Property Tax Screen:

The locality dropdown in property tax displays the values from the existing location hierarchy itself (there is no impact).

Employee Flow

SUJOG FSM (NON-URC)

In FSM, for non-URC, the locality drop-down shows the values from the existing hierarchy itself (there is no impact)..

SUJOG FSM (URC)

  • GP drop-down In the case of FSM (URC), the gram panchayat and village drop-downs are showing values from the new hierarchy we have configured in the existing MDMS.

  • Village Dropdown

  • Pricing

    • Pricing per trip will be entered by “ULB employees” for each request.

    • ULB employees will have a free text entry field to enter the price for a request.

FSTP Flow

In FSTP, there are two scenarios -

  1. Selects a gram panchayat from drop-down but the village is not in the list. In this case, select 'other' in the village and a free text field appears.

  2. Select 'other' in the GP list. In this case, 2 free text fields appear - one for GP and one for village.

If the locality or GP is located outside the city, then select “Outside ULB Limits” and provide the locality/gram panchayat name in the text field.

Citizen flow

Dashboard - URC Charts:

Description

In the dashboard, add the following chart:

  1. Add pie chart: Applications by source

    1. Pie chart value: Ratio of applications from GP: Ratio of requests from urban areas.

    2. Add toggle for applications and sludge.

    3. Pie chart value: Ratio of sludge disposed from GP: Ratio of sludge from urban areas.

    4. Tooltip: Show total applications and total sludge (See design). Tooltip value to be responsive to toggle between unit, lakh, and crore.

    5. The chart should filter based on the period, district, ULB (dashboard filters).

    6. The chart should have export, share, and download options.

  2. Add bar chart: Number of applications per month from the GP.

    1. Bar chat value: The total number of applications from the GP.

    2. Add toggle for applications and sludge disposed.

    3. Tooltip: Show the total applications and total sludge (See design). Tooltip value to be responsive to toggle between unit, lakh, and crore.

    4. The chart should filter based on the period, district, ULB (dashboard filters).

    5. The chart should have export, share, and download options.

Gate 2 Checklist

Sl No
Checklist
Yes/No/Partially
Reference link
Owner
Reviewer
Remarks

User Interface Design

The user interface (UI) design is broken up into the following sections:

  1. Login

  2. Raise a Desludging Request

  3. View Applications

  4. Accept Applications

  5. Payments

  6. Assign Desludging Operator

  7. Assign Vehicle

  8. Complete Request

  9. Rate Services

  10. Manage Vendor, Driver and Vehicle Details

1. Login

Citizen Login

Find the mock-ups below:

Language Selection

When the user opens the application, it first asks them to select the language. The selected language is highlighted in orange color. Once the user selects a language, he/she must click on the ‘Continue’ button which opens the login page.

Location Selection

Users are redirected to this screen once they select the preferred language in the previous screen. The city field is a list with radio buttons based on the tenants that are configured in the instance, and the selected radio button is highlighted in orange. The selection of the city will determine the urban local body (ULB) where the application request is raised.

Once the user selects a location and clicks on continue, the user is redirected to the following screen:

The mobile number entered in the application is for all communication purposes. All SMS communication will be sent to the user on the entered number. A user can also access the history of all past and active transactions using this number. The next button will only be deactivated and will be highlighted once the user has entered a valid number. An error message will be displayed if the number is not 10 digits, or alphabets/special characters are entered.

On clicking ‘Next’, an OTP will be sent to the user, and the user will be redirected to the following screen:

The screen will prompt the user to enter the OTP sent to the registered mobile number. A counter will be displayed on the screen with a countdown on the number of seconds pending post which the OTP has be re-quested. After 30 seconds, a resend button will be visible to the user. The next button will only be deactivated and will be highlighted once the user has entered an OTP. On clicking ‘Next’, the user will be redirected to the FSM landing page. On entering the incorrect OTP, the user will see an error message that says “Invalid OTP”.

Employee Login

Language Selection

When the user opens the application, it asks them to first select the language. The selected language is highlighted in orange color. Once the user selects a language, he/she must click on the ‘Continue’ button which opens the login page.

Login

The user will be provided with a unique system-generated ID and password manually for login.

For an incorrect password, it should show the message “incorrect password” below the password field. If an existing user does not remember his/her password, they must click on “Forgot Password”. This will open a pop-up asking the user to contact the administrator. The ‘OK’ button will collapse the pop-up.

The city field is a dropdown based on the tenets created in the instance. Once all fields are filled, the user can click on ‘Continue’. If any field is not filled, the user will be prompted to fill all fields.

2. Raise a Desludging Request

Citizen Interface

A landing page is available to a citizen on login.

Applying for a Desludging Request

The citizen can apply for desludging requests by clicking on “Apply for Emptying Septic Tank/Pit”. This will redirect the user to the service request page.

The user is prompted to enter the “No. of Trips” and the “Vehicle Capacity”. If the user knows the details, he/she can enter the details and click on ‘Next’. If not, the user also has the option to “Skip and Continue”.

Once the user clicks on ‘Next’, the user is redirected to “Choose Property Type”. A workflow on the top will show the user in which step of the request form he/she is. The radio button for the selected property type will be highlighted with orange. The next button will only be deactivated and will be highlighted once the user has selected a property type.

Based on the property type selected, an information box is displayed to the user informing them about the approximate cost of desludging. On clicking next, the user is prompted to “Choose Property Sub-Type”:

The radio button for the selected property type will be highlighted in orange. The next button will only be deactivated and will be highlighted once the user has selected a property type.

The user is prompted to select the pincode for the property location using the map or search a location using the search bar. The user can also drag the point on the map to the selected location. If the user knows the pin location, he/she can enter the details and click on ‘Next’. If not, the user also has the option to “Skip and Continue”. If the pin location is not selected, the user is redirected to enter the pincode.

The user can enter a 7-digit pincode. If any alphabets/special characters are entered, the user will be prompted with an invalid pincode error. If the user knows the pincode, he/she can enter the details and click on ‘Next’. If not, the user also has the option to “Skip and Continue”.

After this, the user will be redirected to the property address page and he/she will have to select a city and a mohalla. Both of these are dropdowns. The city dropdown is populated based on the tenants created in the system. The list of localities/mohallas will be from the MDMS. The next button will be deactivated and will be highlighted once the user has filled in the details. Once a property address is provided, the user is asked to select whether the property is a slum.

The radio button for the selected option will be highlighted in orange. The next button will only be deactivated and will be highlighted once the user has selected an option. If yes is selected, the user will be redirected to enter the slum name.

The slum name can be selected from a dropdown. The next button will only be deactivated and will be highlighted once the user has selected a slum name. On clicking ‘Next’, the user is redirected to the property address screen.

After this, the user will be redirected to the property address page where he/she will have to enter the “Street Name” and “Door/House No”. The ‘Next’ button will be deactivated and will be highlighted once the user has filled in the details. Once a property address is provided, the user is asked to provide a landmark.

The landmark can be entered by typing in the text box. If the user knows the landmark, he/she can enter the details and click on ‘Next’. If not, the user also has the option to “Skip and Continue”.

The user will be prompted to “Choose Pit type”. The radio button for the selected option will be highlighted in orange. If the user knows the pit type, he/she can enter the details and click on ‘Next’. If not, the user also has the option to “Skip and Continue”.

The user will be prompted to “Upload Pit Photos” by clicking on the camera icon. Once the button is clicked on, the user can choose the camera or select a photo from the gallery. If the user has the photo, he/she can upload the photo and click on ‘Next’. If not, the user also has the option to “Skip and Continue”.

The user will be asked to select gender. The radio button for the selected option will be highlighted in orange. If the user wants to declare their gender, the user can select from Male/Female/Transgender/Others, and click on ‘Next’. If not, the user also has the option to “Skip and Continue”.

The user is redirected to the “Payment Details” page. If an advance has been configured in the backend by the ULB, the advance amount is displayed on the screen. The user can enter the advance amount. If an amount below the advance amount is entered, then an error is displayed. To confirm, the user can click on ‘Next’. The user is then prompted to “Check the Answers”.

A change option is displayed beside each answer. In case the user wants to edit any details, the user can click on the change button and the user will be redirected to that part of the workflow. If not, the user can click on ‘Submit’.

The user is displayed a confirmation message for application submission along with an application number. A download button can be used to download the application receipt as displayed below. The user can also go back home by clicking on the “Go back to home page” button.

Employee Interface

A landing page is available to the ULB employee on login.

Applying for a Desludging Request

The employee can apply for desludging requests on behalf of the citizen by clicking on “New Desludging Request”. This will redirect the user to a form.

The user is prompted to enter the mandatory and non mandatory fields. The “Amount per Trip”, “Total Amount” and “Advance Collection” fields are empty, and will be autopopulated once the “Property Type, “Property Sub-type”, “No. of Trips” and “Vehicle Capacity” are filled.

The following validations will be present in the page:

  1. Mobile number to be 10 digits and cannot be alphanumeric or contain special characters.

  2. Advance amount edited cannot be greater than total amount or lesser than minimum amount.

The submit button is greyed out and will only show as active when all mandatory fields are filled.

Once the user submits the form, the user is redirected to a confirmation page. The confirmation page will display a unique application number. A download option to download the application receipts displayed below is also available. The user can go back to the landing page using the “Go Back to Home” button.

3. View Applications

Citizen Interface

A citizen can view his/her applications by redirecting to “My Applications” from their landing page.

The “My Applications” page lists down all the ongoing applications and will display the Application No., Service Category and Application Status. A view button will be made available along with each application. Once the user clicks on ‘View’, they are redirected to the following page:

The user can view all details of the application on the screen. There is an option to download the application receipt and payment receipts using the Download button.

The application timeline below the application shows the history of the application along with details of the date when the workflow step was completed. If the application is in the “Pending for Payment”, the same will be displayed and a corresponding link will be displayed in the “Application Timeline”.

Similarly, if the application is in the “Pending Citizen Feedback” stage, the same will be displayed and a corresponding link will be displayed in the “Application Timeline”.

Employee Interface

To view the applications, an employee can navigate to the inbox from the Landing page. The inbox shows a list of all active applications along with their SLAs.

The user can search for an active application using “Application No.” and “Mobile No.” and click on search. This will return the application with the corresponding “Application Number” or the list of applications with the corresponding mobile number. The user can further filter applications based on the criteria on the left hand side, that is, Locality or Status.

To view Past Applications, the user can navigate to Search Applications. Here, users can search for both Active and past applications with the following fields: Application Number, Mobile Number, Status and Locality. On clicking on an application number, the user is redirected to the Application details page.

The user can view all details of the application on the screen. The application timeline below the application shows the history of the application along with details of the date when the workflow step was completed.

4. Accept Applications

The ULB employee can accept and update application details when a citizen has raised a request or rejected it.

This can be done by clicking on the “Update Application” button. Details such as locality, number of trips and capacity will be displayed. Clicking on “Update application” will update the status of the application as “Pending for Payment”.

Clicking on “Reject Application’ will reject the application and the user will be prompted to select a reason for rejection and click on submit. Once the application is updated, it will move to pending for payment status if advance payment is applicable.

5. Payments

Citizen Interface

If the application is on the “Payment Pending” stage, the user will have the option to make a payment from the “View Applications” page.

The user can make a payment by clicking on the “Make Payment” button. The user is redirected to the bill details page which displays the total, advance, and due amount.

Here, the amount due is prefilled and displayed to the user. If the user is aligned, they can proceed by clicking on “Proceed to Pay”.

All payment methods available and configured will be available here as radio buttons. The selected radio button will be filled in orange to display the selection. The user also receives an intimation that they will be redirected to a third-party site. On completion of the payment, the user is redirected to a payment confirmation page. A ‘Print’ receipt option is available to download the payment receipt.

Employee Interface

Desludging applications pending payment is accessible in the inbox of the user assigned the collector role. The status of the application is reflected in the status column.

By clicking on the application number, the user can view application details.

The user will be able to view details of the application along with details of the Amount Per Trip, Total Amount, and amount to be collected. The application details will also display the status as “Pending for Payment”. The user can proceed to collect payment by clicking on the “Collect Payment” button and the user will be redirected to the “Collect Payment” page.

The user will see information about the amount to be collected and further will be required to fill the following information:

  1. Payer Name

  2. Payer Phone number

Additionally, the user will be prompted to select the payment mode using radio buttons. The selected radio button will be highlighted in orange. If the user is getting a physical receipt, then the receipt number can be recorded under the Gen/G8 receipt details.

On clicking the submit button, the user is redirected to the payment confirmation screen. The user can download the payment receipt using the ‘Print’ receipt button or go back to the landing page using the “Take Action” button.

6. Assign Desludging Operator

Once the payment (if any) is collected, the ULB employee can assign a desludging operator. Applications where DSO needs to be assigned will be shown as “Pending for DSO Assignment” in the inbox.

By clicking on the application number, the user can view application details.

The user can start the process of assigning a DSO by clicking on the “Assign DSO” button. This will display the following pop-up to the user:

The user can select the DSO via a dropdown. The list of DSOs is populated by matching the vehicle capacity requested to the DSOs with vehicles with the required capacity. An expected date of completion is to be selected. Once all fields are filled, the user can assign the selected DSO. An error message will be displayed if a field is left blank. The user can also go back to the application details page by clicking on the ‘Close’ button.

Once the user clicks on ‘Assign’, the status in the workflow timeline will reflect “Pending for DSO Approval”. For any reason, if the DSO is unavailable to service the request, the request can be reassigned to another DSO. This can be done by clicking on the “Take Action” button and clicking on reassign DSO.

The same fields need to be filled as that for “Assign DSO”. However, the user is required to select a reason for rejection from a list preconfigured in the backend. An error message will be displayed if a field is left blank. On re-assigning a DSO, the user is displayed a snack bar with confirmation.

The user can also go back to the application details page by clicking on the ‘Close’ button.

7. Assign Vehicle

A vehicle can be assigned by both the ULB and the DSO (or basis roles configured) when the application is in the “Pending for DSO Approval” stage. By clicking on the application number, the user can view application details.

The user can start the process of assigning a vehicle by clicking on the “Assign Vehicle” button. This will display the following pop-up to the user.

The user can select the “Vehicle no.” via a dropdown. The list of vehicles is populated by matching the vehicle capacity requested with the required capacity. The vehicle capacity and number of trips are displayed on the pop-up. An error message will be displayed if the vehicle registration number field is left blank. The user can also go back to the application details page by clicking on the ‘Close’ button.

Once the user clicks on ‘Assign”, the status in the Workflow timeline will reflect the “DSO InProgress” stage.

At any point during service, the DSO or ULB can update the number of trips. This can be done by clicking on the “Take Action” button and selecting the “Update/Schedule Trips” option.

The user can increase or decrease the number of trips by clicking on the plus or minus sign. The number of trips will increase or decrease and be displayed based on the user's action. The user can confirm the updated number of trips by clicking on the Update/Schedule button. The user can also go back to the application details page by clicking on the ‘Close’ button.

A snack bar will confirm the updated number of trips.

8. Complete Request

Once the service request has been completed and all pending payments have been collected, the same has to be confirmed in the system. This can be done by selecting the “Complete Request” button in the “Take Action” button. On clicking on “Complete Request”, the following pop-up is displayed:

The user is required to fill in the following details:

  1. Date of Service (selected from a calendar)

  2. Volume of Waste collected

Additionally, the user can add optional details such as Pit Type and Pit Dimensions and upload a photo of the Pit. An error message will be displayed if all mandatory fields are not filled.

The user can confirm the completion by clicking on the ‘Completed’ button. The user can also go back to the application details page by clicking on the ‘Close’ button.

9. Rate Services

if the application is on the Payment Pending stage, the user will have the option to make a payment from the “View Applications” page.

On clicking on ‘View’, the user is redirected to the application details page. The workflow timeline will reflect that the application is pending citizen feedback and a clickable “Rate Us” option is displayed to the user.

Once the user clicks on rate us, the user will be redirected to the following page:

The user can provide feedback by selecting one out of 5 stars and selecting safety gears used via a multi-select box. If either of these fields is not filled, the user is displayed an error when clicking on the submit button. Additional comments may be added by the user.

On clicking the submit button, the user will be redirected to a confirmation page. The user can use the ‘Download’ button to download any payment or acknowledgement receipts from the users.

Manage Vendor, Driver and Vehicle Details

The FSM Registry allows for the following actions from the frontend for a particular urban local body (ULB):

  • Add new driver, vehicle, vendor

  • Edit driver, vehicle, vendor details

  • Enable and disable drivers, vehicles and vendors

  • Tag driver and vehicle to vendors.

The user can access the ULB registry by clicking on the FSM Registry link in the landing page.

View Vendor List

The landing page of the FSM registry is defaulted to show the list of vendors in the system. A particular vendor can be searched for by entering the Vendor name in the search bar. Search can be cleared by clicking on the “Clear Search” button.

The user can view the number of associated total and active vehicles and drivers against a vendor. The user can view the details of the tagged vehicles and drivers by clicking on the number. The user can enable/disable the vendor using the toggle.

Add a Vendor

A new vendor, vehicle or driver can be added by clicking on the plus button on the top right of the page.

On clicking the plus button, the user will be prompted to select whether he/she/it/they/them want to add a Vendor, Driver or Vehicle. To add a new Vendor, the user can click on Vendor and the user will be redirected to the “Add Vendor” page.

A new vendor can be added by entering details such as Vendor Name, personal details, including Gender, Date of Birth, Email and Phone number and Address details such as Door No, Pincode and landmark. Each vendor is created with a unique mobile number and hence, an error message will be displayed if the mobile number has been used to create other vendors. An error message will be displayed if all mandatory fields are not filled.

The user can confirm the completion by clicking on the ‘Submit’ button. The user can also go back to the FSM Registry landing page by using the breadcrumbs.

Once the user submits an application, a snack bar will confirm the successful addition of a vendor and details of the added vendor will be displayed in the vendor list.

View and Edit Vendor Details

Vendor details can be viewed by clicking on the vendor name. This will display details such as name, number and address. Details of vehicles and drivers tagged to the vendor will be visible on the screen. The user can go back to the FSM Registry landing page by using the breadcrumbs.

Vendor details can be edited by clicking on the “Take Action" button and selecting edit. Add or edit information and click on “Submit Application”. The changes will reflect on the vendor details page.

A vendor can be deleted by clicking on the “Take Action” button and selecting delete.

A pop-up will be displayed for confirmation. The user can confirm delete by clicking on ‘Delete’ or go back to the vendor details by clicking on ‘Cancel’.

On clicking delete, the user will be redirected to the FSM registry landing page and a snack bar will be displayed confirming that the vendor has been deleted.

Tagging Vehicles and Drivers to a Vendor

Multiple vehicles can be tagged to a vendor. It is necessary that a vehicle exists in the system before it can be tagged. A vehicle can be tagged to a vendor by clicking on the “Add Vehicle” button in the vendor details page.

A pop-up will be displayed with a dropdown to select a vehicle. Only vehicles that are not tagged to any vendor are to be displayed. The user can select the vehicle number and click on submit or go back to the vendor details page by clicking on close.

The added vehicle details will be displayed. The vehicle can be untagged from the vendor by clicking on the delete button against the vehicle details.

Multiple drivers can be tagged to a vendor. It is necessary that a driver exists in the system before it can be tagged. A driver can be tagged to a vendor by clicking on the “Add Driver” button in the vendor details page.

A pop-up will be displayed with a dropdown to select a driver. Only drivers that are not tagged to any vendor will be displayed. The user can select the driver name and click on submit or go back to the vendor details page by clicking on close.

The added driver details will be displayed. The driver can be untagged from the vendor by clicking on the delete button against the driver details.

View Vehicle List

To view the list of Vehicles, the user can navigate to the Vehicle tab from the FSM Registry landing page.

The user can view the creation date, tagged vendor and status for a vehicle in this page. A particular vehicle can be searched for by entering the vehicle number in the search bar. Search can be cleared by clicking on “Clear Search”. Vehicles can be sorted by creation date, by clicking on the arrow beside the column heading. The user can enable/disable the vehicle using the toggle.

Add a Vehicle

To add a new vehicle, the user can click on vehicle near the plus button and the user will be redirected to the “Add Vehicle” page.

A new vehicle can be added by entering details such as Vehicle Registration number, Model, Type, Capacity, details of pollution certificate, insurance and road tax. Each vehicle is created with a unique registration number and hence, an error message will be displayed if the registration number has been used to create other vehicles. An error message will be displayed if all mandatory fields are not filled.

The user can confirm the completion by clicking on the ‘Submit’ Button. The user can also go back to the FSM Registry landing page by using the breadcrumbs. Once the user submits an application, a snack bar will confirm the successful addition of a vehicle.

Details of the added vehicle will be displayed in the vehicle list.

View and Edit Vehicle Details

Vehicle details can be viewed by clicking on the vehicle name. This will display details such as the registration number, vehicle type, make, model, capacity etc. The vendor that the vehicle is tagged to and whether it is active is also displayed in the details.

Vehicle details can be edited by clicking on the “Take Action” button and selecting edit. Add or edit information and click on submit application. The changes will reflect in the vehicle details page.

A vehicle can be deleted by clicking on the “Take Action” button and selecting delete.

A pop-up will be displayed for confirmation. The user can click on delete to confirm to cancel to go back to vehicle details. The vehicle will be deleted.

Tagging a Vehicle to a Vendor

Apart from tagging a vehicle to a vendor from the vendor details page, tagging can also be done from the vehicle details page by clicking on the add vendor button. The tagging can be edited by clicking on the edit icon beside Vendor name, in case a vendor is already added.

A pop-up will be displayed with a dropdown to select a vendor. The user can select the vendor and click on submit or go back to the vehicle details page by clicking on ‘Cancel’.

The added vendor details will be displayed. The vehicle can be untagged from the vendor by clicking on the delete button against the vendor name. The edit (pencil) button allows you to change the vendor tagging.

View Driver List

To view the list of drivers, the user can navigate to the drivers tab.

The user can view the creation date, tagged vendor, and status for a driver in this page. A particular driver can be searched for by entering the driver name in the search bar. Search can be cleared by clicking on “Clear Search”.

Drivers can be sorted by creation date, by clicking on the arrow beside the column heading. The user can enable/disable the vehicle using the toggle. The user can change the tagging of the Vendor by using the drop down in the “Vendor Name” column.

Add a Driver

To add a new driver, the user can click on Driver from the plus button and the user will be redirected to the “Add Driver” page.

A new driver can be added by entering details such as Driver Name, and License number. Each vehicle is created with a unique license number and hence, an error message will be displayed if the license number has been used to create other vehicles. An error message will be displayed if all mandatory fields are not filled.

The user can confirm the completion by clicking on the ‘Submit’ button. The user can also go back to the FSM Registry landing page by using the breadcrumbs. Once the user submits an application, a snack bar will confirm the successful addition of a driver. Details of the added driver will be displayed in the driver list.

View and Edit Driver Details

Driver details can be viewed by clicking on the driver name. This will display details such as the Name, phone number and license number. The vendor that the driver is tagged to is also displayed in the details.

Driver details can be edited by clicking on the “Take Action” button and selecting edit. The user can add or edit information and click on submit application. The changes will reflect in the driver details page.

A driver can be deleted by clicking on the “Take Action” button and selecting delete.

A pop-up will be displayed for confirmation. The user can click on delete to confirm or view driver details by clicking on cancel. The vehicle will be deleted.

Tagging a Driver to a Vendor

Method 1: Apart from tagging a driver to a vendor from the vendor details page, tagging can also be done from the driver details page by clicking on the add new vendor button.

A pop-up will be displayed with a dropdown to select a vendor. The user can select the vendor and click on submit or go back to the driver details page by clicking on ‘Cancel’.

The added vendor details will be displayed. The vehicle can be untagged from the vendor by clicking on the delete button against the vendor name. The edit (pencil) button allows you to change the vendor tagging.

sl.no
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nabeel Md
Nipun Arora
Nipun Arora
Nipun Arora
Nipun Arora

1

Development is completed for all the features that are part of the release.

Yes

Technical Release Summary

@ Pritish.Rath

Code was frozen by 10-01-2024.

2

Test cases are documented by the QA team, and reviewed by the product owners, and test results are updated in the test cases sheet.

Yes

TestCases for FSM v1.4

All test cases are reviewed by the Product Owner and results have been updated in the sheet. QA sign-off is given accordingly.

3

The incremental demo of the features showcased during the sprint showcase and feedback is incorporated. If possible, list out the JIRA tickets for feedback.

Yes

Demo Link for SW

Demo given on 20-12-2023 for PQM, and 02-01-2024 for Sanitation Worker.

4

UI/UX audit review by UX architect is completed along with feedback incorporation for any changes in UI/UX.

Yes

UI/UX Audit Sheet

Nipun AroraNabeel Md

@ AndrewJones

UI/UX audit is done and review comments are incorporated.

5

Incremental demos to the product owners are completed as part of the sprint and feedbacks are incorporated.

Yes

Demo Link for SW

Demo given on 20-12-2023 for PQM, and 02-01-2024 for Sanitation Worker.

6

QA sign-off is completed by the QA team and communicated to the product owners. All the tickets' QA sign-off status is updated in JIRA.

Yes

Test cases for FSM v1.4

All test cases are reviewed by the Product Owner and QA sign-off is given accordingly.

7

UI, API technical documents are updated for the release along with the configuration documents.

Yes

UI documentation for PQM and Sanitation Worker

Nipun AroraNabeel Md

8

UAT promotion and regression testing from the QA team is completed. QA team has shared the UAT regression test cases with the product owners.

Yes

Test cases for FSM v1.4

All test cases are reviewed by the Product Owner.

9

API automation scripts are updated for new APIs or changes to any existing APIs for the release. API automation regression is completed on UAT, the automation test results are analysed, and necessary actions are taken to fix the failure cases. Publish the list of failure use cases with a reason for failure and the resolution taken to fix these failures for the release.

Yes

ULB User: Search, Create, Update PQM Service: Adhoc Create, Search, Update PQM Quality Criteria

Plant User: Search, Create, Update

Automation script is reviewed by the Tech Lead.

10

The API backward compatibility testing is completed.

Yes

Tested on 05-JAN-2024.

11

The communication is shared with the product owners for the completion of UAT promotion and regression by the QA team. The product owners have to give a product sign-off within one week of this communication.

Yes

UAT sign-off was completed. Sign-off dates 10th JAN 2024 for PQM and Sanitation Worker Welfare.

12

The UAT product sign-off communication is received from the product owners along with the release notes and user guides (if applicable).

Yes

Release Notes

UAT sign-off was completed. Sign-off dates 10th April 2023 for PQM and Sanitation Worker Welfare.

13

The GIT tags and releases are created for the code changes for the release.

Yes

Service Build Update

Added a new git tag V1.4

14

Verify whether the release notes are updated.

Yes

Release Notes

15

Verify whether all UAT builds are updated along with the GIT tag details.

Yes

Service Build Update

All the budils are added with release tag V1.4

16

Verify whether all MDMS, configs, InfraOps configs are updated.

Yes

Mdms Changes, Config Changes

17

Verify whether all docs will be published to http://sanitation.digit.org by the Technical Writer as part of the release.

Yes

Link

18

Verify whether all test cases are up to date and updated along with necessary permissions to view the test cases sheet. The test cases sheet is verified by the Test Lead.

Yes

Test cases for FSM v1.4

19

Verify whether the UAT credentials sheet is updated with the details of new users and roles, if any.

Yes

UAT Credential Sheet

20

Verify whether all the localisation data was added in UAT, including Hindi, and updated in the release kits.

Yes

Localisation

All localisations added as part of the release.

21

Verify whether the product release notes and user guides are updated and published.

Yes

Release Notes

22

The demo of the released features is done by the product team as part of the sprint/release showcase.

Yes

Demo Link

Product showcase done on 10-01-2024 by

23

Technical and product workshops/demos are conducted by the engineering and product teams to the implementation team (Implementation handover).

Yes

TQM Sanitation Worker

Technical and product handover to impel conducted on 24-11-2023, and 04-01-2024. Signoff on handover is given on 11-01-2024

24

Architect sign-off and technical quality report.

Yes

Technical Release Summary

@Pritish.Rath

Signed off on 02-Jan-2024.

25

Success metrics and product roadmap.

Yes

Link

26

Adoption metrics.

Yes

Link

27

Programme roll-out plan.

Yes

Link

28

Implementation checklist.

Yes

Impel checklist

29

Implementation roll-out plan.

Yes

TQM Roll-out Plan

30

Gate 2

31

The internal release communication along with all the release artefacts are shared by the engineering/product teams.

32

Plan for upgrading the staging/demo instance with the release product - within 2-4 weeks based on the period where no demos are planned from staging for the previous version of the released product.

33

The release communication to partners is shared by the GTM team and the webinar is arranged by the GTM team after the release communication - within 2-4 weeks of the release.

URC Release Notes

Overview

  • The urban-rural convergence is an initiative that aims to ensure access of sanitation services to all Gram Panchayats(GPs) via Urban Local Bodies (ULBs) located closest to them.

  • As a ULB employee, They are creating applications to cater the sanitation needs of local communities in Urban areas. The same way they should also cater the same sanitation needs to rural bodies which are nearby to that urban region.

  • They need a provision into a system while creating a new application to either choose local municipalities or urban supported villages.

  • Based on their choice they would be able to select either locality/mohalla or Gram Panchayat(GP) area from the respective master data drop down list.

  • The caveat here is if an ULB employee chooses GP then the trip amount field should be an editable field where he/she can fill any logical amount based on their own offline calculation instead of auto calculated amount that is already there in an application in case of Urban bodies.

  • ULB employees or DSO Operation should also be able to edit the no. of trips and the final amount should be multiple of the initial amount entered into an application with no. of trips.

Logical Data Flow

UI/UX Wireframe

Technical Components & Design

  • Need to update mdms data: boundary-data.json

    • Need to add a new children hierarchy for GP under City which will be parallel to Locality. A sample MDMS is attached below in this document.

  • By Default “Urban” option will be pre-selected in the radio button in the above wireframe and the drop-down will have the locality/mohalla master data. In case if employee selects “ULB supported village” then the locality/mohalla dropdown will be replaced by GPs and Village drop-down data on the fly.

  • System will use the below URL to fetch the localities or GPs and their corresponding villages.

    • In the case of localities, need to pass boundaryType as “Locality”.

      • https://dev.digit.org/egov-location/location/v11/boundarys/_search?hierarchyTypeCode=REVENUE&boundaryType=Locality&tenantId=pb.amritsar

    • In the case of GP/villages, need to pass the boundaryType as “GP”.

      • https://dev.digit.org/egov-location/location/v11/boundarys/_search?hierarchyTypeCode=REVENUE&boundaryType=GP&tenantId=pb.amritsar

  • Introduction of a new string column (boundary_type) in the FSM_APPLICATION table to capture (Locality or GP) to determine if the application created is for RURAL or not so that in the near future it will be helpful for the analytics and statistics in Dashboards.

    • Default value for this column will be Locality to support backward compatibility

  • Add Vehicle log would also have the option to select Urban (Default option) or Rural. If Rural gets selected the text name of an element would be replaced from “Locality” to “Gram Panchayat” for a text field.

  • Introduction of a new column of string type (boundary_type) in vehicle_trip table to capture if the vehicle log is created for GP or not.

    • Default value for this column will be Locality to support backward compatibility.

Sample MDMS

boundary-data.json

{
    "tenantId": "pb.amritsar",
    "moduleName": "egov-location",
    "TenantBoundary": [{
        "hierarchyType": {
          "code": "REVENUE",
          "name": "REVENUE"
        },
        "boundary": {
          "id": 1,
          "boundaryNum": 1,
          "name": "Angul",
          "localname": "Angul",
          "longitude": null,
          "latitude": null,
          "label": "City",
          "code": "od.angul",
          "children": [{
              "id": "2",
              "boundaryNum": 1,
              "name": "Baniabahal",
              "localname": "Baniabahal",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL1"
            },
            {
              "id": "3",
              "boundaryNum": 1,
              "name": "Hulurisinga",
              "localname": "Hulurisinga",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL2"
            },
            {
              "id": "4",
              "boundaryNum": 1,
              "name": "Angul town",
              "localname": "Angul town",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL3"
            },
            {
              "id": "5",
              "boundaryNum": 1,
              "name": "Other",
              "localname": "Other",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL4"
            },
            {
              "id": 6,
              "boundaryNum": 1,
              "name": "GP 1",
              "localname": "GP1",
              "longitude": null,
              "latitude": null,
              "label": "GP",
              "code": "GP1",
              "children": [{
                  "id": 11,
                  "boundaryNum": 1,
                  "name": "Village 1",
                  "localname": "Village local 1",
                  "longitude": 74.871552,
                  "latitude": 31.63089,
                  "label": "Village",
                  "code": "SUN04",
                  "pincode": [143001],
                  "area": "V-Area1",
                  "children": []
                },
                {
                  "id": 12,
                  "boundaryNum": 1,
                  "name": "Village 2",
                  "localname": "Village local 2",
                  "longitude": null,
                  "latitude": null,
                  "label": "Village",
                  "code": "SUN11",
                  "pincode": [143001],
                  "area": "V-Area1",
                  "children": []
                }
              ]
            },
            {
              "id": 8,
              "boundaryNum": 1,
              "name": "GP 2",
              "localname": "GP2",
              "longitude": null,
              "latitude": null,
              "label": "GP",
              "code": "GP2",
              "children": [{
                  "id": 13,
                  "boundaryNum": 1,
                  "name": "Village 3",
                  "localname": "Village local 3",
                  "longitude": 74.871552,
                  "latitude": 31.63089,
                  "label": "Village",
                  "code": "SUN04",
                  "pincode": [143001],
                  "area": "V-Area1",
                  "children": []
                },
                {
                  "id": 14,
                  "boundaryNum": 1,
                  "name": "Village 4",
                  "localname": "Village local 4",
                  "longitude": null,
                  "latitude": null,
                  "label": "Village",
                  "code": "SUN11",
                  "pincode": [143001],
                  "area": "V-Area1",
                  "children": []
                }
              ]
            }
          ]
        }
      },
      {
        "hierarchyType": {
          "code": "ADMIN",
          "name": "ADMIN"
        },
        "boundary": {
          "id": 1,
          "boundaryNum": 1,
          "name": "Angul",
          "localname": "Angul",
          "longitude": null,
          "latitude": null,
          "label": "City",
          "code": "od.angul",
          "children": [{
              "id": "2",
              "boundaryNum": 1,
              "name": "Baniabahal",
              "localname": "Baniabahal",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL1"
            },
            {
              "id": "3",
              "boundaryNum": 1,
              "name": "Hulurisinga",
              "localname": "Hulurisinga",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL2"
            },
            {
              "id": "4",
              "boundaryNum": 1,
              "name": "Angul town",
              "localname": "Angul town",
              "longitude": null,
              "latitude": null,
              "label": "Locality",
              "code": "VIL3"
            }
          ]
        }
      }
    ]
  }

UrcConfig.json

To enable URC feature in UI

{
    "tenantId": "pg.angul",
    "moduleName": "FSM",
    "urcConfig": [
        {
            "URCEnable": true,
            "villageHierarchyAvailable": true
        }
    ]
}
  • We are keeping the Locality hierarchy under the City as it is [No change there]. And the ‘location api’ with boundaryType as “Locality” will be used the same way it's being called currently to get the localities. Below are the api details: https://dev.digit.org/egov-location/location/v11/boundarys/_search?hierarchyTypeCode=REVENUE&boundaryType=Locality&tenantId=pb.amritsar Response:

{
    "ResponseInfo": {
        "apiId": "org.egov.boundary",
        "ver": null,
        "ts": "",
        "resMsgId": "uief87324",
        "msgId": null,
        "status": "200 OK"
    },
    "TenantBoundary": [
        {
            "hierarchyType": {
                "id": null,
                "name": "REVENUE",
                "code": "REVENUE",
                "localName": null,
                "tenantId": null,
                "createdBy": null,
                "createdDate": null,
                "lastModifiedBy": null,
                "lastModifiedDate": null,
                "version": 0,
                "new": false
            },
            "boundary": [
                {
                    "code": "VIL1",
                    "name": "Baniabahal",
                    "label": "Locality",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": []
                },
                {
                    "code": "VIL2",
                    "name": "Hulurisinga",
                    "label": "Locality",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": []
                },
                {
                    "code": "VIL3",
                    "name": "Angul town",
                    "label": "Locality",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": []
                },
                {
                    "code": "VIL4",
                    "name": "Other",
                    "label": "Locality",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": []
                }
            ],
            "tenantId": "pb.amritsar"
        }
    ]
}
  • To get a List of Gram Panchayats and corresponding villages, we will pass boundaryType as “GP”. Below are the api details: https://dev.digit.org/egov-location/location/v11/boundarys/_search?hierarchyTypeCode=REVENUE&boundaryType=GP&tenantId=pb.amritsar

{
    "ResponseInfo": {
        "apiId": "org.egov.boundary",
        "ver": null,
        "ts": "",
        "resMsgId": "uief87324",
        "msgId": null,
        "status": "200 OK"
    },
    "TenantBoundary": [
        {
            "hierarchyType": {
                "id": null,
                "name": "REVENUE",
                "code": "REVENUE",
                "localName": null,
                "tenantId": null,
                "createdBy": null,
                "createdDate": null,
                "lastModifiedBy": null,
                "lastModifiedDate": null,
                "version": 0,
                "new": false
            },
            "boundary": [
                {
                    "code": "GP1",
                    "name": "GP 1",
                    "label": "GP",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": [
                        {
                            "code": "SUN04",
                            "name": "Village 1",
                            "label": "Village",
                            "latitude": "31.63089",
                            "longitude": "74.871552",
                            "area": "V-Area1",
                            "pincode": [
                                143001
                            ],
                            "boundaryNum": 1,
                            "children": []
                        },
                        {
                            "code": "SUN11",
                            "name": "Village 2",
                            "label": "Village",
                            "latitude": null,
                            "longitude": null,
                            "area": "V-Area1",
                            "pincode": [
                                143001
                            ],
                            "boundaryNum": 1,
                            "children": []
                        }
                    ]
                },
                {
                    "code": "GP2",
                    "name": "GP 2",
                    "label": "GP",
                    "latitude": null,
                    "longitude": null,
                    "area": null,
                    "pincode": null,
                    "boundaryNum": 1,
                    "children": [
                        {
                            "code": "SUN04",
                            "name": "Village 3",
                            "label": "Village",
                            "latitude": "31.63089",
                            "longitude": "74.871552",
                            "area": "V-Area1",
                            "pincode": [
                                143001
                            ],
                            "boundaryNum": 1,
                            "children": []
                        },
                        {
                            "code": "SUN11",
                            "name": "Village 4",
                            "label": "Village",
                            "latitude": null,
                            "longitude": null,
                            "area": "V-Area1",
                            "pincode": [
                                143001
                            ],
                            "boundaryNum": 1,
                            "children": []
                        }
                    ]
                }
            ],
            "tenantId": "pb.amritsar"
        }
    ]
}

DB Details

Table Name

Column Name

Comments

eg_fsm_application

boundarytype

to capture (Locality or GP) in order to determine if the application created is for RURAL or not based on the radio button selection

eg_fsm_address

additionaldetails.gramPanchayat

To store the selected GP while creating an application.

eg_fsm_address

additionaldetails.village

To store the selected village while creating an application.

eg_vehicle_trip

boundarytype

to capture (Locality or GP) if the vehicle log is created for GP or not.

Functional Impact

To analyze the impact, we deployed a different module(property tax) which is also pointing to same boundary-data mdms.

Expectation:

For FSM Module: Non-URC flow : Locality dropdown should show all the localities as it is. [There should be no impact] URC flow : GramPanchayat and Village dropdown should show as per new GP and village added to the MDMS.

For Property Tax Module: Locality dropdown should show all the localities as it is. [There should be no impact]

Property Tax Screen

The locality dropdown in Property tax is displaying the values from existing location hierarchy itself. NO IMPACT.

EMPLOYEE FLOW :

SUJOG FSM (NON-URC)

In FSM, for non-URC the locality dropdown is showing values from the existing hierarchy itself. [NO IMPACT]

SUJOG FSM (URC)

  • GP Dropdown In case of FSM(URC), the grampanchayat and village dropdown are showing values from the new hierarchy we have configured in the existing mdms.

  • Village Dropdown

  • Pricing

    • Pricing per trip will be entered by “ULB employees” for each request

    • ULB employee will have a free text entry field to enter price for a request.

FSTP FLOW :

In FSTP,there are two scenerios -

  1. Selects a Gram panchayat from drop down but village is not in the list. In this case, Selects other in village and a free text field appears.

  2. Selects 'other' in GP list. In this case, 2 free text fields appear - one for GP and one for Village.

If the locality or GP is located outside the city,then select “Outside ULB Limits” and provide Locality / Grama Panchayat name in text field.

CITIZEN FLOW :

Dashboard - URC Charts :

Description

In the dashboard, add the following chart:

  1. Add pie chart: Applications by Source

    1. Pie Chart Value: Ratio of Applications from GP: Ratio of requests from Urban Areas

    2. Add toggle for Applications and Sludge

    3. Pie Chart Value: Ratio of Sludge Disposed from GP: Ratio of Sludge from Urban Areas

    4. Tooltip: Show Total Applications and Total Sludge (See design). Tooltip value to be responsive to toggle between Unit, Lac and Crore

    5. Chart should filter basis time period, district, ulb (dashboard filters)

    6. Chart should have export, share and download options.

  2. Add Bar chart: No. of applications per month from Gram Panchayat

    1. Bar Chat Value: Total Number of applications from Gram Panchayat

    2. Add toggle for Applications and Sludge Disposed

    3. Tooltip: Show Total Applications and Total Sludge (See design). Tooltip value to be responsive to toggle between Unit, Lac and Crore

    4. Chart should filter basis time period, district, ulb (dashboard filters)

    5. Chart should have export, share and download options.

REFERENCE DOCS :

https://drive.google.com/drive/folders/1kXiz2-95M1raWNujmGAshI2okYvwMtUg?usp=drive_link

Dependency services of the FSM module

  1. FSM Service Faecal sludge management (FSM) is a system that enables citizen to raise a request for septic tank cleaning with there ULB’s directly or indirectly reaching out to ULB counter. Citizen can track the application, make a payment for the charges and rate the service. Actions & Role Action Mapping : Add Role-Action mapping for the API’s in MDMS. Following are the required entries. They should be mapped to both CITIZEN and appropriate employee roles.

  • MDMS Actions & Role Action Mapping for FSM

  • :

API List

  1. FSM Calculator Service

  • FSM Calculator is a system that enables FSM Admin to create billing slab for the FSM application(s) with different combination of propertyType , slum , tank capacity and etc..

  • MDMS Actions & Role Action Mapping for FSM Calculator:

  • :

API List

  1. Vendor Service

Vendor Registry is a system that enables ULBEmployees to create and search Vendor i.e Desluding Operator (DSO) and driver entities with appropriate vehicle Entities for FSM Application. This document contains the details about how to setup the Vendor and describe the functionalities provided.

  • MDMS Actions & Role Action Mapping for Vendor

API List

  1. Vehicle Service

Vehicle Registry is a system that enables ULB Employees to create and search Vehicle Entities and schedule Vehicle Trip for FSM Application and track the VehicleTrip.

  • MDMS Actions & Role Action Mapping for Vendor

API List

{
    "id": {{PLACEHOLDER1}},
    "name": "Create FSM Application",
    "url": "/fsm/v1/_create",
    "displayName": "Apply FSM",
    "orderNumber": 0,
    "enabled": false,
    "serviceCode": "FSM",
    "code": "null",
    "path": ""
  },
  {
    "id":  {{PLACEHOLDER2}},
    "name": "Search FSM Application",
    "url": "/fsm/v1/_search",
    "displayName": "Search  FSM Appliacations",
    "orderNumber": 1,
    "enabled": false,
    "serviceCode": "FSM",
    "code": "null",
    "path": ""
  },
  {
    "id": {{PLACEHOLDER3}},
    "name": "Update FSM Application",
    "url": "/fsm/v1/_update",
    "displayName": "Update FSM",
    "orderNumber": 0,
    "enabled": false,
    "serviceCode": "FSM",
    "code": "null",
    "path": ""
  },
  {
    "id": {{PLACEHOLDER4}},
    "name": "FSM Application Charge Payment Search",
    "url": "/collection-services/payments/FSM.TRIP_CHARGES/_search",
    "displayName": "FSM Application Charge Payment Search",
    "orderNumber": 1,
    "parentModule": "",
    "enabled": false,
    "serviceCode": "",
    "code": "null",
    "path": ""
  },
  {
    "id": {{PLACEHOLDER5}},
    "name": "FSM Application Audit Search",
    "url": "/fsm/v1/_audit",
    "displayName": "FSM Application Audit serach",
    "orderNumber": 1,
    "parentModule": "",
    "enabled": false,
    "serviceCode": "",
    "code": "null",
    "path": ""
  }, 
  {
    "id": {{PLACEHOLDER7}},
    "name": "Create FSTP FSTPOperator Mapping",
    "url": "/fsm/plantmap/v1/_create",
    "displayName": "Create FSTP FSTPOperator Map",
    "orderNumber": 0,
    "enabled": false,
    "serviceCode": "FSM",
    "code": "null",
    "path": ""
  },
  {
    "id": {{PLACEHOLDER8}},
    "name": "Update FSTP FSTPOperator Mapping",
    "url": "/fsm/plantmap/v1/_update",
    "displayName": "Update FSTP FSTPOperator Map",
    "orderNumber": 0,
    "enabled": false,
    "serviceCode": "FSM",
    "code": "null",
    "path": ""
  },
  {
    "id": {{PLACEHOLDER9}},
    "name": "Search FSTP FSTPOperator Mapping",
    "url": "/fsm/plantmap/v1/_search",
    "displayName": "Search FSTP FSTPOperator Map",
    "orderNumber": 0,
    "enabled": false,
    "serviceCode": "FSM",
    "code": "null",
    "path": ""
  },
  {
    "id": {{PlaceHolder10}},
    "name": "Inbox Search ofr uI",
    "url": "/inbox/v1/_search",
    "displayName": "Inbox Search",
    "orderNumber": 0,
    "enabled": false,
    "serviceCode": "inbox",
    "code": "null",
    "path": ""
  }
 

displayName

Roles

Create FSM Application

CITIZEN, FSM_CREATOR_EMP, FSM_SWACHH_SATHI

Search FSM Application

CITIZEN,FSM_DSO,FSM_CREATOR_EMP,FSM_SWACHH_SATHI,FSM_EDITOR_EMP,FSM_ADMIN,FSM_DSO,FSM_DRIVER,FSM_COLLECTOR,FSM_VIEW_EMP,FSM_EMP_FSTPO

Update FSM Application

CITIZEN,FSM_EDITOR_EMP,FSM_ADMIN,FSM_DSO,FSM_DRIVER

FSM Application Charge Payment Search

FSM_ADMIN,FSM_DSO,FSM_DRIVER,FSM_COLLECTOR,FSM_EDITOR_EMP,CITIZEN,FSM_VIEW_EMP

FSM Application Audit Search

CITIZEN, FSM_CREATOR_EMP, FSM_EDITOR_EMP, FSM_VIEW_EMP, FSM_ADMIN, FSM_DSO, FSM_DRIVER, FSM_EMP_FSTPO, FSM_COLLECTOR

Create FSTP FSTPOperator Mapping

FSM_ADMIN

Update FSTP FSTPOperator Mapping

FSM_ADMIN,FSM_EMP_FSTPO

Search FSTP FSTPOperator Mapping

CITIZEN

Inbox Search ofr uI

FSM_EMP_FSTPO,FSM_COLLECTOR,FSM_EDITOR_EMP,FSM_VIEW_EMP,FSM_CREATOR_EMP,FSM_ADMIN,FSM_DSO

Title

Link

/fsm/v1/_create

https://www.getpostman.com/collections/a51486db12539a2aa597

/fsm/v1/_update

https://www.getpostman.com/collections/a51486db12539a2aa597

/fsm/v1/_search

https://www.getpostman.com/collections/a51486db12539a2aa597

/fsm/v1/_audit

https://www.getpostman.com/collections/a51486db12539a2aa597

/fsm/v1/_plainsearch

https://www.getpostman.com/collections/a51486db12539a2aa597

/fsm/plantmap/v1/_create

https://www.getpostman.com/collections/a51486db12539a2aa597

/fsm/plantmap/v1/_update

https://www.getpostman.com/collections/a51486db12539a2aa597

/fsm/plantmap/v1/_search

https://www.getpostman.com/collections/a51486db12539a2aa597

/inbox/v1/_search

https://www.getpostman.com/collections/a51486db12539a2aa597

/fsm/v1/_schedular

https://www.getpostman.com/collections/a51486db12539a2aa597

[
      {
        "id": {{PLACEHOLDER1}},
        "name": "FSM BillingSlab Create",
        "url": "/fsm-calculator/v1/billingSlab/_create",
        "displayName": "FSM BillingSlab Create",
        "orderNumber": 1,
        "parentModule": "",
        "enabled": false,
        "serviceCode": "",
        "code": "null",
        "path": ""
      },
      {
        "id": {{PLACEHOLDER2}},
        "name": "FSM BillingSlab Update",
        "url": "/fsm-calculator/v1/billingSlab/_update",
        "displayName": "FSM BillingSlab Update",
        "orderNumber": 1,
        "parentModule": "",
        "enabled": false,
        "serviceCode": "",
        "code": "null",
        "path": ""
      },
      {
        "id": {{PLACEHOLDER3}},
        "name": "FSM BillingSlab Search",
        "url": "/fsm-calculator/v1/billingSlab/_search",
        "displayName": "FSM BillingSlab Search",
        "orderNumber": 1,
        "parentModule": "",
        "enabled": false,
        "serviceCode": "",
        "code": "null",
        "path": ""
      }
    ]

displayName

Roles

FSM BillingSlab Create

SUPERUSER,FSM_ADMIN

FSM BillingSlab Update

FSM_CREATOR_EMP,FSM_EDITOR_EMP,FSM_ADMIN,FSM_DSO,SUPERUSER

FSM BillingSlab Search

FSM_CREATOR_EMP,FSM_EDITOR_EMP,FSM_DSO,CITIZEN,SUPERUSER

Title

Link

fsm-calulator/v1/_calculate

https://www.getpostman.com/collections/8b9eb951a810486f41a4

fsm-calculator/v1/_estimate

https://www.getpostman.com/collections/8b9eb951a810486f41a4

fsm-calculator/v1/billingSlab/_create

https://www.getpostman.com/collections/8b9eb951a810486f41a4

fsm-calculator/v1/billingSlab/_update

https://www.getpostman.com/collections/8b9eb951a810486f41a4

fsm-calculator/v1/billingSlab/_search

https://www.getpostman.com/collections/8b9eb951a810486f41a4

fsm-calculator/v1/_cancellationfee

https://api.postman.com/collections/23418568-77e3f5fb-dd9d-4f05-92e7-b15dcbeecffe?access_key=PMAT-01GN93ZP6B68E0T5TZ62GR02W0

fsm-calculator/v1/_advancebalancecalculate

https://api.postman.com/collections/23418568-77e3f5fb-dd9d-4f05-92e7-b15dcbeecffe?access_key=PMAT-01GN93ZP6B68E0T5TZ62GR02W0

{
      "id": {{PLACEHOLDER1}},
      "name": "Create Vendor/DSO",
      "url": "/vendor/v1/_create",
      "displayName": "Create Vehicle",
      "orderNumber": 0,
      "enabled": false,
      "serviceCode": "vendor",
      "code": "null",
      "path": ""
},
{
      "id": {{PLACEHOLDER2}},
      "name": "Search Vendor/DSO",
      "url": "/vendor/v1/_search",
      "displayName": "Search  Vendor",
      "orderNumber": 1,
      "enabled": false,
      "serviceCode": "vendor",
      "code": "null",
      "path": ""
},
{
  "id": {{PLACEHOLDER6}},
  "name": "Update Vendor/DSO",
  "url": "/vendor/v1/_update",
  "displayName": "Update Vendor",
  "orderNumber": 0,
  "enabled": false,
  "serviceCode": "vendor",
  "code": "null",
  "path": ""
},

{
  "id": {{PLACEHOLDER3}},
  "name": "Vendor Driver Create",
  "url": "/Vendor/driver/v1/_create",
  "displayName": "Vendor Driver Create",
  "orderNumber": 1,
  "parentModule": "",
  "enabled": false,
  "serviceCode": "vendor",
  "code": "null",
  "path": ""
},
{
  "id": {{PLACEHOLDER4}},
  "name": "Vendor Driver Update",
  "url": "/Vendor/driver/v1/_update",
  "displayName": "Vendor Driver Update",
  "orderNumber": 1,
  "parentModule": "",
  "enabled": false,
  "serviceCode": "vendor",
  "code": "null",
  "path": ""
},
{
  "id": {{PLACEHOLDER5}},
  "name": "Vendor Driver Search",
  "url": "/Vendor/driver/v1/_search",
  "displayName": "Vendor Driver Search",
  "orderNumber": 1,
  "parentModule": "",
  "enabled": false,
  "serviceCode": "vendor",
  "code": "null",
  "path": ""
}

Actions

Roles

Create Vendor/DSO

SUPERUSER,FSM_ADMIN

Search Vendor/DSO

FSM_ADMIN,FSM_DSO,FSM_EDITOR_EMP,FSM_VIEW_EMP,FSM_EMP_FSTPO,CITIZEN,FSM_COLLECTOR,FSM_CREATOR_EMP,FSM_REPORT_VIEWER,FSM_DASHBOARD_VIEWERFSM_DRIVER,FSM_CREATOR_EMP,SUPERUSER

Update Vendor/DSO

FSM_EMP_FSTPO,FSM_ADMIN,SUPERUSER

Vendor Driver Create

FSM_ADMIN,FSM_CREATOR_EMP,FSM_DSO,FSM_EDITOR_EMP,FSM_VIEW_EMP,FSM_EMP_FSTPO

Vendor Driver Update

FSM_ADMIN,FSM_CREATOR_EMP,FSM_DSO,FSM_EDITOR_EMP,FSM_VIEW_EMP,FSM_EMP_FSTPO

Vendor Driver Search

FSM_ADMIN,FSM_CREATOR_EMP,FSM_DSO,FSM_EDITOR_EMP,FSM_VIEW_EMP,FSM_EMP_FSTPO

Title

Link

/vendor/v1/_create

https://api.postman.com/collections/23418568-17e45900-5801-462d-a6b1-2cf108b37c8d?access_key=PMAT-01GMQRX9YME11ZQKFV30QW4AP0

/vendor/v1/_search

https://api.postman.com/collections/23418568-17e45900-5801-462d-a6b1-2cf108b37c8d?access_key=PMAT-01GMQRX9YME11ZQKFV30QW4AP0

/vendor/v1/_plainsearch

https://www.getpostman.com/collections/c79e98843bcdcc873d09

/vendor/v1/_update

https://api.postman.com/collections/23418568-17e45900-5801-462d-a6b1-2cf108b37c8d?access_key=PMAT-01GMQRX9YME11ZQKFV30QW4AP0

/vendor/driver/v1/_create

https://api.postman.com/collections/23418568-17e45900-5801-462d-a6b1-2cf108b37c8d?access_key=PMAT-01GMQRX9YME11ZQKFV30QW4AP0

/vendor/driver/v1/_update

https://api.postman.com/collections/23418568-17e45900-5801-462d-a6b1-2cf108b37c8d?access_key=PMAT-01GMQRX9YME11ZQKFV30QW4AP0

/vendor/driver/v1/_search

https://api.postman.com/collections/23418568-17e45900-5801-462d-a6b1-2cf108b37c8d?access_key=PMAT-01GMQRX9YME11ZQKFV30QW4AP0

 {
    "id": {{PLACEHOLDER1}},
    "name": "Create Vehicle Application",
    "url": "/vehicle/v1/_create",
    "displayName": "Create Vehicle",
    "orderNumber": 0,
    "enabled": false,
    "serviceCode": "vehicle",
    "code": "null",
    "path": ""
  },
  {
    "id":  {{PLACEHOLDER2}},
    "name": "Search Vehicle Application",
    "url": "/vehicle/v1/_search",
    "displayName": "Search  Vehicle",
    "orderNumber": 1,
    "enabled": false,
    "serviceCode": "vehicle",
    "code": "null",
    "path": ""
  },
  {
    "id": {{PLACEHOLDER3}},
    "name": "Vehicle Trip Search",
     "url": "/vehicle/trip/v1/_search",
    "displayName": "Vehicle Trip Search",
    "orderNumber": 1,
    "parentModule": "",
    "enabled": false,
    "serviceCode": "",
    "code": "null",
    "path": ""
  },
  {
    "id": {{PLACEHOLDER4}},
    "name": "Vehicle Trip Update",
     "url": "/vehicle/trip/v1/_update",
    "displayName": "Vehicle Trip Update",
    "orderNumber": 1,
    "parentModule": "",
    "enabled": false,
    "serviceCode": "",
    "code": "null",
    "path": ""
  },
  {
    "id": {{PLACEHOLDER5}},
    "name": "Vehicle Trip Create",
    "url": "/vehicle/trip/v1/_create",
    "displayName": "Vehicle Trip Create",
    "orderNumber": 1,
    "parentModule": "",
    "enabled": false,
    "serviceCode": "vehicle",
    "code": "null",
    "path": ""
  },
  {
    "id": {{PLACEHOLDER6}},
    "name": "Update Vehicle Application",
    "url": "/vehicle/v1/_update",
    "displayName": "Update Vehicle",
    "orderNumber": 0,
    "enabled": false,
    "serviceCode": "vehicle",
    "code": "null",
    "path": ""
  }

displayName

Roles

Create Vehicle Application

FSM_ADMIN

Search Vehicle Application

FSM_ADMIN,FSM_DSO,FSM_EDITOR_EMP,FSM_VIEW_EMP,FSM_EMP_FSTPO,FSM_CREATOR_EMP

Vehicle Trip Search

FSM_EMP_FSTPO,FSM_EDITOR_EMP,FSM_CREATOR_EMP,FSM_ADMIN

Vehicle Trip Update

FSM_EMP_FSTPO

Update Vehicle Application

FSM_ADMIN

Vehicle Trip Create

FSM_EMP_FSTPO

Title

Link

vehicle/v1/_create

https://www.getpostman.com/collections/6d99bb40022396f848b2

vehicle/v1/_search

https://www.getpostman.com/collections/6d99bb40022396f848b2

/vehicle/v1/_plainsearch

https://www.getpostman.com/collections/6d99bb40022396f848b2

/vehicle/trip/v1/_create

https://www.getpostman.com/collections/4d425d97a5db5ced11b6

vehicle/trip/v1/_update

https://www.getpostman.com/collections/6d99bb40022396f848b2

vehicle/trip/v1/_search

https://www.getpostman.com/collections/6d99bb40022396f848b2

/vehicle/trip/v1/_plainsearch

https://www.getpostman.com/collections/6d99bb40022396f848b2

vehicle/v1/_update

https://api.postman.com/collections/23418568-a15793e6-edeb-4393-a6b8-38fd90deca6f?access_key=PMAT-01GMQPGY7NKF54DP47PEJH6NZG

Role Action Mapping
Role Action Mapping
Role Action Mapping:
Role Action Mapping:

Preparation of MDMS Data for Data Loading

This document shows the preparation of the mdms changes be to done for data loading.

  1. To add data in tenant/tenants.json - For showing the tenant at login screen Sample Data :

DETAILS

DESCRIPTION

DATA FROM ULB

Name of ULB

(E.g.: Berhampur Municipal Corporation or Balasore Municipality or Banki NAC)

ANGUL MUNICIPALITY

ULB Census Code (Optional)

->

PIN codes covered within ULB Boundary (separate by commas)

(Eg.: 759001, 759013)

759122, 759132, 759123, 759143

District Name

->

ANGUL

District Code (Optional)

->

Helpline Phone numbers for Septic tank cleaning

(Write both Landline with Code and Mobile No. if you have, separated by commas.) (Eg.: 0674-234563, 91-9876786543)

14420

ULB's full postal Address

->

AT/PO-AMLAPADA, DIST-ANGUL, PIN-759122

ULB Email Address

->

Example : Create a json for new ulb and Add required details given.

{
    "code": "od.angul",
    "name": "Angul",
    "description": "Angul",
    "logoId": "https://digitaldesksujog051120.blob.core.windows.net/assets/Logos/odlogo.png",
    "imageId": null,
    "domainUrl": "https://sujog.odisha.gov.in",
    "type": "CITY",
    "twitterUrl": null,
    "facebookUrl": null,
    "emailId": "[email protected]",
    "OfficeTimings": {
        "Mon - Fri": "9.00 AM - 6.00 PM",
        "Sat": "9.00 AM - 12.00 PM"
    },
    "pincode": [
        759122,
        759132,
        759123,
        759143
    ],
    "city": {
        "name": "Angul",
        "localName": null,
        "districtCode": "Angul",
        "districtName": "Angul",
        "regionName": "Angul",
        "ulbGrade": "Angul Municipality",
        "longitude": 0,
        "latitude": 0,
        "shapeFileLocation": null,
        "captcha": null,
        "code": "ANG",
        "ddrName": "Angul",
        "wsBillHeaderLine1": "OFFICE OF THE AE/JE",
        "wsBillHeaderLine2": "PUBLIC HEALTH ENGINEERING ORGANIZATION : Angul",
        "districtTenantCode": "od.angul"
    },
    "address": "AT/PO-Amlapada,Dist-Angul, Pin-759122",
    "contactNumber": "",
    "helpLineNumber": "14420"
}
  1. Adding in tenant/citymodule.json - To enable ulb to create application,add new tenant code in FSM module.

    {
        "module": "FSM",
        "code": "FSM",
        "active": true,
        "tenants": [
            {
                "code": "pg.citya"
            },
            {
                "code": "pg.angul"
            }
        ]
    }
  2. Adding FSTP details in FSM/FSTPPlantInfo.json Required Details:

DETAILS

DESCRIPTION

DATA FROM ULB

FSTP Plant Address

->

NUAMAUSA, PANCHAMAHALLA, ANGUL, 759132

B.2. FSTP Installed Capacity in Kilo-Liters

(Eg.: 45 KLD)

18 KLD

B.3. Plant Operation Timing Duration

(Eg.: 09:00 AM - 08:00 PM)

9.00AM-5.00PM

Eg.

{
    "PlantCode": "ANG_001",
    "PlantName": "ANGUL Plant",
    "active": true,
    "PlantType": "SeTP",
    "PlantLocation": "ANGUL",
    "PlusCode": "R3RW+7JQ",
    "PlantOperationalTimings": "09.00am-05.00pm",
    "PlantOperationalCapacityKLD": "18",
    "ULBS": "pg.angul"
}

Field Name

Description

Comments

Plus code

Copy paste the plus code of the plant location

Go to google maps , search for the plant and in the left panel you will have option to copy the plus code of the location.

Plus code is a simple digital address based out of latitude and longitude

Unique Code for Plant

This will be an unique code for the SeTP plant

For example : If the plant is the ANGUL Plant then the there can be 3 alphabets to identify the city "ANG_001 "

001 - is a running sequence number for a state.If the first row is 001 the second row can be 002.

If the second row plant is from PURI then the code can be "PURI_002"

  • Creating Boundary data for Gram Panchayat in ULBNAME/egov-location/boundary-data.json The GP details will be given in Annexure-5,in hierarchyType - REVENUE ,add GP data after locality data. The json format of GP is :

    {
        "id": 6,
        "boundaryNum": 1,
        "name": "GP 1",
        "localname": "GP1",
        "longitude": null,
        "latitude": null,
        "label": "GP",
        "code": "GP1",
        "children": [
            {
                "id": 11,
                "boundaryNum": 1,
                "name": "Village 1",
                "localname": "Village local 1",
                "longitude": 74.871552,
                "latitude": 31.63089,
                "label": "Village",
                "code": "VIL1",
                "pincode": [
                    143001
                ],
                "area": "V-Area1",
                "children": []
            },
            {
                "id": 12,
                "boundaryNum": 1,
                "name": "Village 2",
                "localname": "Village local 2",
                "longitude": null,
                "latitude": null,
                "label": "Village",
                "code": "VIL2",
                "pincode": [
                    143001
                ],
                "area": "V-Area1",
                "children": []
            }
        ]
    },

Example:

{
    "tenantId": "pg.rourkela",
    "moduleName": "egov-location",
    "TenantBoundary": [
        {
            "hierarchyType": {
                "code": "REVENUE",
                "name": "REVENUE"
            },
            "boundary": {
                "id": 1,
                "boundaryNum": 1,
                "name": "Rourkela",
                "localname": "Rourkela",
                "longitude": null,
                "latitude": null,
                "label": "City",
                "code": "pg.rourkela",
                "children": [
                    {
                        "id": "2",
                        "boundaryNum": 1,
                        "name": "Pradhanpalli",
                        "localname": "Pradhanpalli",
                        "longitude": null,
                        "latitude": null,
                        "label": "Locality",
                        "code": "VIL1"
                    },
                    {
                        "id": "3",
                        "boundaryNum": 1,
                        "name": "Other",
                        "localname": "Other",
                        "longitude": null,
                        "latitude": null,
                        "label": "GP",
                        "code": "OTH1",
                        "children": []
                    }
                ]
            }
        }
    ]
}

Steps to create the jsons of GP data -

  • The GP data is given in excel format.

  • Copy all the GP’s list and make an excel with format given below

id

boundaryNum

name

localname

longitude

latitude

label

code

10

1

Kodama

Kodama

null

null

GP

GUD5

11

1

M K Rai

M K Rai

null

null

GP

GUD6

12

1

Madhubana

Madhubana

null

null

GP

GUD7

  • The name and localname is the GP name provided

  • The label is always GP and boundaryNum is 1.

  • Id is unique for each GP and should be in sequential order.

  • Provide a proper format of GP code according to GPname.

  • Convert the excel data into json using excel-json online converter.

  • Add the GP data after locality data in boundary-data.json file .

  • Check the format once,change id into string if it is in integer format.

  • Add "children": [] for each GP separately after converting to json.

  1. Adding Slum Details in ULBNAME/FSM/Slum.json The name of the slums will be provided.The format of slum adding in mdms is:

    {
        "name": "slumname",
        "active": true,
        "code": "CODE001",
        "locality": "VIL1"
    }

Steps To Create the jsons of Slum data : The slum data is provided in excel format.

  • Make an excel with with given format

name

active

code

locality

Adibasi Sahi(Poda khaman)

true

ANAN001

VIL1

Badaharijan Sahi

true

ANAN002

VIL1

  • Add all the slums in name field

  • change the code according to ulb name

  • add locality VIL1 according to boundary-data.

  • convert the excel data into json using excel to json converter.

  • create a folder of a respective tenant and inside it add slum.json file in FSM folder.

  1. Adding New Vehicles in VehicleMakeModel Before pushing the vehicle data,new vehicle should be added in mdms.

Vehicle Make

Eg.: Swaraj, Eicher, Mahindra etc. ->

Mahindra

Vehicle Model

Eg.: Truck, Tractor, Pick Up etc. ->

Truck

GPS Tracker is present in vehicle?

YES or NO ->

No

Cesspool Tank Capacity (in Litres)

->

1000

Eg. new vehicle add

{
    "code": "MAHINDRA",
    "name": "Mahindra",
    "active": true
},
{
    "code": "MAHINDRA.TRUCK",
    "name": "Truck",
    "active": true,
    "make": "MAHINDRA",
    "capacity": "1000"
}

The code should be different for each vehicle and in format make.name .

  1. Billing-slab pricing preparation For adding the rate slabs(pricing) of vehicles,consider different combination of propertyType , slum and tank capacity.

    1. Required combination of property types and Sub-property types added in MDMS :

    2. RESIDENTIAL and RESIDENTIAL.SUB-PROPERTY_TYPE

    3. INSTITUTIONAL and INSTITUTIONAL.SUB-PROPERTY_TYPE

    4. COMMERCIAL and COMMERCIAL.SUB-PROPERTY_TYPE

    5. Sample Data for pricing :

Name of the ULB: (Write in right side box)

Anandapur Municipality

Details

Description

Vehicle-1

Vehicle-2

Cesspool Tank Capacity (in Litres)

->

1000

3000

Per trip Pricing for Residential properties

->

1000

2000

Per trip Pricing for Commercial properties

->

1000

3000

Per trip Pricing for Institutional properties

->

1000

2000

Per trip Pricing for Slum areas

->

800

1500

Steps to make billing-slab data: A. Create an excel file in given format

tenantId

capacityFrom

capacityTo

propertyType

slum

price

status

od.anandapur

0

1000

RESIDENTIAL

YES

1000

ACTIVE

od.anandapur

0

1000

RESIDENTIAL.INDEPENDENT_HOUSE

NO

800

ACTIVE

B. Consider all property types and sub-property type present in mdms with slum YES and with slum NO.

C. for capacity 1000L,the pricing is given as

For slum NO :

  1. RESIDENTIAL and RESIDENTIAL.SUB-PROPERTY_TYPE - 1000

  2. INSTITUTIONAL and INSTITUTIONAL.SUB-PROPERTY_TYPE - 1000

  3. COMMERCIAL and COMMERCIAL.SUB-PROPERTY_TYPE - 1000

For slum YES(Per trip Pricing for Slum areas) :

  1. RESIDENTIAL and RESIDENTIAL.SUB-PROPERTY_TYPE - 800

  2. INSTITUTIONAL and INSTITUTIONAL.SUB-PROPERTY_TYPE - 800

  3. COMMERCIAL and COMMERCIAL.SUB-PROPERTY_TYPE - 800

D. for capacity 3000L,the pricing is given as

For slum NO :

  1. RESIDENTIAL and RESIDENTIAL.SUB-PROPERTY_TYPE - 2000

  2. INSTITUTIONAL and INSTITUTIONAL.SUB-PROPERTY_TYPE - 2000

  3. COMMERCIAL and COMMERCIAL.SUB-PROPERTY_TYPE - 3000

For slum YES(Per trip Pricing for Slum areas) :

  1. RESIDENTIAL and RESIDENTIAL.SUB-PROPERTY_TYPE - 1500

  2. INSTITUTIONAL and INSTITUTIONAL.SUB-PROPERTY_TYPE - 1500

  3. COMMERCIAL and COMMERCIAL.SUB-PROPERTY_TYPE - 1500

E. After creating the excel file by considering the combinations,convert the excel file into json.

F. Push the same json file in billing slab api using runner.

Data templates for data collection

The data templates contains Annexures which will be provided by the Program Team.

  • Annexure -1 : ULB and FSTP data.

  • Annexure -2 : Cesspool Vehicles

  • Annexure -3 : Slum Within ULB

  • Annexure -4 : Zero Pricing Property

  • Annexure -5 : GP Tagging and Pricing

  1. Annexure -1 : ULB and FSTP data This Annexure contains the names and contact details provided for -

    FSM Executive(Sl. No. A6) : CREATOR, COLLECTOR, EDITOR, DASHBOARD VIEWER, FSSM REGISTRY

    FSM TRP(Sl. No. B7) : SUBMIT/DECLINE TRIPS, ADD VEHICLE LOG

    Sl. No. A1 - A4 : ULB Details added in tenant/tenants.json file in mdms

    Sl. No. B1 - B6 : FSTP Details added in FSM/FSTPPlantInfo.json file in mdms

Sl. No.

DETAILS

EXAMPLE

DESCRIPTION

A1

Name of ULB

(E.g.: Berhampur Municipal Corporation or Balasore Municipality or Banki NAC)->

Anandapur Municipality

A2

Helpline Phone numbers for Septic tank cleaning

(Write Landline with Code. Eg.: 0674-234563, 14420)->

14420

(Write 10 digit Mobile No. Eg.: 9876786543)->

8249735088

A3

ULB's full postal Address

->

Anandapur Municipality

A4

ULB's Latitude and Longitude

(E.g.: 20.2961° N, 85.8245° E)->

21.19076,86.130399

A5

ULB Commissioner / Executive Officer (EO) Details

Name of Commissioner / EO

->

Asok Kumar Rout

WhatsApp Phone No. of Commissioner / EO

->

9999999921

Official Email Id of Commissioner / EO

->

A6

ULB - FSSM Executive Details

(The designated role should be nominated by the EO/Commissioner)

(This person is responsible for taking desludging service requests from citizens, collecting payments, assigning cesspool vehicles which are registered at ULB (both ULB and Private) and taking further action on the requests. The designated role should be nominated by the EO/Commisioner and will be responsible to update the desludging requests on SUJOG-FSSM platform received via various channels. This role should have accessibility to the designated phone number/14420/ULB counter/single window, IT infrastructure (computer, internet, printer) etc.)

Name of FSSM Executive

->

Sk Sahabaz Alam Quadri

WhatsApp Phone No. of FSSM Executive

->

9999999922

Official Email Id of FSSM Executive

->

B1

FSTP's full postal Address

->

Salapda near MCC 2 ward no -12 Anandapur Municipality

B2

FSTP's Latitude and Longitude

(E.g.: 20.2961° N, 85.8245° E)->

21.19076,86.130399

B3

FSTP Installed Capacity in Kilo-Liters

(Eg.: 45 KLD)->

10 KLD

B4

Plant Operation Timing Duration

(Eg.: 09:00 AM - 08:00 PM)->

9.00 AM - 5.00 PM

B5

Name of SHG / ALF / CLF operating the Plant

->

MAA TARINI WSHG

B6

Is the FSTP serving the nearby Gram Panchayats?

(Write "Yes" OR "No". If "Yes", then how many Gram Panchayats) (Eg.: Yes-15 GPs OR No)->

Yes-81GPs

B7

FSTP - TRP Details

(Lab Technician)

Name of FSTP TRP

->

Rashmita Ojha

WhatsApp Phone No. of FSTP TRP

->

9999999923

Official Email ID of the FSTP TRP

->

NA

  1. Annexure -2 : Cesspool Vehicles

Name of the ULB: (Write in right side box)

Anandapur Municipality

Details

Description

Vehicle-1

C. Cesspool Vehicle Details of ULB

Cesspool Vehicle Registration No.

->

OD09J7874

Vehicle Ownership

ULB or Private

ULB

Vehicle Owner's Name

If owner is ULB, mention the ULB name (E.g.: Banki NAC). If owner is Private Party, mention the name of Private Party's Company name (E.g.: Ram Infra Pvt. Ltd.) or Person name (E.g.: Ramesh Sahu).->

Anandapur Municipality

Mode of Operation

ULB Owned & ULB Operated or ULB Owned & Privately Operated or Privately Owned and Privately Operated ->

ULB owned & ULB opereted

Whether Cesspool Vehicle is registered with ULB?

YES or NO ->

YES

Cesspool Contractor's Name

->

NIPS

Cesspool Contractor's Phone No.

->

9988998898

Cesspool Driver's Name

->

DIPU MUKHI

Cesspool Driver's Phone No.

->

9988675561

Cesspool Driver's License No.

->

OR0920040025878

Cesspool Vehicle Insurance No.

->

3379/331735/000/00

Pollution Certificate No.

->

Yes

Vehicle Make

Eg.: Swaraj, Eicher, Mahindra etc. ->

Mahindra

Vehicle Model

Eg.: Truck, Tractor, Pick Up etc. ->

Truck

GPS Tracker is present in vehicle?

YES or NO ->

No

Cesspool Tank Capacity (in Litres)

->

1000

Per trip Pricing for Residential properties

->

1000

Per trip Pricing for Commercial properties

->

1000

Per trip Pricing for Institutional properties

->

1000

Per trip Pricing for Slum areas

->

1000

The Contractor Details are the DSO/Vendor/Cesspool Operator details can be added from vendor api or FSM Registery to add dso in the portal.The driver and vehicle is assigned to the dso.

Vehicle Make,Model and Vehicle Tank capacity is added in MDMS under VehicleMakeModel.json file within Vehicle folder in mdms-repo.

According to Tank Capacity,Property Type,Sub-property Type and Slums,the pricing is defined in billing-slab.

  1. Annexure -3 : Slum Within ULB The ULB can configure zero pricing for slums at a ULB level - all applications raised from slums would be required to pay zero application fees When creating an application, the default Slum Name is set to 'NONE'. If the user resides in a slum area, they have the option to select a specific Slum Name as follows:

    1. Open the Septic tank emptying request.

    2. In the 'Slum Name' field, you will find 'NONE' as the default value.

    3. If you live in a slum area, click on the 'Slum Name' field to open a dropdown menu.

    4. From the dropdown menu, select your specific slum area from the available options.

    By selecting the appropriate slum name, you can accurately specify your residential location within the application.

Name of the ULB: (Write in right side box)

Anandapur Municipality

D. Slum List of ULB

Sl No.

Name of the Slum in the ULB

1

Birbal Kolha Sahi

2

Dehury Sahi

3

Panda Sahi

4

Bauti Sahi

5

Dahanibania Sahi

6

Bandirigadia Harijan Sahi

7

Mukhi Sahi

8

Majhi Harijan Sahi

9

Hadi Sahi

10

Gouda Sahi

11

Kolha Sahi

12

Badaharijan Sahi

13

lndira Colony

14

Saunti Sahi

15

Janara Harijan Sahi

16

Nala Sahi

17

Harijan Sahi near Gotha

18

Adibasi Sahi(Poda khaman)

19

Dehury Sahi (Podakhaman)

20

Mukhi Sahi (Podakhaman)

21

Deury Sahi, Sailong

22

Sarat Kumar Sahoo

The slum details are added in specific ulb folder(anandapur/FSM/Slum.json).

  1. Annexure -4 : Zero Pricing Property In Zero Pricing Property,ULB can opt for zero-price application based on some criteria(like slum, property, sub-property, capacity etc.) which is configurable in MDMS & billing_slab table .In case of zero-pricing, no demand will be generated and collection step will get skipped.

    Eg. For Institutional.Temple,the price will be 0.

Name of the ULB (Write in right side box)

Anandapur Municipality

E. Zero Pricing Properties of ULB

Sl No.

Property Type

Property Sub Type (Mention here the name of the properties under each category as mentioned in the left-hand side column.) E.g.: CT, PT, Collector's Office etc.

1

Institutional

CT,PT, Temple, Govt. High School, Govt. Hospital, Govt. School

2

Commercial

3

Slum

  1. Annexure -5 : GP Tagging and Pricing When creating a new application, users can choose between local municipalities or urban supported villages. Based on their choice, they can select either a locality/mohalla or a Gram Panchayat (GP) area from the respective dropdown list. If a ULB employee selects GP, they can manually input a trip amount based on offline calculations, instead of using the auto-calculated amount available for urban areas. ULB employees and DSO Operation personnel should also be able to edit the number of trips, and the final amount must be a multiple of the initial amount entered in the application based on the number of trips.

Sl No.

Name of the Gram Panchayat tagged to ULB

1

BAILO

2

BAUNSAGARH

3

BELABAHALI

4

BUDHIKUDA

5

DHAKOTHA

6

GAYALAMUNDA

7

HARIDAPAL

8

JALASUAN

9

KANTIPAL

10

KATHAKATA

11

KODAPADA

12

KOLIMATI

13

MANOHARPUR

14

MOCHINDA

15

PANASADIHA

The data related to Gram Panchayat are added in mdms under specific ulb folder(Example. anandapur/egov-location/boundary-data.json to show in the ui.

Mihika Basu
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Pradeep Kumar
pradeep
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
Sivaji Ganesh
[email protected]
[email protected]
[email protected]
Megha S
Megha S
Megha S
Megha S
Megha S
Megha S
Ajay Rawat
Priyanka Samantaroy
Priyanka Samantaroy
Priyanka Samantaroy
Priyanka Samantaroy
Shreya Kumar
Shreya Kumar
Shreya Kumar
Shreya Kumar
Shreya Kumar
Shreya Kumar
Shreya Kumar
Shreya Kumar
Shreya Kumar
Shreya Kumar
Shreya Kumar
Jagankumar

Product Requirement Document

Introduction

Sanitation workers provide an invaluable service that many of us notice only when confronted with locked, blocked, or filthy toilets; overflowing septic tanks; or beaches contaminated with sewage. These workers are vital to the proper functioning of the sanitation systems that underpin daily life, and we need many more of them to achieve the ambitious agenda of Sustainable Development Goal (SDG) 6. Yet sanitation workers are often invisible and too often subject to conditions that expose them to the worst consequences of poor sanitation: debilitating infections, injuries, social stigma, and even death in their daily work. Workers’ rights need to be recognised; workers need freedom and support to organise as a labor force; and their working conditions need to be improved and progressively formalised to safeguard health and labor rights to ensure decent working conditions, as called for by SDG 8.

Sanitation workers range from permanent public or private employees with health benefits, pensions, and clear legal protections to some of the most marginalised, poor, and abused members of society who take on low-grade, labor-intensive, and dangerous work. For those employed informally, their work is financially precarious, with poor pay and few benefits. Sanitation workers often suffer weak legal protection, missing or weak standard operating procedures, and weak enforcement and oversight of laws and policies protecting their rights and health.

Who is a Sanitation Worker?

The term sanitation workers refers to all people — employed or otherwise — responsible for cleaning, maintaining, operating, or emptying a sanitation technology at any step of the sanitation chain. This includes toilet cleaners and caretakers in domestic, public, and institutional settings; those who empty pits and septic tanks once full and other faecal sludge handlers; those who clean sewers and manholes; and those who work at sewage and faecal waste treatment and disposal sites (Dalberg Advisors 2017; WHO 2018).

Key challenges associated with sanitation workers are as follows:

  1. Multiple occupational and environmental hazards.

  2. Weak legal protection of an invisible workforce.

  3. Financial insecurity.

  4. Social stigma and discrimination.

There have been considerable initiatives taken in India towards sanitation worker welfare. Some of these include:

  1. Institutionalisation of safety practices through the implementation of ERSU.

  2. Loan financing via the National Safai Karamcharis Finance & Development Corporation (NSKFDC) for entrepreneurship and alternate skill development.

  3. Training and skill development programmes towards safe sanitation.

For the implementation and execution of the above initiatives, the first step is to recognise sanitation workers as individuals entitled to safety, benefits and rights with specific skill-sets and capabilities. In certain states (Odisha, Tamil Nadu, and Maharashtra, to name a few), a database of sanitation workers is created through the generation of unique IDs. These aim to provide a formal identity to sanitation workers and further serve as a base for welfare programmes including medical coverage and student fee reimbursement. Training provided to these individuals, ensures that only trained professionals participate in the sanitation value chain. The second step is to monitor the participation of sanitation workers in service delivery to ensure safe sanitation by ensuring defined safety protocols are followed, and ensuring participation of trained sanitation workers in service delivery.

Keeping this in mind, Sanitation Worker Welfare will be introduced as an extension to DIGIT Sanitation.

  1. V1: Introduction of sanitation worker database and recording participation of sanitation workers in service delivery.

  2. V2: Implementation of the ERSU process on DIGIT.

Sanitation Worker Welfare will be rolled out across 2 versions:

Success Criteria

Goal

Category

Objective

How will it be measured via the product?

How will we know this is successful?

Zero deaths, diseases, and environmental contamination resulting from poor sanitation.

Primary

To ensure every sanitation worker has a valid identity so as to enable distribution of benefits.

Number of sanitation workers registered in the system.

Increase in the number of sanitation Workers enrolled in the system over time.

Zero deaths, diseases, and environmental contamination resulting from poor sanitation.

Secondary

To ensure only trained sanitation workers service requests.

The percentage of requests serviced by trained sanitation.

Increase in the percentage of requests serviced by trained sanitation.

Scope: Sanitation Worker Welfare V1

The following is the scope of V1 for Sanitation Worker Welfare:

  1. Maintaining a list of unique sanitation workers in DIGIT Sanitation through a sanitation worker registry:

  • Viewing list

  • Adding a sanitation worker

  • Updating details

  • Disabling sanitation worker

  • Tagging sanitation workers to vendors

  1. Recording participation of sanitation workers in service delivery by tagging sanitation workers to requests:

  • Tagging multiple sanitation workers to a request

  • Editing tagged sanitation workers

  • SMS to sanitation Worker in case of request assignment

  • Report

1. Sanitation Worker Registry

With the implementation of the sanitation worker database, we aim to create a unique, verifiable database of sanitation workers, each with a unique ID.

Specifications:

Type

Mandatory

Editable (Y/N)

Unique within a tenant (Y/N)

Unique within an instance (Y/N)

Validation

Sanitation worker name

Free text

Y

N

N

N

N

Sanitation worker ID

Autogenerated

Y

N

Y

Y

N

Skills

Array, Multiselect

Y

Y

N

N

N (examples of these are Driving, Lab Operations, Plant Maintenance etc)

Tenant ID

Array, Multiselect

Y

Y

N

N

N (one sanitation worker may be performing roles in multiple tenants)

Roles

Array/Multiselect

Y

Y

N

N

N (examples of this is driver, helper, treatment plant operator, lab operator)

Gender

Array

N

Y

N

N

N

DOB

Date

N

Y

N

N

Must be minimum (Today - 18 years)

Email address

Free text (Email format)

N

Y

N

N

Follow email format

Phone number

Number

Y

N

N

N

Must have 10 digits

Status

Boolean

Y

Y

N

N

N

Employment type

Array (Fixed/Contractual)

Y

Y

N

N

N

Employer

Array (ULB/Vendor)

Y

Y

N

N

N

Vendor name

Array (Populated based on vendors in the ULB)

Y

Y

N

N

N

Photograph

File

N

Y

N

N

File size

Sanitation workers can be managed via the FSM Registry implemented as part of V1.3. The FSM Registry allows for ULB admins to manage the list of vendors, vehicles and drivers.

Changes required:

Backend table

As Is

With sanitation worker registry

Action

Driver Table

Driver details are currently stored in the driver table in FSM.

Driver details will be fetched from the sanitation worker table.

Deactivate driver table.

Sanitation Worker Table

NA

Sanitation worker details will be stored in the sanitation worker table.

Create sanitation worker table.

Driver Vehicle Table

Currently, drivers and vehicles are mapped in the driver vehicle table in FSM.

There will be no driver vehicle mapping. Each transaction will be assigned to sanitation workers/drivers from the frontend.

Deactivate driver vehicle mapping table.

Sanitation Worker and Vendor Mapping

NA

Sanitation workers will be mapped to a vendor.

Create a sanitation worker vendor mapping table.

The following functionality will be available to the user via the frontend to manage sanitation worker database:

  1. View list of sanitation workers

  2. Adding a sanitation worker

  3. Updating details

  4. Disabling sanitation worker

  5. Tagging sanitation workers to vendors

Sanitation Worker: Noun Verb Mapping

Entities

Actions

Create

Read

Search

Update

Delete

Deactivate

Sanitation Worker

X

2. Recording Participation of Sanitation Workers in Service Delivery

Assign sanitation workers to a request:

Along with assigning a vehicle, the DSO will assign sanitation workers to a request. The sanitation workers will be assigned either by entering the unique SW ID or the phone number of the sanitation worker. If the unique SW ID/phone no. exists in the database, details of the sanitation worker, that is, name, phone number, SW ID, and photograph to be displayed on the screen for the DSO to confirm. In case the Garima ID/phone number does not exist, an error message will be displayed.

A DSO may assign one to many sanitation workers to a request. However, entering a minimum of one sanitation worker to a request is mandatory.

Specifications:

  1. Updating Application | DSO in Progress

1.1 Tagging Sanitation Worker to Request

Attribute

Type

Mandatory (Y/N)

Comments

SW ID (8 Digits)/Phone number

BIGINT

Y

  1. Post assigning vehicles, the “Take Action” button will show an option to assign sanitation workers.

  2. Search by entering Garima ID and phone number of the sanitation worker.

  3. View of details fetched via API:

    1. Name

    2. Garima ID

    3. Phone no.

    4. Photograph

  4. Confirm sanitation workers.

  5. It is mandatory to add atleast 1 sanitation worker to a request.

  6. Edit of sanitation worker/workers possible by deleting a sanitation worker.

  1. Notification to Sanitation Worker

An SMS notification will be triggered to the sanitation worker when a request is assigned to them with the citizen name and phone number.

Design

Add a new sanitation worker by clicking on the ‘Add’ button on the FSM registry landing page and select Sanitation Worker User Actions. The following actions can be performed:

  • Add a new vendor by clicking on vendor.

  • Add a new vehicle by clicking on vehicle.

  • Add a new sanitation worker by clicking on sanitation worker.

On clicking on “Sanitation Worker”, the user will be redirected to the add the sanitation worker page.

User Actions

The following actions can be performed:

  • Enter the sanitation workers details. The fields are mentioned in the functional specifications table.

  • Go back by using the breadcrumbs.

Once the user submits an application, a snack bar will confirm the successful addition of a sanitation worker.

Details of the added sanitation worker will be displayed in the sanitation worker list on the top.

View Sanitation Worker List

Login as an ULB admin and navigate to the FSM Registry by clicking on it. Click on the sanitation worker tab.A list of all sanitation workers in the system are visible along with the details of the vendor they are tagged to.

User Actions

The following actions can be performed:

  • View list of all sanitation workers in the system along with the details of tagged vendors.

  • Search for a sanitation worker using the search box. Results should be displayed in case of part match.

  • Clear search by using the “Clear Search” button

  • Enable/disable a sanitation worker by using the toggle.

  • Sort sanitation workers by creation date.

  • Add a new vendor, sanitation worker or vehicle by clicking on the ‘Add’ button.

View and Edit Sanitation Worker

Sanitation worker details can be viewed by clicking on the sanitation worker’s name. All details of the sanitation worker captured while creating a sanitation worker will be displayed here.

User Actions

The following actions can be performed:

  • View details of the sanitation worker.

  • Edit vendor tagging by clicking on the edit icon besides the vendor name.

  • Remove vendor tagging by clicking on the delete icon beside the vendor name.

  • Click on the “Take Action” button to edit or delete a vehicle.

Sanitation worker details can be edited by clicking on the “Take Action" button and selecting edit.

User Actions The following actions can be performed:

  • Click on edit to edit the sanitation worker.

  • Click on delete to delete the sanitation worker.

  • Click anywhere else on the screen to go back to the sanitation worker details.

On clicking the Edit button, the user will be redirected to the “Edit Sanitation Worker” page.

User Actions

The following actions can be performed:

  • Edit sanitation worker details.

  • Click on ‘Submit’.

The user will be redirected to the sanitation worker details page and the edits will be reflected.

The user will be redirected to the sanitation worker details page and the edits will be reflected. can be deleted by clicking on the “Take Action” button. The user will be redirected to the sanitation worker details page, and the edits will be reflected in the details page and selecting delete.

User Actions

The following actions can be performed:

  • Click on Edit to edit the sanitation worker.

  • Click on Delete to delete the sanitation worker.

  • Click anywhere else on the screen to go back to the sanitation worker details.

  • On clicking the ‘Delete’ button, a pop-up will be displayed for confirmation.

The following actions can be performed:

  • Close the pop-up by clicking on the ‘Close’ button on the pop-up.

  • Close the pop-up by clicking on the cross icon on the top right of the pop-up.

  • Confirm deletion by clicking on the ‘Delete’ button.

On clicking on ‘Delete’, the user will be directed to a list of SW and a snack bar will be displayed as confirmation.

Tagging a Sanitation Worker to a Vendor

Method 1:

Apart from tagging a sanitation worker to a vendor from the sanitation worker details page, tagging can also be done from the sanitation worker details page by clicking on the add new vendor button.

User Actions

The following actions can be performed:

  • View details of the sanitation worker.

  • Tag SW to a vendor by clicking on the + icon besides the “Add New Vendor”.

A pop-up will be displayed with a dropdown to select a vendor.

User Actions

The following actions can be performed:

  • Selection of a vendor from the dropdown.

  • Close pop-up by clicking on the cross icon on the top right of the pop-up.

  • Close pop-up by clicking on ‘Cancel’.

  • Confirm vendor selection by clicking on ‘Submit’.

On clicking on submit, the added vendor details will be displayed in the sanitation worker details page and a snack bar is displayed for confirmation.

Method 2:

A sanitation worker can also be tagged to a vendor from the sanitation worker list page. Select a vendor from the dropdown. The sanitation worker will be tagged to the selected vendor.

Recording the Participation of Sanitation Workers in Service Delivery

The DSO assigns a sanitation worker by clicking on the “Take Action” button and clicking an option of adding a vehicle and sanitation workers.

A pop-up is displayed. The user can perform the following actions:

  1. Select a vehicle number from dropdown. This is mandatory.

  2. Assign a driver by typing the name or the sanitation worker ID in the search field. A list of matching results will be displayed and the user can select one. On selection, the name and sanitation worker will be displayed in the field. The driver can be edited by editing the field and retyping the name of the sanitation. This is mandatory

  3. Assign helpers by typing the name or sanitation worker ID. A list of matching results will be displayed and the user can select multiple. The selected sanitation workers will be displayed below the field and the user can remove them by clicking on the cross beside their name. This is non mandatory.

  4. The user can confirm the assignment by clicking on confirm.

  5. The user can close the pop-up by clicking on the cross icon on the top right hand side of the pop up or clicking on the cancel button. No entered details will be saved in this case.

  6. The assign button will only be activated once the vehicle and driver is selected.

Part search to be enabled for both fields.

Sanitation worker details are displayed in the application in the DSO details section:

  1. Driver: Name and sanitation worker ID.

  2. Sanitation 1: Name and sanitation worker ID.

If there are more than 1 sanitation worker assigned, multiple rows for sanitation workers will be visible. Driver and sanitation worker fields will not be displayed unless they are assigned.

Out of Scope

  1. Login for sanitation workers to accept/decline requests.

  2. Login access via sanitation worker registry: Sanitation worker registries will contain information on drivers and treatment plant operators, who participate in the DIGIT sanitation workflow. Ideally, login for the product for the role should be via the registry. However, this will not be implemented.

  3. Verification of whether the job roles tagged to the sanitation worker are the actual roles they are performing on field.

  4. Verification of whether the correct sanitation worker is tagged to the request.

  5. Verification of training status of sanitation workers will be maintained by the partner agency and we are dependent on them to compute the percentage.

  6. Multiple sanitation workers service a request. Only a subset of them are assigned in the system.

Implementation in Orissa

Sanitation worker safety is of national importance. The national mandate for the same is issued under “Emergency Response Sanitation Unit (ERSU)”. The Urban Management Centre (UMC) is leading the implementation of ERSU across Odisha. As part of ERSU, UMC along with the state of Odisha has also rolled out a programme for “Sanitation worker benefits” called 'Garima' whose main objective is to identify, monitor and support sanitation workers and their families.

eGov is collaborating with UMC on “Sanitation worker safety” for Odisha, which includes building platform and product capabilities for Garima. The objective of of the collaboration between eGov and UMC through an integration with Garima is to create a record of service delivery to:

  • Provide enumeration and benefits to sanitation workers

  • Identify the percentage of services with evidence of safe practices

eGov, through its DIGIT FSM platform implemented in Odisha can serve as a data capturing layer for the above and provide access of this information to UMC. The following will be the scope of work across the partnership:

The Sanitation Worker Welfare module v1.0 will be rolled out to Orissa as part of Sujog v1.4. Click here to know more.

User Manual

Workbench Setup

Workbench Employee User Manual

Prerequisites

For the loading of data, the following will be required:

  1. State-level user for workbench (to allow for loading of state data).

  2. Urban local body (ULB)-level users for workbench (to allow for loading of ULB-specific data). One user for the workbench with access to all ULBs can also be created and the user can navigate across the ULB to upload data for each ULB

Checklist

Definitions

Login

ULB employees are provided with credentials to log in to the system. Role-based access for various steps in the workflow, that is, different individuals can be assigned to create an application, modify applications, or manage vendor, driver, and vehicle details.

User actions

On this page, the following actions can be performed:

  • Enter username and password.

  • Select a city for login.

  • Reset your password by clicking on the “Forgot Password” link.

On clicking continue, employees are redirected to the Workbench home page

​Create Benchmark Rule

For the proper working of the platform, the following benchmark rules should be configured. If any other benchmark rules are configured, the system will not function:

Inbox

Click on “Add Master Data” to add a new benchmark rule

Create Quality Test Lab

Inbox

Click on “Add Master Data” to create new a Quality Test Lab

Create Material

Inbox

Click on “Add Master Data” to create new a material

Create Parameter

Inbox

Click on “Add Master Data” to create a new parameter

Create Plant Configuration

Inbox

Click on “Add Master Data” to create a plant configuration

Create Plant Type

Inbox

Click on “Add Master Date” to create a plant type

​Create Process Type

Inbox

Click on “Add Master Data” to create a new process type

​Create Unit

Inbox

Click on “Add Master Data” to create a new unit

​Create Waste Type

Inbox

Click on “Add Master Data” to create new Waste Type

​Create Source Type

Inbox

Click on “Add Master Data” to create a new source type

​Create Stage

Inbox

Click on “Add Master Data” to add a new stage

​Create Process

Inbox

Click on “Add Master Data” to create a new process

​Create Plant

Once the plant is created, the plant user mapping has to be done through the backend. If there is already an FSM instance created and running, then the V1 of codes for plant and ULB has to be taken for V2 and the backend team will have to create the plants using the same codes.

Inbox

Click on “Add Master Data” to add a new plant

​Create Quality Criteria

Inbox

Click on “Add Master Data” to add a new quality criteria

​Create Test Standard

Inbox

Click on “Add Master Data” to add a new test standard

All the below configurations are in order, and the same order should be followed while creating a new test standard:

  1. BenchmarkRule

  2. QualityTestLab

  3. Material

  4. Parameter

  5. PlantConfig

  6. PlantType

  7. ProcessType

  8. Unit

  9. WasteType

  10. SourceType

  11. Stage

  12. Process

  13. Plant

  14. QualityCriteria

  15. TestStandard

Duplications are not allowed.

Common user actions for the below configuration:

  • Users can view a list of configurations.

  • Users can add a new configuration.

  • Users can edit a configuration.

  • Users can enable or disable a configuration.

Configuration

Which level this has to be defined?

Definition

Benchmark rule

State

The rules according to which a test value should be tested. (For example, Greater than, less than, equal to).

Quality Test Lab

ULB

Quality Test Lab is the laboratory where the testing is happening.

This can be configured accordingly if it is in-house or the ULB-Geo Corporation.

Material

State

Material is a physical substance for which the quality monitoring is done. For example: Effluent or raw water.

Parameter

State

Criteria used to measure te input and the output for a job. Each parameter will have a unit of measurement.

Plant configuration

State

Configuration details for a particular plant.

Plant type

State

The classification of plant based on their processing.

Process type

State

Defines the type of process.

Unit

State

The unit for measuring this particular parameter

Waste type

State

The classification of waste materials based on their characteristics or origin.

Source type

State

The origin of this particular test standard.

Stage

State

Each step within the treatment process. Each job may have one or many input quality parameters, and one or many output quality parameters.

Process

State

Sequential series of steps required to translate input to output.

Plant

State

Respective Plant for which Test Standards are created

Quality criteria

State

The quality criteria which is applicable for the unique combination of plant, process, stage and material.

Test standard

ULB

A combination of a parameter, acceptable benchmark of the parameter and its frequency of testing. For example, ph >= 7 tested weekly.

Code

Name

LSTOREQ

Less Than Or Equals

GTROREQ

Greater Than Or Equals

NEQ

Not Equals

EQ

Equals

OSD

Outside Range

BTW

Between

LST

Less Than

GTR

Greater Than

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

JATNI_In_House Puri_Third_Party

Name

Textual or human-readable identity given to a record.

Jatni in-house lab, Puri third-party lab

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

MM_01 MM_02

Name

Textual or human-readable identity given to a record.

Effluent Treated effluent

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

PP_01 PP_02

Name

Textual or human-readable identity given to a record.

COD BOD

Description

Details or explanation for a record.

Chemical oxygen demand, Biological oxygen demand

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

DEFAULT_CONFIGURATION

Lab test escalation days

The number of days after which a scheduled test that is still pending requires escalation.

Decided by the state and the programme team to configure these days.

Pending tests to display within days

The number of days within which pending tests, assessments, or evaluations should be displayed or considered.

Decided by the state and the programme team to configure these days.

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

FECAL_SLUDGE_TREATMENT_PLANT CO_TREATMENT_PLANT

Name

Textual or human-readable identity given to a record

Faecal sludge treatment plant Co-treatment plant

Description

Details or explanation for a record.

Any description related to the plant.

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

FECAL_SLUDGE_TREATMENT 5_STAGE_WATER_TREATMENT

Name

Textual or human-readable identity given to a record

Faecal sludge treatment, 5-stage water treatment

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

MGPL DC

Name

Textual or human-readable identity given to a record.

Mg per liter Degree celsius

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

FECAL_SLUDGE MEDICAL_INFECTIOUS_WASTE

Name

Textual or human-readable identity given to a record.

Faecal sludge Medical infectious waste

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

LAB_ADHOC LAB_SCHEDULED

Name

Textual or human-readable identity given to a record.

Adhoc tests Scheduled tests

Description

Details or explanation for a record.

Any explanation regarding the tests

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

OUTLET_OF_POLISHING_POND

Name

Textual or human-readable identity given to a record.

Outlet of Polishing Pond

Input material

Materials provided as an input to a dtage

Effluent faecal sludge Decided by the state and the programme team to configure the input and output material based on the data collected.

Output material

Materials provided as an output to a stage

Treated effluent Decided by the state and the programme team to configure the input and output material based on the data collected.

Description

Details or explanation for a record.

Description of the stage.

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

FECAL_SLUDGE_TREATMENT_PROCESS

Name

Textual or human-readable identity given to a record.

Faecal sludge treatment process

Process Type

Defines the type of process. Here the previously defined process type has to be entered.

Faecal sludge treatment

Order

Order can be a number for which the stage can be defined. This is a non-mandatory field.

1

Stage Code

A list of stages that come under a particular process. Here the previously defined stage has to entered.

Outlet of polishing pond

Waste Type

The classification of waste materials based on their characteristics or origin. Here the previously defined waste type has to entered.

Faecal Sludge

Description

Details or explanation for a record.

Description regarding the process can be entered.

Field

Description

Example

ULBs

The respective ULBs the plant belongs to.

od.berhampur od.dhenkanal

Code

The plant code this is the same code from V1.

BEHR_001 DHKL_001

Name

Textual or human-readable identity given to a record.

BeMC Plant Dhenkanal Plant

PlusCode

This is the geo-location of the plant.

7PJQ+Q8 Kusumi, Odisha

Latitude

Latitude of the plant.

Longitude

Longitude of the plant.

Plant Type

The classification of plant based on their processing. Note: Here the previously defined plant type has to entered

Faecal sludge treatment plant

Process

A list of process that happen under a particular plant. Note: Here the previously defined process has to entered.

Faecal sludge treatment process

Waste type

The classification of waste materials based on their characteristics or origin. Note: Here the previously defined waste type has to entered.

Faecal sludge Medical infectious waste

Description

Details or explanation for a record.

Can be the description of a plant.

Plant Configuration

Configuration details for a particular plant. Note: Here the previously defined plant configuration has to entered. This is also a mandatory field

DEFAULT_CONFIGURATION

Plant Location

Location of the plant.

Plant Operational timings

Timings of the plant.

Plant Operational Capacity KLD

Total capacity of the plant.

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

COD_MGPL

Unit Of Measurement

The unit for measuring this particular parameter Note: Here the previously defined units will be shown in the dropdown and the respectives can be selected.

MGPL

Paramaeter

Anything that is measurable as an input/output for a particular stage. Note: Whatever the quality criteria is entered, the previously defined parameter is shown in the drop-down and the respectives can be selected.

COD

Benchmark rule

The rules according to which a test value should be tested. (For example, Greater than, less than, equals to).

This is entered as per the master data collected.

Benchmark values

Specific numbers on which the benchmark rule is applied for a test value.

This is entered as per the master data collected.

Allowed deviation

The acceptable difference from the benchmark values.

This is entered as per the master data collected.

Field

Description

Example

Code

Alphanumeric or numeric representation assigned to uniquely identify the field.

TEST_PURI_QM1

Plant code

Plant Code for which this Test Standard is registered. NOTE: The plant codes must match the above added plant codes for Plant

BEHR_001

DHKL_001

Stage code

Stage Code for which this Test Standard is registered.

Outlet of polishing pond

Process code

Process Code for which this Test Standard is registered.

Fecal Sludge Management

Material code

Material Code for which this Test Standard is registered

Effluent

Frequency

The frequency at which this test standard should be scheduled.

Decided by the state and the programme team to configure the input and output material based on the data collected. For example: 14.

Source type

The origin of this particular test standard.

Lab

Quality criteria

The quality criteria which is applicable for the unique combination of plant, process, stage and material.

COD BOD TSS

FSM UI/UX Audit

Type
Estimation (in hours)
Assignee
Comment
Status
Reviewed by PM
Gaps (if any)
Reviewed by Antriksh

FSM home breadcrumb title all should align

Improvement

2

Done

Y

Y

All text alignment should be left for FSM registry table

Improvement

2

Done

Disable button alignment, Figure our dropdown

Antriksh will share design

The date of vehicle creation camel case needs to be fixed

Improvement

0.5

Done

Y

Alignment of breadcrumbs and title should be out of the card and left

Improvement

3

Done

Y

Vehicle details title and second card should be aligned

Improvement

2

Done

Y

Remove the break line in the FSM details page

Improvement

2

Follow Design same as New Desludging Application

Done

Y

Spacing between section header, field above and field below

(+91) in every mobile input field need to be added if it is not major changes

Improvement

16

91 Should be every where there is mobile number field

Done

Some are in old format and some are in new format

Look at entire application and check where gaps are

The rupee symbol needs to be removed from the left side and symbols should be left aligned

Improvement

2

Done

Rupee is still coming on the left hand side in application form

Also look at the entire application and check where gaps are

Add vendor card need to be alligned for vehicle

Improvement

3

Done

Add vendor pop-up close circle need to follow the Figma design, pop-up does not align for text properly

Improvement

2

Done

Update trips, add driver, add vendor, add driver modal cancel icon need to be corrected

Improvement

2

Done

Remove top padding in vendor/vehicle/driver details screen

Improvement

2

Done

Vendor/driver/vehicle details screen title-breadcrumb-card should be aligned properly

Improvement

4

Done

Vendor/driver/vehicle edit screen title-breadcrumb-card should be aligned properly

Improvement

Done

Vendor/driver/vehicle edit screen title should be outside card

Improvement

Done

Vehicle number search box in the vehicle tab should check the correct format

Improvement

2

Done

HOME SCREEN REMOVE

Improvement

2

Done

Pincode validation

Improvement

16

Done

Roles permission for FSM inbox links are not proper

Improvement

3

Done

In collector screen, error for incorrect phone number is showing as Payment_Invalid_Mobile

Localisation

0.15

Done

Sorting FSM inbox should follow common inbox for vendor/driver/vehicle tab -backend

Improvement

12

Done

Sorting FSM inbox should follow common inbox for vendor/driver/vehicle tab- UI

Improvement

12

Done

The vendor name dropdown UI sould be according to the Figma link and align left

Improvement

18

Done

Show only go back to home if has only go back to home else show take action + If only one action is present in take action, then show only the action name

Improvement

12

Done

Redirection from SMS for payment, Showing as ES_PAYMENT_DETAILS_TOTAL AMOUNT and ES_PAYMENT_DETAILS_ADV_AMOUNT

Localisation

Done

Wherever input text does not match validation, error message needs to show in real-time

Improvement

40

Blocker

Todo

Change is redirected to a page in form and then the entire form restarts. Expected action: Change button should go to required page and then Next button should go back to the same page

Improvement

Common Issue in Every Module. Antriksh, Jagan and team is looking into it

Different terminologies found for Payment Method. In the Generate Receipt page (Payment mode -> Cash, Cheque, Credit/Debit Card) where as In Complete Request Page (Payment Received -> Paid In Cash, Paid at Counter, Net Banking).

Improvement

Need Clarity on what method should be populated?

Receipt capacity instead of type

Improvement

Dependency on Backend PDF Service

Todo

Vehicly type and payment sections should be separate

Improvement

Dependency on Backend PDF Service

Todo

Receipt needs to be redesigned

Dependency of Core Team. Since Receipt is a core services

FSM registry table should be common component

Improvement

16

Already common component is using

Todo

Either we can keep the option for the advanced amount and full amount in collect page for citizen, or remove the option <Tahera will get back on this

Improvement

Addressed in Frontendedback section of advance pay

Todo

Will be covering in Advance Pay Section

Pay Now and Pay Later looks a little confusing. Check the localisation with other modules

Improvement

Addressed in Frontendedback section of advance pay

Todo

Will be covering in Advance Pay Section

After clicking pay now, it is showing advance amount which looks a little confusing. Need to check with PO

Improvement

Addressed in Frontendedback section of advance pay

Todo

Will be covering in Advance Pay Section

Login error message "This MobileNumber Already Register as UserName in System. Pls try Another UserName"/ Reword to "This Mobile Number Already Register in the System. Please try Another UserName"

Improvement

1

Core team work

Todo

Test the entire product

Todo

Scroll up to the field

Improvement

12

Todo

Next button should be disabled when data is not filled; next button usage is currently inconsistent

Improvement

View application screen for citizen should have data in the same format as the acknowledgement receipt

Improvement

new UI has to be developed on figma first

Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Anil Singha
Sardar Shaik
Anil Singha
Anil Singha
Nabeel Md
Anil Singha
Tahera Bharmal
Tahera Bharmal
Tahera Bharmal
Nabeel Md

Functional Specifications

Treatment Quality Monitoring: Functional Specifications

  1. Treatment Process

Attribute

Type

Mandatory

Comments

Validation Required?

Treatment Process ID

Numeric

Y

Auto-generated numeric value which will act as a unique identifier for a process flow

N, this value should be system generated

Process Name

Text

Y

This is the commonly used identifier for the process flow

Max characters - 256

Status

Array

Y

Status of the process flow

Active/Inactive, Single Select

Treatment Process Type

Array

Y

The dropdown will be auto populated basis the list of waste maintained in the MDMS

Single Select

Treatment Process Subtype

Array

Y

The dropdown will be auto populated basis the list of waste maintained in the MDMS

Single Select

  1. Plants

Attribute

Type

Mandatory

Comments

Validation Required?

Plant ID

Numeric

Y

Auto-generated numeric value which will act as a unique identifier for a plan.

Auto-generated

Plant Name

Text

Y

This is the commonly used identifier for the plant

Maximum charatcters - 128

Plant Type

Array

Y

Single select only, faecal sludge, solid waste, co-treatment

Tenant Id

Text

Y

Status

Array

Y

Status of the plant

Active/inactive, single select

Geolocation

Latitude-Longitude

Y

Capture the exact latitude-longitude

  1. Stages

Attribute

Type

Mandatory

Comments

Validation Required?

Stage ID

Numeric

Y

Auto-generated numeric value which will act as a unique identifier for a Job ID

Auto-generated

Stage Name

Text

Y

This is the commonly-used identifier for the Job

Maximum characters - 128

Minimum xharacters - NA

Status

Boolean

Y

Status of the stage

Active/inactive, single select

Input Quality Measurement Required

Boolean

Y

This selection will allow the user to set up if the input quality for the particular input type needs to be monitored. A user should be able to enable and disable input quality measurement requirement independently for each type

Yes/no, single select

Output Type

Array

Y

The dropdown will be auto-populated basis the list of output types

Multi-select

Output Quality Measurement Required

Boolean

Y

This selection will allow the user to set up if the output quality for the particular job needs to be monitored. A user should be able to enable and disable the output quality measurement requirement independently for each type

Yes/no, single select

  1. Testing Parameters

Attribute

Type

Mandatory

Validation

Quality Parameter

Array

Y

Selecting from the predefined of the above-mentioned quality parameters and standards.

single select

Quality Parameter Unit of Measurement

Array

Y

Selection of the unit of measurement (mg/L, Absolute value etc). Single select

Benchmark Rule

Array

Y

Options include X>=,<=R, =<Y and >=Z, single select

Benchmark Value

Numeric

Y

Entered by user, numeric only

Testing Frequency - Manual (Days)

Numeric

Y

Selecting a custom frequency range for laboratory testing based on consent to operate, numeric only

Monitoring Frequency - Quality Sensor (Days)

Numeric

N

Selecting a custom frequency

Note: Should be optional if the ULB/state choses not to have sensor-based monitoring. Numeric only

  1. Configure IoT Devices

Attribute

Type

Required?

Comments

Configuration Date

Datetime

Y

Device Type

Text

Y

Selection from the device master data

[“GPS Sensor”, “pH Sensor”, “Accelerometer”, “Light Sensor”]

Plant

Text

Y

Treatment Process

Text

Y

Stage

Text

Y

Output Type

Text

Y

Parameters

Array

Y

The parameters are monitored by the device

Monitoring Frequency

Numeric

Y

Custom frequency for the device

Calibration Date

Datetime

Y

Input from the user about any change in the calibration/maintenance of the device

Calibration Accuracy

Array

Y

Range to indicate the permissible deviation in the accuracy

IsConnected?

Boolean

Y

To indicate the connectivity of the device

Connectivity History

?

Y

Date-wise device audit log to know the connectivity status

Verification History

?

Date-wise device verification log to know the days when device input was verified with laboratory results

  1. Testing Schedule

Attribute

Type

Mandataroy

Validation

Test ID

Alphanumeric

View only

Auto-generated on the creation of schedule

Plant Name

Text

View only

Auto-populated on the creation of schedule

Treatment Process

Text

View only

Auto-populated on the creation of schedule

Treatment Process Type

Text

View only

Auto-populated on the creation of schedule

Stage

Text

View only

Auto-populated on the creation of schedule

Output Type

Text

View only

Auto-populated on the creation of schedule

Test Type

Array

Lab/IoT, auto-selected to Lab

Parameter 1…n

Text

View only

Auto-populated on the creation of schedule

Testing Date

Date

View only

Date calculated through the predefined laboratory testing schedule

SLA

Numeric

View only

Difference between the current date and testing date: The compliance to a testing schedule can be checked through this field. However, the actions based on failed/successful compliance falls under vendor management, which is not in scope currently and will be taken up separately under vendor management

Status

Text

View only

Status to be auto set to ‘Scheduled’

  1. Test Results

Attribute

Type

Required?

Comments

Test ID

Numeric

Y

Auto-generated by system

Plant Name

Array

View only

Auto-populated on the creation of schedule, single select for on-demand test

Treatment Process

Array

View only

Auto-populated on the creation of schedule, single select for on-demand test

Treatment Process Type

Array

View only

Auto-populated on the creation of schedule, single select for on-demand test

Stage

Array

View only

Auto-populated on the creation of schedule, single select for on-demand test

Output Type

Array

View only

Auto-populated on the creation of schedule, single select for on-demand test

Test Type

Array

Lab/IoT, auto-selected to lab for on demand

Lab Submitted to

Text

Y

This will not be required in case test type = IoT

Quality Parameter 1

Numeric

Y

Validation to be applied at impel

Quality Parameter 2

Numeric

Y

Validation to be applied at impel

Quality Parameter 3

Numeric

Y

Validation to be applied at impel

Quality Parameter n

Numeric

Y

Validation to be applied at impel

Collection Time

Date

Y

This is the date-time during which the user updates status to pending Results. for IoT, this is the time sensor records reading

Attachment

Document

Y

For a given collection location, photo or PDF proof of laboratory result mentioning the information of above-mentioned parameters

  1. Alert: Lab & IoT Result Not As Per the Benchmark; Lab & Device Results Do Not Match

Attribute

Type

Required?

Comments

Alert DateTime

Datetime

Y

Auto-captured based on date-time

Alert Type

Text

Y

Auto-captured

  • Lab test results not as per the benchmark

Plant Name

Text

Y

Process Name

Text

Y

Process Type

Text

Y

Parameter 1…n

Text

Y

UoM

Text

Y

Benchmark

Number

Y

Results

Number

Y

Test Type

Text

Y

Auto-selected to lab/IoT, or both

  1. Alert: No Reading Received From the Device

Attribute

Type

Required?

Comments

Alert DateTime

Datetime

Y

Auto captured based on date-time

Alert Type

Text

Y

Auto captured

  • No reading received from the device

Plant Name

Text

Y

Process Name

Text

Y

Process Type

Text

Y

Device ID

Numeric

Y

User Interface Design

Exemplar

Landing Page: Plant Operator

The user will land on the home page post login. The following actions can be performed by the user:

  1. The plant name is visible on the top right hand corner of the screen.

  2. A help button is available for the user to get a guided view of the page. This is available on every page.

  3. Cards are viewable for the following modules:

a. Vehicle log module (record incoming vehicles)

b. Treatment quality module

c. View dashboard

Clicking on each of these cards will take the user to the Homepage for the specific module.

  1. List of pending tasks: This will show the list of tests pending within the next [X] days. The next action item in the task workflow will be displayed beside a pending task for a user to take prompt action. A button for “View All Pending Tasks” will be displayed which will redirect the user to “All Pending Tasks”.

Treatment Quality Module (TQM) Home Page

On clicking on the treatment quality card, the user is redirected to the TQM home page. The following actions can be performed by the user:

  1. View and take action on upcoming tests using the inbox. The inbox will show a count of upcoming tests beside it.

  2. View past test results: Past results from both lab and IoT devices will be displayed here.

  3. View IoT readings: The user can access the record of IoT readings here.

  4. Sensor Monitoring: The user can access a list of IoT devices along with their status here.

  5. View dashboard: The user will be directed to the treatment quality dashboard.

  6. View performance: This widget will show the performance of the plant in regards to treatment quality and will display the following KPIs:

a. Test compliance: Compliance percentage of plant with regards to the treatment quality and its comparison to state level compliance percentage.

b. Last treatment quality result - Pass/fail and date of the test.

c. Count of alerts raised in the past 30 days.

d. Distribution of alerts based on the alert category.

  1. Go back to the Landing page using the back button.

  2. A help button is available for the user to get a guided view of the page. This is available on every page.

View List of Upcoming Tests

On clicking on inbox, the user is redirected to the list of upcoming tests. This will show only a list of lab tests. The user can perform the following tasks:

  1. Total count of upcoming tests are displayed beside the inbox in brackets.

  2. View list of upcoming tests. The following will be the fields displayed:

  1. Total count of upcoming tests are displayed beside the inbox in brackets.

  2. View list of upcoming tests. The following will be the fields displayed:

a. Test ID.

b. Treatment process (in case there is only 1 treatment process for the plant, this field will not be displayed).

c. Stage: This will display the process stage where the sample is to be collected from.

d. Output type: Biosolids/effluents.

e. Pending date: This is the test date as per schedule.

f. Status: status of the test.

g. SLA: Show difference between test due date and today.

  1. An action item available based on the next status in the workflow will be displayed:

a. For test results in the scheduled stage, update status will be displayed.

b. For tests in the pending results stage, update results will be displayed.

  1. Filter tests: On clicking on filter, a pop-up will be displayed:

a. The following filters are available:

  1. Treatment process: (In case there is only 1 treatment process for the plant, this field will not be displayed). This will be a dropdown showing the values for treatment processes configured for the plant. The selected treatment process is displayed here on selection. If not, the field is left blank.

  2. Output type: This will be a dropdown showing values for output types configured for the plant. The selected output type is displayed here on selection. If not, the field is left blank.

  3. Status: This will be a dropdown showing values for the status in the treatment quality workflow. The selected status is displayed here on selection. If not, the field is left blank.

  4. Date range: Selection of date range (calendar view): Selected date range is displayed here on selection. If not, the field is left blank.

b. On selecting values for the filters above, a user can click on filter to filter the inbox.

c. To clear filters, a user can click on clear all.

d. To close the pop-up, a user can click on the cross on the top right hand corner of the screen.

  1. Sort: On clicking on sort, a pop-up will be displayed:

a. Tests can be sorted by the pending date:

Date (Latest first)

Date (Latest Last)

b. On selecting values for sort above, the user can click on sort to sort the inbox.

c. To clear sort, a user can click on clear all.

d. To close the pop-up, a user can click on the cross on the top right hand corner of the screen.

  1. Go back to the landing page using the back button.

  2. A help button is available for the user to get a guided view of the page. This is available on every page.

View Test Details

Test Details can be viewed by the user in 2 ways:

  • Via the pending tasks.

  • Via inbox.

View Test Details Via Pending Tasks

  • The list of pending tasks can be accessed via the landing page for TQM. This will show the list of tests pending within the next [X] days.

  • The next action item in the task workflow will be displayed as a button beside a pending task for a user to take prompt action. On clicking on the button, the user will be redirected to the test details page.

View Test Details Via Inbox

A list of tests can be accessed on the inbox. An action item is available based on the next status in the workflow will be displayed:

  1. For test results in the scheduled stage, the update status will be displayed.

  2. For tests in the pending results stage, the update results will be displayed.

On clicking on the action item, the user will be redirected to the test details page.

The test details page will consist of 2 cards:

  1. The first card will display the following fields:

  • Test ID

  • Treatment Process

  • Stage

  • Output Type

  • Pending Date

  • Status

  • Parameters to be tested along with their unit of measurement

  • SLA (This will be displayed in Red/green basis SLA. If today>Pending date, this is red, If today<pending date, then green).

  1. The second card will be based on the test status:

  • For tests in status ‘Scheduled’, the user will be asked to select a lab.

  • For tests in status “Pending Results”, the user will be asked to add test results

The user can go back using the back button - The redirection will be based on the page the user has accessed the test details page from. A help button is available for the user to get a guided view of the page. This is available on every page.

Update Tests

Tests can be updated by the user from the test details page. The test details page will display the next action item for the user based on the workflow test. For tests with the wWorkflow status ‘Scheduled’, the user will be prompted to confirm if sample has been submitted to the lab for testing.

The user can perform the following actions:

  1. Select a lab from a dropdown list configured in the MDMS.

  2. Update status of the test. The button will be deactivated if Lab is not selected, and will only be activated once selection is made. Once the user clicks on update status, he/she is redirected back to the page from which test details were accessed and a snack bar confirms the status update and the action Item button shows updated next step.

In case an update of status fails, the user will remain on the same page and a failure message will be displayed to the user.

For tests with the workflow status “Pending Status”, the user will be prompted to fill test results.

The user can perform the following actions:

  1. Update parameter readings (mandatory fields) The following validations will be applied:

a. Only numerical values will be viewable here. In case of non numerical values, the following error message is displayed “Only numeric values allowed. Please input in the required format”.

  1. Attach documents (non-mandatory): The following validations will be applied:

a. Only files in the following formats will be supported: .png, .jpg. .pdf. In case a file of unsupported format is selected, the following error will be displayed “The file type is not supported. Please upload in the following formats: .pdf, .png, .jpg”.

b. File size of maximum X mb allowed. In case file size is larger than permitted value, the following error will be displayed “The file size is too large. Please upload a file below x mbs”.

  1. Submit test results by clicking on the ‘Submit’ button. The button will be deactivated if all is not selected, and will only be activated once selection is made. On clicking the submit button, a pop-up will be displayed to the user to confirm submission.

The following actions will be made available to the user:

  1. Confirm submission by clicking on the ‘Submit’ button.

  2. Go back to the test details page by clicking on the “Go back” button.

On clicking the submit button and failure to submit test results, the user will remain on the same page and a failure message will be displayed.

On clicking the submit button and successful submission of the test results, the user will be redirected to the summary page and a snack bar will confirm the submission.

At this stage, the user will be displayed the summary of test results and whether it has passed/failed based on a comparison between the values entered by the user and the benchmarks. In case all values are as per the benchmarks, the test results will be displayed as ‘Pass’. All values will be shown in green and the user receives feedback that all results are as per benchmarks. The user can go back to the home page by clicking on the ‘Back’ button.

In case one or more values are not as per the benchmarks, the test results will be displayed as ‘Fail’. All values as per benchmarks will be shown in green. Values not as per the benchmarks are shown in red. The user is provided with information that the test results are not as per benchmark. The user can go back to the Home page by clicking on the ‘Back’ button.

View Past Test Results

Past test results (both IoT and Lab) can be viewed via the TQM landing page and by clicking on past tests.

On clicking on past tests, the user is redirected to the list of past tests.

The user can perform the following tasks:

  1. View the list of past tests. The following will be the fields displayed:

a. Test ID.

b. Treatment process (in case there is only 1 treatment process for the plant, this field will not be displayed).

c. Stage: This will display the process stage where the sample is to be collected from.

d. Output type: Biosolids/effluents

e. Pending date: This is the test date as per schedule.

f. Test result: Pass/fail.

2. View test details: The user can view test details by clicking on “View Results” button on each card.

  1. Filter tests: On clicking on Filter, a pop-up will be displayed. The following filters are available:

i. Treatment process: (in case there is only 1 treatment process for the plant, this field will not be displayed). This will be a dropdown showing values for Treatment Processes configured for the plant. The selected treatment process is displayed here on selection. If not, the field is left blank.

ii. Output type: This will be a dropdown showing values for the output types configured for the plant. The selected output type is displayed here on selection. If not, the field is left blank.

iii. Test type: This will be a dropdown showing values for the test type (IoT/Lab). The selected test type is displayed here on selection. If not, the field is left blank.

iv. Date range: The selection of date range (calendar view) - The selected date range is displayed here on selection. If not, the field is left blank.

On selecting values for filters above, the user can click on filter to filter the inbox. To clear filters, the user can click on clear all. To close the pop-up, a user can click on the cross on the top right hand corner of the screen. On selection of the filter, the selected filter is displayed on the screen. On clicking the cross button near the displayed filter, the filter is removed.

  1. Sort: On clicking on sort, a pop-up will be displayed:

a. Tests can be sorted by the pending date:

  1. Date (Latest first)

  2. Date (Latest last)

b. On selecting values for sort above, the user can click on sort to sort the inbox.

c. To clear sort, the user can click on clear all.

d. To close the pop-up, the user can click on the cross on the top right hand corner of the screen.

  1. In case filters/sort/search is applied and the user navigates to the test details page, on going back, the values of the filters/sort/search should remain the same.

  1. The user can download the list of tests, filtered by selection in Excel and PDF format.

  2. Go back to the Landing page using the back button.

  3. A help button is available for the user to get a guided view of the page. This is available on every page.

On clicking the “View Results” button, the user will be redirected to the test summary page.

The page will have 2 cards:

The first card will display the following fields:

  • Test ID.

  • Treatment Process.

  • Stage.

  • Output Type.

  • Test Type.

  • Lab Name/Device ID: This will show Lab Name/Device ID based on the Test type.

  • Test submitted on.

  • Test Results: Pass/Fail.

The second card will display the following fields:

  • Parameters, their unit of measurement and the values of the parameters recorded. The values will be read/green basis whether they are as per benchmarks or not.

The user can go back to the list of tests by clicking on the ‘Back’ button, both on the top and bottom of the page.

View IoT Readings

IoT readings can be viewed via the TQM landing page and clicking on view IoT readings.

On clicking on View IoT readings, the user is redirected to the view tests page filter on test type: IoT.

The functionality of the page remains the same as the “View Past Tests” page.

Sensor Monitoring

Sensor monitoring can be accessed by clicking on the sensor monitoring link on the TQM landing page.

On clicking on sensor monitoring, the list of IoT devices are displayed.

The following details are displayed on the page:

  • Total number of IoT devices is displayed beside the page heading in brackets.

  • A card is available for each device. The following details will be displayed:

- Device ID.

- Treatment Process.

- Stage.

- Output Type.

- Last Calibrated Date.

- Device Status.

- Verification Status.

- Last Verification Date.

- Parameters that the device monitors.

The user can perform the following actions:

  1. Filter devices: On clicking on filter, a pop-up will be displayed.

a. The following filters are available:

i. Treatment process: (in case there is only 1 treatment process for the plant, this field will not be displayed). This will be a dropdown showing values for the treatment processes configured for the plant. The selected treatment process is displayed here on selection. If not, the field is left blank.

ii. Output type: This will be a dropdown showing values for the output types configured for the plant. The selected output type is displayed here on selection. If not, the field is left blank.

iii. Device status: This will be a radio button showing active/inactive

iv. Parameters: This will be a multi-select displaying all parameters configured on the backend.

b. On selecting values for filters above, the user can click on filter to filter the inbox.

c. To clear filters, the user can click on clear all.

d. To close the pop up, the user can click on the cross on the top right hand corner of the screen.

e. On selection of the filter, the selected filter is displayed on the screen. On clicking the cross button near the displayed filter, the filter is removed.

  1. Search: On clicking on search, a pop-up will be displayed.

a. The user can search a device by device ID. Part search to be enabled.

View Dashboard

Dashboards can be accessed by clicking on the “View Dashboards” link on the TQM landing page.

Navigation:

On landing on the dashboard, the user can navigate across the treatment process types to view the dashboard specific to the treatment process type.

Filter:

Date range: Users should be able to filter based on the date range basis which dashboard is to be filtered.

Other functionalities:

Share:

  • Users should be able to share a filtered dashboard over WhatsApp in an image format.

  • Users should be able to share filtered charts/tables over WhatsApp in an image format.

Download:

  • Users should be able to download the filtered dashboard in PDF and image formats.

  • Users should be able to download filtered charts/tables in PDF and image formats.

Metrics:

  • Total incoming sludge: The sum of the total sludge that is disposed of at the plant for the selected time period.

  • Number of trips: A count of the total incoming vehicles at the treatment plant for the selected time period.

  • Overall quality: The number of tests where all parameters are as per the benchmarks as compared to the total number of test results recorded.

  • Compliance percentage: The percentage of tests where results have been recorded.

  • Total alerts: A count of the total alerts raised of the following types: Test results not as per the benchmark, no reading from the IoT device, and lab results and IoT results not matching.

Treatment Quality Overview:

KPIs:

  • Total tests - A count of the total tests for the filtered date range.

  • A count of tests that have passed treatment quality.

  • A count of tests that have failed the treatment quality.

Table:

  1. Heading - Name of the plant.

  2. Table displaying the following fields:

a. Stage, output type, value of parameters, and compliance percentage.

b. Button to view the trends for a particular stage.

  1. Toggle to toggle between IoT readings and lab results.

Trends of parameter readings:

This chart will be available once the user clicks on the view trend button in the table button.

The table shows the trend for one parameter over time, and provides a view of the benchmark for comparison. A toggle is available to navigate between the parameters. Detailed metric details for the Treatment Quality Monitoring dashboard are viewable below:

Section Heading

Chart Heading

Subheading

Definitions ((This will appear on the dashboard whenever a user hovers on the metric wherever applicable))

Chart Type

X-Axis

Y-Axis

Value

Columns

How to calculate

Boundary

Dtill down/Toggle

Comparsion KPIs, if any

Show comparison in

Specific to State/ULB/ TRP/all

Tooltip on Hover on Data Point

Input Fields

1

Input

Total Incoming Sludge

NA

Total Incoming sludge from registered and unregistered vehicles

KPI

NA

NA

Total Incoming Sludge

NA

Total incoming sludge = (Volume of Waste Disposed for Registered Vehicles) + (Volume of Waste Disposed for Unregistered Vehicles)

State, Plant ULB

NA

NA

NA

NA

2

Input

# incoming trips

NA

Number of trips disposed at the Treatment plant

KPI

NA

NA

Count of Trips to the Treatment plant from registered and unregistered vehicles

NA

Number of trips disposed = Count(DISTINCT Trip ID)

State, Plant ULB

NA

NA

NA

NA

3

Treatment Quality

Overall Quality

NA

% of tests where all parameters are as per benchmarks

KPI

NA

NA

% of test results meeting benchmarks

NA

Overall Quality = (Number of tests where all parameters meet benchmarks / Total number of tests) * 100

State, Plant ULB

NA

NA

NA

NA

4

Treatment Quality

Compliance

NA

% of tests where results have been recorded

KPI

NA

NA

% of tests with Status as submitted out of total tests

Compliance % = (Count of Test ID in status 'Submitted' / Count (Distinct Trip ID) * 100

State, Plant ULB

NA

NA

NA

NA

5

Alerts

Total Alerts

NA

Total Alerts raised by the system in the following categories: 1) Test Results not as per benchmark 2) No reading from IoT device 3) Lab results and IoT results not matching

KPI

NA

NA

Total Alerts

Count(DISTINCT AlertID)

State, Plant ULB

NA

NA

NA

NA

6

Treatment Quality Plants

Total Plants

NA

NA

NA

NA

NA

Count of Plants

Count (Distinct PlantID)

State, Plant ULB

NA

NA

NA

NA

7

Treatment Quality Plants

Treatment Quality Passed

NA

Treatment quality is considered passed if all parameters of both Biosolids and Effluents are as per benchmarks for the output of the Treatment Process in the last test recorded.

NA

NA

NA

Count of Plants with Treatment Quality Passed

Treatment Quality for Output type =IF(COUNTIF(All Parameters Meet Benchmarks, FALSE) = 0, "Treatment Quality for Output type passed ", "Treatment Quality for Output type failed") Treatment Quality for Plant passed = =IF(COUNTIF(Treatment Quality for Output type, FALSE) = 0, " Treatment Quality Passed ", "Treatment Quality Failed")

State, Plant ULB

NA

NA

NA

NA

8

Treatment Quality Plants

Treatment Quality Failed

NA

Treatment quality is considered failed when 1 or more parameters of Biosolids or Effluents are not as per benchmarks for the output of the Treatment Process in the last test recorded.

NA

NA

NA

Count of Plants with Treatment Quality Failed

Count (Distinct PlantID) - Treatment Quality Passed

State, Plant ULB

NA

NA

NA

NA

9

Treatment Quality Plants

NA

NA

NA

Map

NA

NA

Point = Geolocation of Plant Plant Icon Colour - Green if Treatment Quality Passed, Red if Treatment Quality Failed

Same as 7 and 8

State, Plant ULB

NA

NA

NA

NA

Name of Plant

10

Treatment Quality Plants

NA

NA

NA

Table

NA

NA

NA

Plant Name, Test Result, Compliance %

Test Result Same as S.No 7 and S.No 8

State, Plant ULB

NA

NA

NA

NA

11

Treatment Quality Plants

NA

NA

NA

Table

NA

NA

NA

Stage, Output Type, Parameters 1...n, Compliance %

Mentioned above

State, Plant ULB

NA

Compliance %

% from last month

NA

12

Trend in [Parameter Name] Readings

NA

NA

NA

Multi-Line Chart

Test Dates

Parameter Value

- Value of Device Reading - Value of Lab results

NA

NA

Plant

NA

NA

NA

NA

Date Lab result - X Device Reading - Y

Landing Page: ULB Employee

A card for Treatment Quality Monitoring will be made available on the landing page of the employee.

  1. The treatment quality contain the following:

a. An overview of the total pending tests and how many are nearing SLA.

b. View upcoming tests using the inbox. The inbox will show a count of upcoming tests beside in brackets.

c. View past test results: Past results from both lab and IoT devices will be displayed here.

d. View IoT readings: The user can access the record of IoT readings here.

e. Sensor monitoring: The user can access a list of IoT devices along with their status here.

f. View dashboard: The user will be directed to the treatment quality dashboard.

Clicking on each of these links will take the user to the specific page.

  1. Notifications: This will show the list of alerts regarding TQM. Currently, this will display the tests that have crossed SLA for greater than 7 days. The user can view the details of the test by clicking on the “View Details” button. The user can dismiss the notification by clicking on the cross button.

  2. Rest of the functionality will remain the same as the current ULB employee landing page.

View List of Upcoming Tests

On clicking on Inbox, the user is redirected to the list of upcoming tests. This will show only a list of lab tests. The user can perform the following tasks:

  1. The total count of upcoming tests are displayed beside the inbox in brackets.

  2. View a list of upcoming tests. The list of upcoming tests will be sorted by the pending date, where the test with the highest SLA is displayed first. The following fields will be displayed:

a. Test ID

b. Plant Name

c. Treatment Process

d. Pending Date: This is the test date as per schedule

e. Status: Status of the test

f. SLA: Show difference between test due date and today. This will be displayed in red if test due date<today and in green if today>test due date.

The user can view test details by clicking on the test ID.

  1. Filter tests: Filters are displayed on the left hand panel of the screen. The following filters are available:

i. Treatment process: This will be multi-select showing values for the treatment processes configured for the ULB. The selected treatment process will be displayed as a tick on the multi-select box. If not, it is left blank.

ii. Stages: This will be a dropdown showing values for stages configured for the plant. The selected stage is displayed here on selection. If not, the field is left blank.

iii. Status: This will be a multi-select showing values for the status in the treatment quality workflow.

On selecting values for filters above, the user can click on filter to filter the inbox. To clear filters, the user can click on the refresh icon on the top right of the filter panel.

  1. Sort: Tests can be sorted by the pending date by clicking on the date column.

  2. Search:

    a. Tests can be searched using the following:

i. Test ID.

ii. Plant Name.

b. Part search to be enabled for both.

c. Users can fill either test ID or plant or both and click on the search button.

d. Users can clear search by clicking on the clear search link.

  1. In case filters/sort/search is applied and the user navigates to the test details page, on going back, the values of the filters/sort/search should remain the same.

  2. Redirecting to other links in the TQM module: Users can redirect to other pages in the TQM module via the links provided on the top left of the page. The following links will be displayed:

a. View Past Results

b. View IoT Results

c. Sensor Monitoring

d. View Dashboard

View Test Details

A test details page can be accessed by clicking on the test ID in the inbox. The test details page will consist of the following fields:

  • The following information will be displayed. In case the information on any field is not available such as the lab name/value against parameters based on the status of the test, the value against the fields will be displayed as “To be Updated”

- Test ID

- Plant Name

- Treatment Process

- Stage

- Output Type

- Test Type

- Test Scheduled on

- Status

- Lab Name

- Sample submitted on

- Test results submitted on

- SLA (This will be displayed in red/green based on the SLA. If today>pending date, this is red, If today<pending date, then green for open tests. For closed tests, SLA will be displayed).

- Table containing the following details:

i. S.No

ii. Parameter

iii. UoM

iv. Benchmark

v. Value Recorded - The value will be displayed in red/green based on comparison to the benchmark

vi. Overall Test results - Pass/Fail

- Attached documents, if any. The user should be able to view the document by clicking on the document icon. No icon will be present if documents are not attached.

- Test Timeline

  • The user can go back using the breadcrumbs of the page.

  • The user can download the test report by clicking on the 'Download' button.

View Past Test Results

Past test results (both IoT and Lab) can be viewed via the TQM landing page and clicking on past tests.

On clicking on past test results, the user is redirected to the list of past tests.

The user can perform the following tasks:

  1. View the list of past tests. The results will be sorted on the test date. The following will be the fields displayed:

a. Test ID

b. Plant

c. Treatment Process (in case the there is only 1 treatment process for the plant, this field will not be displayed).

d. Test Type

e. Test Date: This is the date the test results are updated

f. Test Result: Pass/Fail

  1. View test details: The user can view test details by clicking on the “Test ID” link in each row.

  2. Search tests: The user can search based on the following:

i Test ID: Input text field, part search should be enabled.

ii. Plant: Dropdown of list of plants in the ULB.

iii. Treatment process: Dropdown of list oftTreatment Process in the ULB.

iv. Test type: This will be a dropdown showing values for the test type (IoT/Lab). The selected test type is displayed here on selection. If not, the field is left blank.

v. Date range: Selection of date range (calendar view): The selected date range is displayed here on selection. If not, the field is left blank.

On selecting values for search above, the user can click on search to filter the inbox. To clear search and view all past tests, the user can click on “Clear Search”.

  1. Sort: Tests can be sorted by the pending date by clicking on the date column.

  2. In case filters/sort/search is applied and the user navigates to the test details page, on going back, the values of the filters/sort/search should remain the same.

  3. Download test results in Excel and PDF formats using the download button.

  4. The user can go back using the breadcrumbs on the top of the page. In case the user has navigated to the test details page from the past test results list, on clicking back, the user should be redirected to the test details page.

On clicking on any test ID button, the user will be redirected to the test details page (same as redirection from the inbox).

View IoT Readings

IoT readings can be viewed via the TQM landing page and clicking on “View IoT Reading”.

On clicking on IoT readings, the user is redirected to the list of past tests, with the search on test type selected as IoT and the results filtered for IoT readings only. All other functionality will remain the same.

Sensor Monitoring

The list of devices can be viewed via the TQM landing page and by clicking on ‘Sensor Monitoring’’.

On clicking on sensor monitoring, the user is redirected to the list of devices.

The user can perform the following:

  • View total devices: The total number of IoT devices is displayed beside the page heading in brackets.

  • A row is available for each device. The following details will be displayed:

- Device ID

- Plant

- Treatment Process

- Stage

- Output Type

- Device Status

- Parameters: One or multiple parameters that the device is monitoring.

The user can perform the following actions:

a. Search Devices: On clicking on the filter, a pop up will be displayed. The following filters are available:

  1. Device ID: Part search should be available here.

  2. Plant: Dropdown based on plants configured in the MDMS.

  3. Treatment process: Dropdown-based on the treatment process type.

  4. Stage: Dropdown-based stage of selected treatment process.

  5. Output type: This will be a drop down showing values for Output types configured for the plant.

  6. Device status: Dropdown contains active/Inactive as options.

b. On selecting values for filters above, the user can click on Search to filter the inbox.

c. To clear search, the user can click on clear all.

Record Test Result

Since actors such as PCB might conduct adhoc tests, a provision will be provided to the user to record test results without a schedule. A user can record test results by clicking on the “Add Test Result” link on the card.

Clicking on the “Add Test Result” button will redirect the user to the “Add Test Result” page.

The following fields need to be entered by the user:

  • Plant Name: This is a dropdown based on the list of plants available in the system. For a state level user, this should display all plants in the state. For a ULB, it should also display the names tagged to the ULB.

  • Treatment Process: This is a dropdown based on the list of treatment processes in the plant selected.

  • Treatment Stage: This is a dropdown based on the list of stages in the treatment process selected.

  • Output Type: This is a dropdown based on the output types available in the stage

  • Values against parameters. Atlease 1 parameter needs to be filled for the submit button to be enabled. If no parameter is filled and the user clicks on the submit button, an error message is displayed as a snack bar.

  • Attachments, if any.

Once the user clicks on the Submit button, the test results page is displayed.

This is the same as the “View Test Results” page with the following changes:

  • TesttType will be displayed as Lab.

  • Status, lab name and SLA field are not displayed.

  • Workflow will not be displayed.

The user can go back to the “Add Test Results” page via the breadcrumbs.

View Dashboard

The TQM Dashboard will be made available to both the ULB employee and the state employee, and can be accessed by clicking on the dashboard link on the landing page.

On clicking on the dashboard, the user is directed to the dashboard view.

The access to data in the dashboard will be based on the following roles:

  1. ULB admin will be able to view the dashboard for all plants in the ULB.

  2. A state admin will be able to view the dashboard for all plants in the ULB.

Navigation:

On landing on the dashboard, the user can navigate across the treatment process types to view the dashboard specific to the treatment process type.

Filters:

  1. Date range: Users should be able to filter based on the date range.

  2. ULB: Users should be able to filter based on the ULB. For a ULB employee, the ULB is auto-selected to the ULB the plant and employee is tagged to. For a state user, all ULBs are available.

  3. Plant: Users should be able to filter based on the plant. For ULB employees, plants tagged to the ULB to which the employee belongs should be available in the dropdown. For state users, all plants are available.

Other functionalities:

  • Share:

- Users should be able to share a filtered dashboard over WhatsApp in an image format.

- Users should be able to share filtered charts/tables over WhatsApp in an image format.

  • Download:

- Users should be able to download the filtered dashboard in PDF and image formats.

- Users should be able to download the filtered charts/tables in PDF and image formats.

Metrics

Overall KPIs:

The dashboard will display the following KPIs:

  • Total incoming sludge: The sum of the total sludge that is disposed of at the plant for the selected time period.

  • Number of trips: A count of total incoming vehicles at the treatment plant for the selected time period.

  • Overall quality: The number of tests where all parameters are as per benchmarks as compared to the total number of test results recorded.

  • Compliance percentage: The percentage of tests where results have been recorded

  • Total alerts: A Count of total alerts raised of the following types: Test results not as per benchmark, the number reading from IoT device, and lab results and IoT results not matching.

Treatment quality overview:

KPIs:

  • Total plants - A count of the unique plants for the particular treatment process.

  • Count of plants who have passed the treatment quality as per the last recorded test.

  • Count of plants who have failed the treatment quality as per the last recorded test.

Treatment quality is said to have passed if all parameters for final output(s) of a treatment process are as per benchmarks. Treatment quality is said to have failed if 1 or more parameters for final output(s) of a treatment process is not as per benchmarks.

Map:

A map view of the location of each plant will be displayed as part of the dashboard. Plants here will be colour coded, based on whether it has passed/failed the treatment quality. (Red = failed, Green = passed).

Table:

A table will be available to plant-wise details of test results (pass/fail), and the compliance percentage. This will be as per the last test result. The user will also be able to see a change in compliance percentage compared to the last month. A drilldown will be made available for a plant via this table. For TRP users and ULBs, where only 1 plant is tagged for the process type, the drilled table is automatically visible.

On drilldown, the following is viewable to the user:

  1. Heading - Name of plant.

  2. Table displaying the following fields:

a. Stage, output type, value of parameters, and compliance percentage.

b. Button to view the trends for a particular stage.

  1. Toggle to toggle between IoT readings and lab results.The selected test type will appear highlighted.

  2. If there are multiple process flows, then the user can switch between process flows by using the buttons. The selected process flow will appear highlighted.

Trends of parameter readings:

This chart will be available once the user clicks on the view trend button in the table button.

The table shows the trend for one parameter over time and provides a view of the benchmark for comparison. A toggle is available to navigate between parameters.

S.No
S.No
S.No

FSM-DSS Technical Documentation

Overview

DSS has two sides to it: One being the process in which the data is pooled to ElasticSearch, and the other being the way it is fetched, aggregated, computed, transformed and sent across. As this revolves around a variety of data sets, there is a need for making this configurable so that, if a new scenario is introduced, then it is a configuration away from getting the newly-introduced scenario involved in this flow of process.

This document explains the steps on how to define the configurations for the analytics side of DSS for FSM.

What is analytics?

Analytics: Micro-service that is responsible for building, fetching, aggregating, and computing the data on ElasticSearch to a consumable data response, which will be later used for visualisations and graphical representations.

Analytics Configurations

Analytics contains multiple configurations. We need to add the changes related to FSM in this dashboard-analytics. Here is the location: configs/egov-dss-dashboards/dashboard-analytics at qa · egovernments/configs Below is a list of configurations that need to be changed to run FSM successfully.

  1. Chart API Configuration

  2. Master Dashboard Configuration

  3. Role Dashboard Mappings Configuration

Description

Chart API Configuration

Each visualisation has its own properties, and comes from different data sources (sometimes it is a combination of different data sources).

In order to configure each visualisation and their properties, we have a chart API configuration document. In this, the visualisation code, which happens to be the key, will have its properties configured as a part of configuration, and are easily changeable.

Here is the sample ChartApiConfiguration.json data for FSM.

  "fsmTotalrequest": {
    "chartName": "DSS_FSM_TOTAL_REQUESTS",
    "queries": [
      {
        "module": "FSM",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Total Application\":{\"value_count\":{\"field\":\"Data.fsm.@timestamp\"}}}}}}",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "dateRefField": "Data.fsm.@timestamp"
      }
    ],
    "chartType": "metric",
    "valueType": "number",
    "action": "",
    "drillChart": "none",
    "aggregationPaths": [
      "Total Application"
    ],
    "insight": {
      "chartResponseMap" : "totalApplication",
      "action" : "differenceOfNumbers",
      "upwardIndicator" : "positive",
      "downwardIndicator" : "negative",
      "textMessage" : "$indicator$value% than last $insightInterval",
      "colorCode" : "#228B22",
      "insightInterval" : "year",
      "isRoundOff": true
    },
    "_comment": " FSM Total Applications"
  },
  "totalSludgeTreated": {
    "chartName": "DSS_FSM_TOTAL_SLUDGE_TREATED",
    "queries": [
      {
        "module": "FSM",
        "indexName": "vehicletrip",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.vehicleTrip.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Total Sludge Collection\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.volumeCarried'].value)/1000.0\"}}}}}}}",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "dateRefField": "Data.vehicleTrip.@timestamp"
      }
    ],
    "chartType": "metric",
    "valueType": "number",
    "action": "",
    "drillChart": "none",
    "aggregationPaths": [
      "Total Sludge Collection"
    ],
    "insight": {
      "chartResponseMap" : "totalSludgeTreated",
      "action" : "differenceOfNumbers",
      "upwardIndicator" : "positive",
      "downwardIndicator" : "negative",
      "textMessage" : "$indicator$value% than last $insightInterval",
      "colorCode" : "#228B22",
      "insightInterval" : "year",
      "isRoundOff": true
    },
    "_comment": " FSM Total Sludge Treated"
  },
  "avgFSMCostRequest": {
    "chartName": "DSS_FSM_AVG_FSM_COST_OR_REQ",
    "queries": [
      {
        "module": "FSM",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.tenantId.keyword\":\"pb.testing\"}}],\"must\":[{\"term\":{\"Data.payments.paymentDetails.businessService.keyword\":\"FSM.TRIP_CHARGES\"}}]}},\"aggs\":{\"Average Collection\":{\"avg\":{\"field\":\"Data.payments.paymentDetails.bill.billDetails.amountPaid\"}}}}}}",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "dateRefField": "Data.fsm.@timestamp"
      }
    ],
    "chartType": "metric",
    "valueType": "amount",
    "action": "",
    "drillChart": "none",
    "isRoundOff": true,
    "aggregationPaths": [
      "Average Collection"
    ],
    "insight": {
      "chartResponseMap" : "averageCollection",
      "action" : "differenceOfNumbers",
      "upwardIndicator" : "positive",
      "downwardIndicator" : "negative",
      "textMessage" : "$indicator$value% than last $insightInterval",
      "colorCode" : "#228B22",
      "insightInterval" : "year",
      "isRoundOff": true
    },
    "_comment": " FSM Average Collection"
  },
  "totalCollectioninLacs": {
    "chartName": "DSS_FSM_TOTAL_COLLECTION",
    "queries": [
      {
        "module": "FSM",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.tenantId.keyword\":\"pb.testing\"}}],\"must\":[{\"term\":{\"Data.payments.paymentDetails.businessService.keyword\":\"FSM.TRIP_CHARGES\"}}]}},\"aggs\":{\"Total Collection\":{\"sum\":{\"field\":\"Data.payments.paymentDetails.bill.billDetails.amountPaid\"}}}}}}",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "dateRefField": "Data.fsm.@timestamp"
      }
    ],
    "chartType": "metric",
    "valueType": "amount",
    "action": "",
    "drillChart": "none",
    "documentType": "_doc",
    "aggregationPaths": [
      "Total Collection"
    ],
    "insight": {
      "chartResponseMap" : "totalCollection",
      "action" : "differenceOfNumbers",
      "upwardIndicator" : "positive",
      "downwardIndicator" : "negative",
      "textMessage" : "$indicator$value% than last $insightInterval",
      "colorCode" : "#228B22",
      "insightInterval" : "year",
      "isRoundOff": true
    },
    "_comment": " FSM Total Collection"
  },
  "slaCompliance": {
    "chartName": "DSS_FSM_SLA_COMPLIANCE",
    "queries": [
      {
        "module": "FSM",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.service.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Closed With In Sla\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"count\":{\"terms\":{\"field\":\"Data.fsm.tenantId.keyword\"},\"aggs\":{\"tenant_count\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}}}},\"Total Applications\":{\"terms\":{\"field\":\"Data.fsm.tenantId.keyword\"},\"aggs\":{\"tenant_count\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}}}}}}",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "dateRefField": "Data.fsm.@timestamp"
      }
    ],
    "chartType": "metric",
    "valueType": "percentage",
    "drillChart": "none",
    "documentType": "_doc",
    "action": "percentage",
    "isRoundOff": true,
    "aggregationPaths": [
      "Closed With In Sla",
      "Total Applications"
    ],
    "insight": {
      "chartResponseMap" : "slaCompliance",
      "action" : "differenceOfNumbers",
      "upwardIndicator" : "positive",
      "downwardIndicator" : "negative",
      "textMessage" : "$indicator$value% than last $insightInterval",
      "colorCode" : "#228B22",
      "insightInterval" : "year",
      "isRoundOff": true
    },
    "_comment": " SLA Compliance"
  },
  "citizenAvgRating": {
    "chartName": "DSS_FSM_CITIZEN_AVG_RATING",
    "queries": [
      {
        "module": "FSM",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.fsm.tenantId.keyword\":\"pb.testing\"}}],\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\"]}},{\"term\":{\"Data.history.action.keyword\":\"RATE\"}},{\"exists\":{\"field\":\"Data.history\"}},{\"range\":{\"Data.history.rating\":{\"gte\":1}}}]}},\"aggs\":{\"Citizen Average Rating\":{\"avg\":{\"script\":\"int sum = 0;int count =0;if(params['_source']['Data']['history']!=null){ for (item in params['_source']['Data']['history']) {if(item.rating!=null){ sum += item.rating;} }} return sum;\"}}}}}}",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "dateRefField": "Data.fsm.@timestamp"
      }
    ],
    "chartType": "metric",
    "valueType": "number",
    "action": "",
    "drillChart": "none",
    "documentType": "_doc",
    "aggregationPaths": [
      "Citizen Average Rating"
    ],
    "postAggregationTheory": "",
    "insight": {},
    "_comment": " Citizen Average rating"
  },
  "fsmCollectionByUsageType": {
    "chartName": "DSS_FSM_COLLECTION_BY_USAGE_TYPE",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Usage Type\":{\"terms\":{\"field\":\"Data.fsm.propertyUsage.keyword\"},\"aggs\":{\"Assessed Properties\":{\"sum\":{\"field\":\"Data.payments.paymentDetails.bill.billDetails.amountPaid\"}}}}}}}}"
      }
    ],
    "chartType": "pie",
    "valueType": "amount",
    "action": "",
    "documentType": "_doc",
    "drillChart": "none",
    "aggregationPaths": [
      "Usage Type"
    ],
    "insight": {
    },
    "_comment": " "
  },
  "fsmTotalCumulativeCollection": {
    "chartName": "DSS_FSM_TOTAL_CUMULATIVE_COLLECTION",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Total Collection\":{\"date_histogram\":{\"field\":\"Data.fsm.@timestamp\",\"interval\":\"intervalvalue\"},\"aggs\":{\"Count\":{\"sum\":{\"field\":\"Data.payments.paymentDetails.bill.billDetails.amountPaid\"}}}}}}}}"
      }
    ],
    "chartType": "line",
    "valueType": "amount",
    "action": "",
    "drillChart": "none",
    "documentType": "_doc",
    "aggregationPaths": [
      "Total Collection"
    ],
    "isCumulative": true,
    "interval": "month",
    "insight": {
    },
    "_comment": " "
  },
  "fsmTopUlbByPerformance": {
    "chartName": "DSS_FSM_TOP_ULB_BY_PERFORMANCE",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Closed With In Sla\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"count\":{\"terms\":{\"field\":\"Data.fsm.tenantId.keyword\"},\"aggs\":{\"tenant_count\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}}}},\"Total Applications\":{\"terms\":{\"field\":\"Data.fsm.tenantId.keyword\"},\"aggs\":{\"tenant_count\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}}}}}}"
      }
    ],
    "chartType": "perform",
    "valueType": "percentage",
    "drillChart": "none",
    "documentType": "_doc",
    "drillChart": "ulbTopDrillChart",
    "action": "percentage",
    "plotLabel": "DSS_COMPLETION_RATE",
    "isRoundOff": true,
    "order": "desc",
    "limit": 3,
    "aggregationPaths": [
      "Closed With In Sla",
      "Total Applications"
    ],
    "isCumulative": false,
    "interval": "month",
    "insight": {
    },
    "_comment": ""
  },
  "ulbTopDrillChart": {
    "chartName": "DSS_FSM_ULB_PERFORMANCE",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"ULB\":{\"terms\":{\"field\":\"Data.fsm.tenantId.keyword\",\"size\":1000,\"order\":{\"_count\":\"desc\"}},\"aggs\":{\"TotalRequests\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}},\"ClosedWithInSLA\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"ClosedOutsideSLA\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value > params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"CitizenAverageRating\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\"]}},{\"term\":{\"Data.history.action.keyword\":\"RATE\"}},{\"exists\":{\"field\":\"Data.history\"}},{\"range\":{\"Data.history.rating\":{\"gte\":1}}}]}},\"aggs\":{\"CitizenAvgRating\":{\"avg\":{\"script\":\"int sum = 0;int count =0;if(params['_source']['Data']['history']!=null){ for (item in params['_source']['Data']['history']) {if(item.rating!=null){ sum += item.rating;} }} return sum;\"}}}}}}}}}}"
      }
    ],
   "filterKeys": [
      {"key": "tenantId", "column": "ULB"}
    ],
    "isPostResponseHandler": true,
    "chartType": "table",
    "valueType": "number",
    "action": "",
    "documentType": "_doc",
    "drillChart": "none",
    "plotLabel":"ULB",
    "aggregationPaths": [
      "TotalRequests",
      "ClosedWithInSLA",
      "ClosedOutsideSLA",
      "CitizenAverageRating"
    ],
    "pathDataTypeMapping": [
      {
        "TotalRequests" : "number"
      },
      {
        "ClosedWithInSLA" : "number"
      },
      {
        "ClosedOutsideSLA" : "number"
      },
      {
        "CitizenAverageRating" : "number"
      }
    ],
    "isCumulative": true,
    "interval": "month",
    "insight": {
    },
    "_comment": " "
  },
  "fsmBottomUlbByPerformance": {
    "chartName": "DSS_FSM_BOTTOM_ULB_BY_PERFORMANCE",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Closed With In Sla\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"count\":{\"terms\":{\"field\":\"Data.fsm.tenantId.keyword\"},\"aggs\":{\"tenant_count\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}}}},\"Total Applications\":{\"terms\":{\"field\":\"Data.fsm.tenantId.keyword\"},\"aggs\":{\"tenant_count\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}}}}}}"
      }
    ],
    "chartType": "perform",
    "valueType": "percentage",
    "drillChart": "none",
    "documentType": "_doc",
    "drillChart": "ulbBottomDrillChart",
    "action": "percentage",
    "isRoundOff": true,
    "plotLabel": "DSS_COMPLETION_RATE",
    "order": "asc",
    "limit": 3,
    "aggregationPaths": [
      "Closed With In Sla",
      "Total Applications"
    ],
    "isCumulative": false,
    "interval": "month",
    "insight": {
    },
    "_comment": ""
  },
  "ulbBottomDrillChart": {
    "chartName": "DSS_FSM_ULB_PERFORMANCE",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"ULB\":{\"terms\":{\"field\":\"Data.fsm.tenantId.keyword\",\"size\":1000,\"order\":{\"_count\":\"asc\"}},\"aggs\":{\"TotalRequests\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}},\"ClosedWithInSLA\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"ClosedOutsideSLA\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value > params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"CitizenAverageRating\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\"]}},{\"term\":{\"Data.history.action.keyword\":\"RATE\"}},{\"exists\":{\"field\":\"Data.history\"}},{\"range\":{\"Data.history.rating\":{\"gte\":1}}}]}},\"aggs\":{\"CitizenAvgRating\":{\"avg\":{\"script\":\"int sum = 0;int count =0;if(params['_source']['Data']['history']!=null){ for (item in params['_source']['Data']['history']) {if(item.rating!=null){ sum += item.rating;} }} return sum;\"}}}}}}}}}}"
      }
    ],
   "filterKeys": [
      {"key": "tenantId", "column": "ULB"}
    ],
    "isPostResponseHandler": true,
    "chartType": "table",
    "valueType": "number",
    "action": "",
    "documentType": "_doc",
    "drillChart": "none",
    "plotLabel":"ULB",
    "aggregationPaths": [
      "TotalRequests",
      "ClosedWithInSLA",
      "ClosedOutsideSLA",
      "CitizenAverageRating"
    ],
    "pathDataTypeMapping": [
      {
        "TotalRequests" : "number"
      },
      {
        "ClosedWithInSLA" : "number"
      },
      {
        "ClosedOutsideSLA" : "number"
      },
      {
        "CitizenAverageRating" : "number"
      }
    ],
    "isCumulative": true,
    "interval": "month",
    "insight": {
    },
    "_comment": " "
  },
  "fsmCapacityUtilization": {
    "chartName": "DSS_FSTP_CAPACITY_UTILIZATION",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.vehicleTrip.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "vehicletrip",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.vehicleTrip.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Capacity Utilization\":{\"date_histogram\":{\"field\":\"Data.vehicleTrip.@timestamp\",\"interval\":\"month\"},\"aggs\":{\"Count\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.volumeCarried'].value)/1000.0\"}}}}}}}}}"
      }
    ],
    "chartType": "line",
    "valueType": "amount",
    "action": "",
    "isRoundOff": true,
    "documentType": "_doc",
    "drillChart": "none",
    "aggregationPaths": [
      "Capacity Utilization"
    ],
    "isCumulative": true,
    "interval": "month",
    "insight": {
    },
    "_comment": " "
  },
  "fsmMonthlyWasteCal": {
    "chartName": "DSS_FSM_MONTHLY_WASTE_CAL",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.vehicleTrip.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "vehicletrip",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.vehicleTrip.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Septage Dumped At Plant\":{\"date_histogram\":{\"field\":\"Data.vehicleTrip.@timestamp\",\"interval\":\"month\"},\"aggs\":{\"Count\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.volumeCarried'].value)/1000.0\"}}}}},\"Septage Collected\":{\"date_histogram\":{\"field\":\"Data.vehicleTrip.@timestamp\",\"interval\":\"month\"},\"aggs\":{\"Count\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.tripDetails.volume'].value)/1000.0\"}}}}}}}}}"
      }
    ],
    "chartType": "line",
    "valueType": "number",
    "action": "",
    "isRoundOff": true,
    "documentType": "_doc",
    "drillChart": "none",
    "aggregationPaths": [
      "Septage Collected",
      "Septage Dumped At Plant"
    ],
    "isCumulative": false,
    "interval": "month",
    "insight": {
    },
    "_comment": " "
  },
  "fsmTopDsoByPerformance": {
    "chartName": "DSS_FSM_TOP_DSO_BY_PERFORMANCE",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Raised\":{\"terms\":{\"field\":\"Data.vendor.name.keyword\",\"size\":3,\"order\":{\"_count\":\"desc\"}},\"aggs\":{\"Count\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}}}},\"Closed Within SLA\":{\"terms\":{\"field\":\"Data.vendor.name.keyword\",\"size\":3,\"order\":{\"_count\":\"desc\"}},\"aggs\":{\"Count\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}}}}}},\"Closed Outside SLA\":{\"terms\":{\"field\":\"Data.vendor.name.keyword\",\"size\":3,\"order\":{\"_count\":\"desc\"}},\"aggs\":{\"Count\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value > params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}}}}}}}}}}"
      }
    ],
    "chartType": "line",
    "valueType": "number",
    "action": "",
    "drillChart": "dsoTopDrillChart",
    "documentType": "_doc",
    "aggregationPaths": [
      "Raised",
      "Closed Within SLA",
      "Closed Outside SLA"
    ],
    "isCumulative": false,
    "interval": "month",
    "insight": {
    },
    "_comment": ""
  },
  "dsoTopDrillChart": {
    "chartName": "DSS_FSM_DSO_PERFORMANCE",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"DSOName\":{\"terms\":{\"field\":\"Data.vendor.name.keyword\",\"size\":1000,\"order\":{\"_count\":\"desc\"}},\"aggs\":{\"TotalRequest\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}},\"ClosedWithinSLA\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}}}},\"ClosedOutsideSLA\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value > params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}}}},\"CitizenAverageRating\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\"]}},{\"term\":{\"Data.history.action.keyword\":\"RATE\"}},{\"exists\":{\"field\":\"Data.history\"}},{\"range\":{\"Data.history.rating\":{\"gte\":1}}}]}},\"aggs\":{\"CitizenAvgRating\":{\"avg\":{\"script\":\"int sum = 0;int count =0;if(params['_source']['Data']['history']!=null){ for (item in params['_source']['Data']['history']) {if(item.rating!=null){ sum += item.rating;} }} return sum;\"}}}}}}}}}}"
      }
    ],
    "filterKeys": [
      {"key": "dsoName", "column": "DSOName"}
    ],
    "isPostResponseHandler": true,
    "chartType": "table",
    "valueType": "number",
    "action": "",
    "documentType": "_doc",
    "drillChart": "none",
    "plotLabel":"DSOName",
    "aggregationPaths": [
      "TotalRequest",
      "ClosedWithinSLA",
      "ClosedOutsideSLA",
      "CitizenAverageRating"
    ],
    "pathDataTypeMapping": [
      {
        "TotalRequest" : "number"
      },
      {
        "ClosedWithinSLA" : "number"
      },
        {
        "ClosedOutsideSLA" : "number"
      },
      {
        "CitizenAverageRating" : "number"
      }
    ],
    "isCumulative": true,
    "interval": "month",
    "insight": {
    },
    "_comment": " "
  },
  "fsmBottomDsoByPerformance": {
    "chartName": "DSS_FSM_BOTTOM_DSO_BY_PERFORMANCE",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Raised\":{\"terms\":{\"field\":\"Data.vendor.name.keyword\",\"size\":3,\"order\":{\"_count\":\"asc\"}},\"aggs\":{\"Count\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}}}},\"Closed Within SLA\":{\"terms\":{\"field\":\"Data.vendor.name.keyword\",\"size\":3,\"order\":{\"_count\":\"asc\"}},\"aggs\":{\"Count\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}}}}}},\"Closed Outside SLA\":{\"terms\":{\"field\":\"Data.vendor.name.keyword\",\"size\":3,\"order\":{\"_count\":\"asc\"}},\"aggs\":{\"Count\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value > params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}}}}}}}}}}"
      }
    ],
    "chartType": "line",
    "valueType": "number",
    "action": "",
    "drillChart": "dsoBottomDrillChart",
    "documentType": "_doc",
    "aggregationPaths": [
      "Raised",
      "Closed Within SLA",
      "Closed Outside SLA"
    ],
    "isCumulative": false,
    "interval": "month",
    "insight": {
    },
    "_comment": ""
  },
  "dsoBottomDrillChart": {
    "chartName": "DSS_FSM_DSO_PERFORMANCE",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"DSOName\":{\"terms\":{\"field\":\"Data.vendor.name.keyword\",\"size\":1000,\"order\":{\"_count\":\"asc\"}},\"aggs\":{\"TotalRequest\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}},\"ClosedWithinSLA\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}}}},\"ClosedOutsideSLA\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value > params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"valueCount\":{\"value_count\":{\"field\":\"Data.vendor.name.keyword\"}}}},\"CitizenAverageRating\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\"]}},{\"term\":{\"Data.history.action.keyword\":\"RATE\"}},{\"exists\":{\"field\":\"Data.history\"}},{\"range\":{\"Data.history.rating\":{\"gte\":1}}}]}},\"aggs\":{\"CitizenAvgRating\":{\"avg\":{\"script\":\"int sum = 0;int count =0;if(params['_source']['Data']['history']!=null){ for (item in params['_source']['Data']['history']) {if(item.rating!=null){ sum += item.rating;} }} return sum;\"}}}}}}}}}}"
      }
    ],
    "filterKeys": [
      {"key": "dsoName", "column": "DSOName"}
    ],
    "isPostResponseHandler": true,
    "chartType": "table",
    "valueType": "number",
    "action": "",
    "documentType": "_doc",
    "drillChart": "none",
    "plotLabel":"DSOName",
    "aggregationPaths": [
      "TotalRequest",
      "ClosedWithinSLA",
      "ClosedOutsideSLA",
      "CitizenAverageRating"
    ],
    "pathDataTypeMapping": [
      {
        "TotalRequest" : "number"
      },
      {
        "ClosedWithinSLA" : "number"
      },
      {
        "ClosedOutsideSLA" : "number"
      },
      {
        "CitizenAverageRating" : "number"
      }
    ],
    "isCumulative": true,
    "interval": "month",
    "insight": {
    },
    "_comment": " "
  },
  "fsmTotalReqByDistrict": {
    "chartName": "DSS_FSM_TOTAL_REQ_BY_DISTRICT",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtName\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Open_Req\":{\"filter\":{\"bool\":{\"must_not\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}}]}},\"aggs\":{\"OpenReq\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"Closed_Req\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}}]}},\"aggs\":{\"ClosedReq\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"TotalReq\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}},\"Closed_With_In_Sla\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"ClosedWithInSla\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"TotalCollection\":{\"sum\":{\"field\":\"Data.payments.paymentDetails.bill.billDetails.amountPaid\"}}}}}}"
      }
    ],
    "isMdmsEnabled": true,
    "filterKeys": [
      {"key": "tenantId", "column": "District"}
    ],
    "chartType": "xtable",
    "valueType": "number",
    "isRoundOff": true,
    "drillChart": "fsmTotalReqByTenant",
    "plotLabel": "District",
    "excludedColumns": ["ClosedWithInSla"],
    "computedFields": [
      {
        "postAggregationTheory" : "",
        "actionName": "PercentageComputedField",
        "fields" : ["ClosedReq", "TotalReq"],
        "newField" : "CompletionRateIn%",
        "_comments": "fields are field names picked from its aggregation query to use post aggregation newField value with given new field name  "
      },
      {
        "postAggregationTheory" : "",
        "actionName": "PercentageComputedField",
        "fields" : ["ClosedWithInSla","TotalReq"],
        "newField" : "SLAAchievedIn%",
        "_comments": "fields are field names picked from its aggregation query to use post aggregation newField value with given new field name  "
      }
    ],
     "chartSpecificProperty": {
     "XtableColumnOrder":[
     "S.N.",
     "District",
     "OpenReq",
     "ClosedReq",
     "TotalReq",
     "CompletionRateIn%",
     "SLAAchievedIn%",
     "TotalCollection"
     ]
     },
    "insight": {
    },
    "_comment": " "
  },
  "fsmTotalReqByTenant": {
    "chartName": "DSS_FSM_TOTAL_REQ_BY_ULB",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtName\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"ULBs\":{\"terms\":{\"field\":\"Data.fsm.tenantId.keyword\",\"size\":1000},\"aggs\":{\"Open_Req\":{\"filter\":{\"bool\":{\"must_not\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}}]}},\"aggs\":{\"OpenReq\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"Closed_Req\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}}]}},\"aggs\":{\"ClosedReq\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"TotalReq\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}},\"Closed_With_In_Sla\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"ClosedWithInSla\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"TotalCollection\":{\"sum\":{\"field\":\"Data.payments.paymentDetails.bill.billDetails.amountPaid\"}}}}}}}}"
      }
    ],
    "filterKeys": [
      {"key": "tenantId", "column": "ULB"}
    ],
    "chartType": "xtable",
    "valueType": "number",
    "isRoundOff": true,
    "drillChart": "fsmTotalReqByWard",
    "plotLabel": "ULB",
    "excludedColumns": ["ClosedWithInSla"],
    "computedFields": [
      {
        "postAggregationTheory" : "",
        "actionName": "PercentageComputedField",
        "fields" : ["ClosedReq", "TotalReq"],
        "newField" : "CompletionRateIn%",
        "_comments": "fields are field names picked from its aggregation query to use post aggregation newField value with given new field name  "
      },
      {
        "postAggregationTheory" : "",
        "actionName": "PercentageComputedField",
        "fields" : ["ClosedWithInSla","TotalReq"],
        "newField" : "SLAAchievedIn%",
        "_comments": "fields are field names picked from its aggregation query to use post aggregation newField value with given new field name  "
      }
    ],
    "chartSpecificProperty": {
     "XtableColumnOrder":[
     "S.N.",
     "ULB",
     "OpenReq",
     "ClosedReq",
     "TotalReq",
     "CompletionRateIn%",
     "SLAAchievedIn%",
     "TotalCollection"
     ]
     },
    "insight": {
    },
    "_comment": " "
  },
  "fsmTotalReqByWard": {
    "chartName": "DSS_FSM_TOTAL_REQ_BY_WARD",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.fsm.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "fsm",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"Data.fsm.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Ward\":{\"terms\":{\"field\":\"Data.ward.name.keyword\",\"size\":1000},\"aggs\":{\"Open_Req\":{\"filter\":{\"bool\":{\"must_not\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}}]}},\"aggs\":{\"OpenReq\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"Closed_Req\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}}]}},\"aggs\":{\"ClosedReq\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"TotalReq\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}},\"Closed_With_In_Sla\":{\"filter\":{\"bool\":{\"must\":[{\"terms\":{\"Data.fsm.applicationStatus.keyword\":[\"COMPLETED\",\"CITIZEN_FEEDBACK_PENDING\"]}},{\"script\":{\"script\":{\"source\":\"doc['Data.fsm.auditDetails.lastModifiedTime'].value - doc['Data.fsm.auditDetails.createdTime'].value < params.threshold\",\"lang\":\"painless\",\"params\":{\"threshold\":172800000}}}}]}},\"aggs\":{\"ClosedWithInSla\":{\"value_count\":{\"field\":\"Data.fsm.tenantId.keyword\"}}}},\"TotalCollection\":{\"sum\":{\"field\":\"Data.payments.paymentDetails.bill.billDetails.amountPaid\"}}}}}}}}"
      }
    ],
    "filterKeys": [
      {"key": "wardId", "column": "Ward"},
      {"key": "ulbId", "column": "ULB"}
    ],
    "chartType": "xtable",
    "valueType": "number",
    "isRoundOff": true,
    "drillChart": "none",
    "action": "",
    "documentType": "_doc",
    "plotLabel": "Ward",
    "excludedColumns": ["ClosedWithInSla"],
    "computedFields": [
      {
        "postAggregationTheory" : "",
        "actionName": "PercentageComputedField",
        "fields" : ["ClosedReq", "TotalReq"],
        "newField" : "CompletionRateIn%",
        "_comments": "fields are field names picked from its aggregation query to use post aggregation newField value with given new field name  "
      },
      {
        "postAggregationTheory" : "",
        "actionName": "PercentageComputedField",
        "fields" : ["ClosedWithInSla","TotalReq"],
        "newField" : "SLAAchievedIn%",
        "_comments": "fields are field names picked from its aggregation query to use post aggregation newField value with given new field name  "
      }
    ],
     "chartSpecificProperty": {
     "XtableColumnOrder":[
     "S.N.",
     "Ward",
     "OpenReq",
     "ClosedReq",
     "TotalReq",
     "CompletionRateIn%",
     "SLAAchievedIn%",
     "TotalCollection"
     ]
     },
    "insight": {
    },
    "_comment": " "
  },
  "fsmVehicleLogReportByDDR": {
    "chartName": "DSS_FSM_VECHILE_LOG_REPORT",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.vehicleTrip.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtName\"}",
        "indexName": "vehicletrip",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"data.vehicleTrip.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"NoOfTrips\":{\"value_count\":{\"field\":\"Data.vehicleTrip.@timestamp\"}},\"TotalSeptageCollected\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.tripDetails.volume'].value)/1000.0\"}}},\"TotalSeptageDumped\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.volumeCarried'].value)/1000.0\"}}},\"CapacityUtilization\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.volumeCarried'].value)/1000.0\"}}}}}}}"
      }
    ],
    "isMdmsEnabled": true,
    "filterKeys": [
      {"key": "tenantId", "column": "District"}
    ],
    "isPostResponseHandler": true,
    "chartType": "xtable",
    "valueType": "number",
    "action": "",
    "isRoundOff": true,
    "documentType": "_doc",
    "drillChart": "fsmVehicleLogReportByTenant",
    "plotLabel":"District",
    "aggregationPaths": [
      "NoOfTrips",
      "TotalSeptageCollected",
      "TotalSeptageDumped",
      "CapacityUtilization"
    ],
    "pathDataTypeMapping": [
      {
        "NoOfTrips" : "number"
      },
      {
        "TotalSeptageCollected" : "number"
      },
      {
        "TotalSeptageDumped" : "number"
      },
      {
        "CapacityUtilization" : "number"
      }
    ],
    "isCumulative": true,
    "interval": "month",
    "insight": {
    },
    "_comment": " "
  },
  "fsmVehicleLogReportByTenant": {
    "chartName": "DSS_FSM_VECHILE_LOG_REPORT",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.vehicleTrip.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtName\"}",
        "indexName": "vehicletrip",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"data.vehicleTrip.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"ULBs \":{\"terms\":{\"field\":\"Data.vehicleTrip.tenantId.keyword\",\"size\":1000},\"aggs\":{\"NoOfTrips\":{\"value_count\":{\"field\":\"Data.vehicleTrip.@timestamp\"}},\"TotalSeptageCollected\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.tripDetails.volume'].value)/1000.0\"}}},\"TotalSeptageDumped\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.volumeCarried'].value)/1000.0\"}}},\"CapacityUtilization\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.volumeCarried'].value)/1000.0\"}}}}}}}}}"
      }
    ],
    "filterKeys": [
      {"key": "tenantId", "column": "Boundary"}
    ],
    "isPostResponseHandler": true,
    "chartType": "xtable",
    "valueType": "number",
    "action": "",
    "isRoundOff": true,
    "documentType": "_doc",
    "drillChart": "fsmVehicleLogReportByVehicleNo",
    "plotLabel":"Boundary",
    "aggregationPaths": [
      "NoOfTrips",
      "TotalSeptageCollected",
      "TotalSeptageDumped",
      "CapacityUtilization"
    ],
    "pathDataTypeMapping": [
      {
        "NoOfTrips" : "number"
      },
      {
        "TotalSeptageCollected" : "number"
      },
      {
        "TotalSeptageDumped" : "number"
      },
      {
        "CapacityUtilization" : "number"
      }
    ],
    "isCumulative": true,
    "interval": "month",
    "insight": {
    },
    "_comment": " "
  },
  "fsmVehicleLogReportByVehicleNo": {
    "chartName": "DSS_FSM_VECHILE_LOG_REPORT",
    "queries": [
      {
        "module": "FSM",
        "dateRefField": "Data.vehicleTrip.@timestamp",
        "requestQueryMap": "{\"wardId\" : \"Data.ward.name.keyword\", \"tenantId\" : \"Data.tenantData.code\" ,  \"district\" : \"Data.tenantData.city.districtCode\"}",
        "indexName": "vehicletrip",
        "aggrQuery": "{\"aggs\":{\"AGGR\":{\"filter\":{\"bool\":{\"must_not\":[{\"term\":{\"data.vehicleTrip.tenantId.keyword\":\"pb.testing\"}}]}},\"aggs\":{\"Vehicle Reg No\":{\"terms\":{\"field\":\"Data.vehicleTrip.vehicle.registrationNumber.keyword\",\"size\":1000},\"aggs\":{\"NoOfTrips\":{\"value_count\":{\"field\":\"Data.vehicleTrip.@timestamp\"}},\"TotalSeptageCollected\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.tripDetails.volume'].value)/1000.0\"}}},\"TotalSeptageDumped\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.volumeCarried'].value)/1000.0\"}}},\"CapacityUtilization\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.volumeCarried'].value)/1000.0\"}}},\"TankCapacity\":{\"sum\":{\"script\":{\"source\":\"(doc['Data.vehicleTrip.vehicle.tankCapacity'].value)/1000.0\"}}}}}}}}}"
      }
    ],
    "filterKeys": [
      {"key": "registrationNumber", "column": "Vehicle_No"},
      {"key": "wardId", "column": "Ward"},
      {"key": "ulbId", "column": "ULB"}
    ],
    "isPostResponseHandler": true,
    "chartType": "xtable",
    "valueType": "number",
    "action": "",
    "isRoundOff": true,
    "documentType": "_doc",
    "drillChart": "none",
    "plotLabel":"Vehicle_No",
    "aggregationPaths": [
      "NoOfTrips",
      "TotalSeptageCollected",
      "TotalSeptageDumped",
      "CapacityUtilization",
      "TankCapacity"
    ],
    "pathDataTypeMapping": [
      {
        "NoOfTrips" : "number"
      },
      {
        "TotalSeptageCollected" : "number"
      },
      {
        "TotalSeptageDumped" : "number"
      },
      {
        "CapacityUtilization" : "number"
      },
      {
        "TankCapacity" : "number"
      }
    ],
    "isCumulative": true,
    "interval": "month",
    "insight": {
    },
    "_comment": " "
  }

Click here to check the complete configuration

Master Dashboard Configuration

Master Dashboard Configuration is the main configuration which defines as which are the Dashboards which are to be painted on screen.

It includes all the Visualizations, their groups, the charts which comes within them and even their dimensions as what should be their height and width.

{
      "name": "DSS_FSM_DASHBOARD",
      "id": "fsm",
      "isActive": "",
      "style": "linear",
      "visualizations": [
        {
          "row": 1,
          "name": "DSS_REVENUE",
          "vizArray": [
            {
              "id": 311,
              "name": "DSS_OVERVIEW",
              "dimensions": {
                "height": 450,
                "width": 4
              },
              "vizType": "metric-collection",
              "label": "DSS_OVERVIEW",
              "noUnit": true,
              "isCollapsible": false,
              "charts": [
                {
                  "id": "fsmTotalrequest",
                  "name": "DSS_FSM_TOTAL_REQUESTS",
                  "code": "",
                  "chartType": "metric",
                  "filter": "",
                  "headers": []
                },
                {
                  "id": "totalSludgeTreated",
                  "name": "DSS_FSM_TOTAL_SLUDGE_TREATED",
                  "code": "",
                  "chartType": "metric",
                  "filter": "",
                  "headers": []
                },
                {
                  "id": "avgFSMCostRequest",
                  "name": "DSS_FSM_AVG_FSM_COST_OR_REQ",
                  "code": "",
                  "chartType": "metric",
                  "filter": "",
                  "headers": []
                },
                {
                  "id": "totalCollectioninLacs",
                  "name": "DSS_FSM_TOTAL_COLLECTION",
                  "code": "",
                  "chartType": "metric",
                  "filter": "",
                  "headers": []
                },
                {
                  "id": "slaCompliance",
                  "name": "DSS_FSM_SLA_COMPLIANCE",
                  "code": "",
                  "chartType": "metric",
                  "filter": "",
                  "headers": []
                },
                {
                  "id": "citizenAvgRating",
                  "name": "DSS_FSM_CITIZEN_AVG_RATING",
                  "code": "",
                  "chartType": "metric",
                  "filter": "",
                  "headers": []
                }
              ]
            },
            {
              "id": 322,
              "name": "DSS_FSM_TOTAL_CUMULATIVE_COLLECTION",
              "dimensions": {
                "height": 450,
                "width": 6
              },
              "vizType": "chart",
              "label": "",
              "noUnit": true,
              "isCollapsible": false,
              "charts": [
                {
                  "id": "fsmTotalCumulativeCollection",
                  "name": "Monthly",
                  "code": "",
                  "chartType": "line",
                  "filter": "",
                  "headers": []
                }
              ]
            }
          ]
        },
        {
          "row": 2,
          "name": "DSS_REVENUE",
          "vizArray": [
            {
              "id": 321,
              "name": "DSS_FSM_TOP_ULB_BY_PERFORMANCE",
              "dimensions": {
                "height": 250,
                "width": 3
              },
              "vizType": "performing-metric",
              "label": "",
              "noUnit": false,
              "isCollapsible": false,
              "charts": [
                {
                  "id": "fsmTopUlbByPerformance",
                  "name": "Monthly",
                  "code": "",
                  "chartType": "bar",
                  "filter": "",
                  "headers": []
                }
              ]
            },
            {
              "id": 322,
              "name": "DSS_FSM_BOTTOM_ULB_BY_PERFORMANCE",
              "dimensions": {
                "height": 250,
                "width": 3
              },
              "vizType": "performing-metric",
              "label": "",
              "noUnit": false,
              "isCollapsible": false,
              "charts": [
                {
                  "id": "fsmBottomUlbByPerformance",
                  "name": "Monthly",
                  "code": "",
                  "chartType": "bar",
                  "filter": "",
                  "headers": []
                }
              ]
            },
            {
              "id": 323,
              "name": "DSS_FSM_COLLECTION_BY_USAGE_TYPE",
              "dimensions": {
                "height": 250,
                "width": 4
              },
              "vizType": "chart",
              "label": "",
              "noUnit": false,
              "isCollapsible": false,
              "charts": [
                {
                  "id": "fsmCollectionByUsageType",
                  "name": "DSS_FSM_COLLECTION_BY_USAGE_TYPE",
                  "code": "",
                  "chartType": "donut",
                  "filter": "",
                  "headers": []
                }
              ]
            }
          ]
        },
        {
          "row": 3,
          "name": "DSS_REVENUE",
          "vizArray": [
            {
              "id": 325,
              "name": "DSS_FSTP_CAPACITY_UTILIZATION",
              "dimensions": {
                "height": 450,
                "width": 5
              },
              "vizType": "chart",
              "label": "",
              "noUnit": true,
              "isCollapsible": false,
              "charts": [
                {
                  "id": "fsmCapacityUtilization",
                  "name": "Monthly",
                  "code": "",
                  "chartType": "line",
                  "filter": "",
                  "headers": []
                }
              ]
            },
            {
              "id": 326,
              "name": "DSS_FSM_MONTHLY_WASTE_CAL",
              "dimensions": {
                "height": 450,
                "width": 5
              },
              "vizType": "chart",
              "label": "",
              "noUnit": true,
              "isCollapsible": false,
              "charts": [
                {
                  "id": "fsmMonthlyWasteCal",
                  "name": "Monthly",
                  "code": "",
                  "chartType": "bar",
                  "filter": "",
                  "headers": []
                }
              ]
            }
          ]
        },
        {
          "row": 4,
          "name": "DSS_REVENUE",
          "vizArray": [
            {
              "id": 327,
              "name": "DSS_FSM_TOP_DSO_BY_PERFORMANCE",
              "dimensions": {
                "height": 450,
                "width": 5
              },
              "vizType": "chart",
              "label": "",
              "noUnit": true,
              "isCollapsible": false,
              "charts": [
                {
                  "id": "fsmTopDsoByPerformance",
                  "name": "Monthly",
                  "code": "",
                  "chartType": "horizontalBar",
                  "filter": "",
                  "headers": []
                }
              ]
            },
            {
              "id": 329,
              "name": "DSS_FSM_BOTTOM_DSO_BY_PERFORMANCE",
              "dimensions": {
                "height": 450,
                "width": 5
              },
              "vizType": "chart",
              "label": "",
              "noUnit": true,
              "isCollapsible": false,
              "charts": [
                {
                  "id": "fsmBottomDsoByPerformance",
                  "name": "Monthly",
                  "code": "",
                  "chartType": "horizontalBar",
                  "filter": "",
                  "headers": []
                }
              ]
            }
          ]
        },
        {
          "row": 5,
          "name": "DSS_REVENUE",
          "vizArray": [
            {
              "id": 339,
              "name": "DSS_FSM_TOTAL_REQ_BY_DISTRICT",
              "dimensions": {
                "height": 350,
                "width": 10
              },
              "vizType": "chart",
              "label": "",
              "noUnit": false,
              "isCollapsible": true,
              "charts": [
                {
                  "id": "fsmTotalReqByDistrict",
                  "name": "DSS_FSM_TOTAL_REQ_BY_DISTRICT",
                  "code": "",
                  "chartType": "table",
                  "filter": "",
                  "headers": [],
                  "tabName": "Boundary"
                }
              ]
            }
          ]
        },
        {
          "row": 6,
          "name": "DSS_REVENUE",
          "vizArray": [
            {
              "id": 331,
              "name": "DSS_FSM_VECHILE_LOG_REPORT",
              "dimensions": {
                "height": 350,
                "width": 10
              },
              "vizType": "chart",
              "label": "",
              "noUnit": false,
              "isCollapsible": true,
              "charts": [
                {
                  "id": "fsmVehicleLogReportByDDR",
                  "name": "DSS_FSM_VECHILE_LOG_REPORT",
                  "code": "",
                  "chartType": "table",
                  "filter": "",
                  "headers": [],
                  "tabName": "Boundary"
                }
              ]
            }
          ]
        }
      ]
    },

Click here for the complete configuration.

Role Dashboard Mappings Configuration

The master dashboard configuration, which was explained earlier, holds the list of dashboards that are available.

Given the instance where role action mapping is not maintained in the application service, this configuration will act as Role - Dashboard Mapping Configuration. In this, each role is mapped against the dashboard which they are authorised to see. This was used earlier when the role action mapping of eGov was not integrated. Later, when the role action mapping started controlling the dashboards to be seen on the client side, this configuration was only used to enable the dashboards for viewing.

{
  "_comment": "Holds mapping for each role with and its associated dashboards",
  "roles" : [
    {
      "_comment":"This role is super role which can access all the available dashboards: [other/new roles are suppose to be added]",
      "roleId": 6,
      "roleName" : "Admin",
      "isSuper" : "",
      "orgId": "",
      "dashboards": [
        {
          "name": "Facial Sludge Management",
          "id": "fsm"
        }
      ]
    },
    {
      "_comment":"This role is super role which can access all the available dashboards: [other/new roles are suppose to be added]",
      "roleId": 7,
      "roleName" : "Commissioner",
      "isSuper" : "",
      "orgId": "",
      "dashboards": [
        {
          "id": "ulb-fsm"
        }
      ]
    }

  ]
}

Click here to check the configuration

MDMS Configuration to be added

common-masters/uiCommonConstants.json

"fsm":{
                 "routePath":"/dashboard/fsm",
                 "isOrigin":true
              },
              "ulb-fsm":{
                 "routePath":"/dashboard/ulb-fsm",
                 "isOrigin":true
              }

Click here to check the complete configuration.

roleaction.json

 {
      "rolecode": "STADMIN",
      "actionid": {{PlaceHolder1}},
      "actioncode": "",
      "tenantId": "pb"
    }
    
    
    {
      "rolecode": "STADMIN",
      "actionid": {{PlaceHolder2}},
      "actioncode": "",
      "tenantId": "pb"
    },
     {
      "rolecode": "EMPLOYEE",
      "actionid": {{PlaceHolder2}},
      "actioncode": "",
      "tenantId": "pb"
    },  
     {
      "rolecode": "UC_EMP",
      "actionid": {{PlaceHolder2}},
      "actioncode": "",
      "tenantId": "pb"
    },

Click here to check the complete configuration.

Action test.json:

{
      "id": {{PlaceHolder1}},
      "name": "DSS Dashboard Config Facial Sludge Management",
      "url": "/dashboard-analytics/dashboard/getDashboardConfig/fsm",
      "parentModule": "",
      "displayName": "DSS",
      "orderNumber": 0,
      "enabled": false,
      "serviceCode": "DSS",
      "code": "null",
      "path": ""
    },
  {
      "id": {{PlaceHolder2}},
      "name": "DSS Dashboard Charts",
      "url": "/dashboard-analytics/dashboard/getChartV2",
      "parentModule": "",
      "displayName": "DSS",
      "orderNumber": 0,
      "enabled": false,
      "serviceCode": "DSS",
      "code": "null",
      "path": ""
    },
    

Click here to check the complete configuration.

FSM-DSS Consists of multiple graphs which represent the data of FSM. Each graph has its own configuration which will describe the chart and its type.

DSS Consists of following charts in FSM:

  • Overview

  • Total Cumulative Collection

  • Top ULB By Performance

  • Bottom ULB by Performance

  • FSM Collection by Usage Type

  • FSTP - Capacity Utilization

  • Monthly Septage Collected

  • Top DSO By Performance

  • Bottom DSO By Performance

  • Desludging Request Report

  • Vehicle Log Report

Overview

Overview graph contains multiple data information as below in the selected time period.

  • Total requests: Which represents the number of FSM applications.

  • Total sludge treated: This represents the total sludge dumped at the yard in KL.

  • Average FSM cost: This represents the average collection amount for the FSM applications.

  • Total collection: This represents the total collection amount for the FSM applications.

  • SLA compliance: This represents the total SLA achieved in percentage.

  • Average citizen rating: This represents the citizen average rating value.

Total Cumulative Collection

This graph contains the collection amount information in the monthly base as a cumulative line graph. This will change as per the denomination amount filter selection.

Line - This graph/chart is data representation on date histograms or date groupings.

Top ULB By Performance

This graph represents the ULBs based on the SLA achieved in bar chart representation with the percentage of SLA achieved in ascending order. This chart also contains the drill-down to give the complete information regarding each ULB.

Drill chart: If there is a drill-down on the visualisation, then the code of the drill-down visualisation is added here. This will be used by client service to manage drill-downs.

This chart consists of a drill-down, so, we gave the drill-down chart key as a reference in this chart (as shown in the picture above).

Here is the drill down chart config params.

Table chart sample: This chart comes with 2 kinds: Table and xtable.

The table type allows aggregated fields added as available in the query keys. Hence, to extract the values based on the key, aggegationPaths needs to add along with their data type as in pathDataTypeMapping.

Bottom ULB by Performance

This graph represents the ULB’s based on the SLA achieved in bar chart representation with the percentage of SLA achieved in descending order. This chart also contains the drill-down to give the complete information regarding each ULB.

When you click on "Show More," you will navigate to a tabular chart of the bottom ULB by performance.

FSM Collection by Usage Type

This graph shows the collection amount based on the usage/property type, and this amount will change as per the denomination filter change. This also shows the percentage of the top four properties; the remaining properties will go under the 'Others' category.

FSTP - Capacity Utilisation

This graph is in the line chart representation, and shows the data in cumulative format. It contains the information about the waste collecting plant capacity utilisation in percentage as well as the total waste dumped at plant in KL at the top of the graph.

Monthly Septage Collected

This graph shows the data in horizontal bar representation, and the bars contain data monthly wide as well as non-cumulative data. This graph contains the monthly information of septage collected and dumped at the plant in KL.

Top DSO By Performance

This graph represents the DSOs based on the number of DSO requests and on SLA achievement in bar chart representation in ascending order. This chart also contains the drill-down to give the complete information regarding each DSO.

When you click on "Show More", you can see the details of the available DSOs under the selected ULB.

Bottom DSO By Performance

This graph represents the DSOs based on the number of DSO requests and on SLA achievement in bar chart representation in descending order. This chart also contains the drill-down to give the complete information regarding each DSO.

This is the bottom DSO drill-down chart which represents the table chart type.

When you click on "Show More", you can see the details of the available DSOs under the selected ULB.

Desludging Request Report

This tabular chart representation graph shows multiple FSM information, such as the number of open application requests, closed requests, total requests, completion rate in percentage, SLA achieved in percentage, and total collection amount. This table shows the data at the district-level and also has the drill-down chart from each district to ULB, as well from ULB to the ward-level data for the same.

The xtable type allows you to add multiple computed fields with the aggregated fields dynamically added.

To add multiple computed columns, computedFields [] where actionName (IComputedField<T> interface), fields [] names as in exist in query key, newField as name to appear for computation must be defined.

chartSpecificProperty: This is specific to FSM-DSS, and it is used to achieve the xtable column order along with the computed fields. This property is not used in any other module till now.

When you click on any district name, you will see the drill-down charts, which will represent that specific district data.

When you click on the ULB, you will navigate towards under that specific ULB and each ward will show the data specific to that ward.

Vehicle Log Report

This table shows the data of vehicle trips, and it includes the number of trips, total septage collected, total septage dumped, and capacity utilisation in percentage. This graph also contains the drills-downs from district to ULB and from ULB to the vehicle level, which shows the vehicle number.

When you click on any district name, you will see the drill-down charts, which will represent the data specific to that district.

When you click on any boundary/ULB, you will navigate to the specific vehicle details which will be as shown below.

Newly-Introduced Property

isRoundOff: This property is introduced to round-off the decimal values. For example, if the value is 25.43 by using isRoundOff property in configuration, you will get it 25. If value is 22.56, the round-off value will be 23. This can be used for insights configuration as well as overview graph.

Common Properties Available

Key (Example: fsmTotalrequest): This is the visualisation code. This key will be referred to in further visualisation configurations. This is the key which will be used by the client application to indicate which visualisation is needed for display.

chartName: The name of the chart which has to be used as a label on the dashboard. The name of the chart will be a detailed name. In this configuration, the name of the chart will be the code of localisation which will be used by the client side.

queries: Some visualisations are derived from a specific data source, while some others are derived from different data sources and are combined together to get a meaningful representation. The queries of aggregation, which are to be used to fetch out the right data in the right aggregated format, are configured here.

queries.module: The module/domain level on which the query should be applied on. Faecal Sludge Management is FSM.

queries.indexName: The name of the index on which the query has to be executed is configured here.

queries.aggrQuery: The aggregation query in itself is added here. Based on the module and the index name specified, this query is attached to the filter part of the complete search request and then executed against that index.

queries.requestQueryMap: Client request will carry certain fields which are to be filtered. The parameters specified in the client request are different from the parameters in each of these indexed documents. To map the parameters of the request to the parameters of the ElasticSearch Document, this mapping is maintained.

queries.dateRefField : Each of these modules have separate indexes, and all of them have their own date fields. When a date filter is applied against these visualisations, each of them has to apply it against their own date reference fields. To maintain what is the date field in which index, we have this configured in this configuration parameter.

chartType : As there are different types of visualisations, this field defines what is the type of chart/visualisation that this data should be used to represent.

Chart types available are:

Metric - This represents the aggregated amount/value for records filter by the aggregate as query

Pie - This represents the aggregated data on grouping. This can be used to represent any line graph, bar graph, pie chart, or donuts.

Line - This graph/chart is data representation on date histograms or date groupings.

Perform - This chart represents groping data performance wise.

Table - Represents a form of plots and value with headers as grouped on and list of its key, values pairs.

xtable - Represents an advanced feature of table; it has addition capabilities for dynamic adding header values.

valueType: In any case of data, the values which are sent to plot, might be a percentage, an amount, or a count. To represent them and differentiate the numbers from amount and percentage, this field is used to indicate the type of value that this visualisation will send.

Action: Some visualisations are not just aggregation on data source. There might be cases where we have to do a post-aggregation computation. For example, in the case of top 3 performing ULBs, the target and total collection is obtained, and then the percentage is calculated. In such cases, the action that has to be performed on that data is defined in this parameter.

documentType: The type of document on which the query has to be executed is defined here.

drillChart: If there is a drill-down on the visualisation, then the code of the drill-down visualization is added here. This will be used by client service to manage drill-downs.

aggregationPaths: All the queries will have aggregation names in it. To fetch the value out of each aggregation response, the name of the aggregation in the query will be needed. These aggregation paths will have the names of aggregation in it.

insights: It is to show the data with the comparison of last year with arrow symbols. It will show the data as percentage is increased or decreased.

_comment: To display information on the “i” symbol of each visualisation, the visualisation information is maintained in this field.

Postman collection for fsm-dss: https://www.getpostman.com/collections/119ee90dd54c04617c3a

UI-Related MDMS Files

MDMS Changes

Overview

The following MDMS changes were done as part of the FSM v1.4 release:

MDMS Changes

Feature
Service name
Changes
Description

PQM inbox

MDMS for inbox

Added MDMS configuration for inbox-v2 integration.

Role Action

MDMS

Added role-action mapping for all APIs of the PQM service.

For MDMS-V2 changes, refer to the below table for the sequence in which MDMS schema and data needs to be added for the PQM service:

MasterName
Schema Link
Required Fields
Unique Fields

PQM.BenchmarkRule

id, code, name

code

PQM.QualityTestLab

code

code

PQM.Material

code, name

code

PQM.Parameter

code, name

code

PQM.PlantConfig

code, pendingTestsToDisplayWithinDays, pendingTestsToDisplayWithinDaysInbox, pendingTestsToDisplayWithinDaysForULB, iotAnomalyDetectionDays, manualTestPendingEscalationDays

code

PQM.PlantType

code, name

code

PQM.ProcessType

code, name

code

PQM.Unit

code, name

code

PQM.WasteType

code, name

code

PQM.SourceType

code, name

code

PQM.Stage

code, name, output

code

PQM.Process

code, type, name, stages, wasteType

code

PQM.Plant

code, plantType, active

code

PQM.QualityCriteria

code, name, plantType, wasteType, address, processes

code

PQM.TestStandard

code, plant, process, stage, material, qualityCriteria, frequency, sourceType

code

UI-Related MDMS Files

  • Make sure TQM and FSM is enabled in this master -> cityModule.json

  • data/pg/common-masters/howItWorks.json -> HowItWorks

  • data/pg/FSM/SanitationWorkerSkills.json -> SanitationWorkerSkills

  • data/pg/FSM/SanitationWorkerEmploymentType.json -> File Link

  • data/pg/FSM/SanitationWorkerEmployer.json -> File Link

  • data/pg/FSM/SanitationWorkerFunctionalRoles.json -> File Link

Role-Action Mapping

data/pg/ACCESSCONTROL-ACTIONS-TEST/actions-test.json

{
      "id": 346,
      "name": "schema Create",
      "url": "/mdms-v2/schema/v1/_create",
      "parentModule": "",
      "displayName": "Schema Create",
      "orderNumber": 0,
      "enabled": false,
      "serviceCode": "",
      "code": "null",
      "path": ""
    },
    {
    "id": 357,
    "name": "Search  PQM Application",
    "url": "/mdms-v2/schema/v1/_search",
    "displayName": "Search MDMS Schema",
    "orderNumber": 0,
    "enabled": false,
    "serviceCode": "PQM",
    "code": "null",
    "path": ""
  }
{
      "id": 347,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.SourceType",
      "parentModule": "",
      "displayName": "Add Data for PQM.SourceType",
      "orderNumber": 0,
      "enabled": false,
      "serviceCode": "",
      "code": "null",
      "path": ""
    },
     {
      "id": 201,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM Labs",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=QualityTestLab",
      "path": "9MDMS.PQM.QualityTestLab",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 202,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.QualityTestLab",
      "displayName": "create PQM.QualityTestLab",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 203,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.QualityTestLab",
      "displayName": "Update PQM.QualityTestLab",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 204,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM BenchmarkRule",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=BenchmarkRule",
      "path": "9MDMS.PQM.BenchmarkRule",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 205,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.BenchmarkRule",
      "displayName": "create PQM.BenchmarkRule",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 206,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.BenchmarkRule",
      "displayName": "Update PQM.BenchmarkRule",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 207,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM Material",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=Material",
      "path": "9MDMS.PQM.Material",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 208,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.Material",
      "displayName": "create PQM.Material",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 209,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.Material",
      "displayName": "Update PQM.Material",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 210,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM Unit",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=Unit",
      "path": "9MDMS.PQM.Unit",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 211,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.Unit",
      "displayName": "create PQM.Unit",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 212,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.Unit",
      "displayName": "Update PQM.Unit",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 213,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM TestType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=TestType",
      "path": "9MDMS.PQM.TestType",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 214,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.TestType",
      "displayName": "create PQM.TestType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 215,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.TestType",
      "displayName": "Update PQM.TestType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 216,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM Plant",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=Plant",
      "path": "9MDMS.PQM.Plant",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 217,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.Plant",
      "displayName": "create PQM.Plant",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 218,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.Plant",
      "displayName": "Update PQM.Plant",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 219,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM PlantType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=PlantType",
      "path": "9MDMS.PQM.PlantType",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 220,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.PlantType",
      "displayName": "create PQM.PlantType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 221,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.PlantType",
      "displayName": "Update PQM.PlantType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 222,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM Stage",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=Stage",
      "path": "9MDMS.PQM.Stage",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 223,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.Stage",
      "displayName": "create PQM.Stage",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 224,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.Stage",
      "displayName": "Update PQM.Stage",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 225,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM TestStandard",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=TestStandard",
      "path": "9MDMS.PQM.TestStandard",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 226,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.TestStandard",
      "displayName": "create PQM.TestStandard",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 227,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.TestStandard",
      "displayName": "Update PQM.TestStandard",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 228,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM QualityCriteria",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=QualityCriteria",
      "path": "9MDMS.PQM.QualityCriteria",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 229,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.QualityCriteria",
      "displayName": "create PQM.QualityCriteria",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 230,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.QualityCriteria",
      "displayName": "Update PQM.QualityCriteria",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 231,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM Parameter",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=Parameter",
      "path": "9MDMS.PQM.Parameter",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 232,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.Parameter",
      "displayName": "create PQM.Parameter",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 233,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.Parameter",
      "displayName": "Update PQM.Parameter",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 234,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM ProcessType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=ProcessType",
      "path": "9MDMS.PQM.ProcessType",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 235,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.ProcessType",
      "displayName": "create PQM.ProcessType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 236,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.ProcessType",
      "displayName": "Update PQM.ProcessType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 237,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM ProcessSubType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=ProcessSubType",
      "path": "9MDMS.PQM.ProcessSubType",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 238,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.ProcessSubType",
      "displayName": "create PQM.ProcessSubType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 239,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.ProcessSubType",
      "displayName": "Update PQM.ProcessSubType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 240,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM Process",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=Process",
      "path": "9MDMS.PQM.Process",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 241,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.Process",
      "displayName": "create PQM.Process",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 242,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.Process",
      "displayName": "Update PQM.Process",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 243,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM PlantConfig",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=PlantConfig",
      "path": "9MDMS.PQM.PlantConfig",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 244,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.PlantConfig",
      "displayName": "create PQM.PlantConfig",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 245,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.PlantConfig",
      "displayName": "Update PQM.PlantConfig",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 246,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM PlantAddress",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=PlantAddress",
      "path": "9MDMS.PQM.PlantAddress",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 247,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.PlantAddress",
      "displayName": "create PQM.PlantAddress",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 248,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.PlantAddress",
      "displayName": "Update PQM.PlantAddress",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 249,
      "name": "MDMS",
      "url": "url",
      "displayName": "Manage PQM WasteType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=PQM&masterName=WasteType",
      "path": "9MDMS.PQM.WasteType",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 250,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.WasteType",
      "displayName": "create PQM.WasteType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 251,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.WasteType",
      "displayName": "Update PQM.WasteType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
   "id": 358,
   "name": "Search  PQM Application",
   "url": "/mdms-v2/v2/_search",
   "displayName": "Search PQM Applications",
   "orderNumber": 0,
   "enabled": false,
   "serviceCode": "PQM",
   "code": "null",
   "path": ""
  },
   {
      "id": 364,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_create/PQM.SourceType",
      "displayName": "create PQM.SourceType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 365,
      "name": "MDMS",
      "url": "/mdms-v2/v2/_update/PQM.SourceType",
      "displayName": "Update PQM.SourceType",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
      {
      "id": 23,
      "name": "Profile Update",
      "url": "/user/profile/_update",
      "displayName": "Profile Update",
      "orderNumber": 1,
      "enabled": false,
      "serviceCode": "ADMIN",
      "code": "null",
      "path": "Administration.Profile Update"
    },
    {
      "id": 26,
      "name": "Update Password",
      "url": "/user/password/_update",
      "displayName": "Update Password",
      "orderNumber": 1,
      "enabled": false,
      "serviceCode": "ADMIN",
      "code": "null",
      "path": "Administration.Update Password"
    },
     {
      "id": 370,
      "name": "Create Workbench UiSchema",
      "url": "/mdms-v2/v2/_create/Workbench.UISchema",
      "displayName": "Create workbench ui-schema",
      "orderNumber": 0,
      "enabled": false,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },
    {
      "id": 202,
      "name": "Update Tenant Tenants",
      "url": "/mdms-v2/v2/_update/tenant.tenants",
      "displayName": "Update Tenant Tenants",
      "orderNumber": 0,
      "enabled": true,
      "serviceCode": "PQM",
      "code": "null",
      "path": ""
    }
        

data/pg/ACCESSCONTROL-ACTIONS-TEST/actions-test.json:

 {
      "rolecode": "MDMS_ADMIN",
      "actionid": 202,
      "actioncode": "",
      "tenantId": "pg"
    },
  {
      "rolecode": "MDMS_ADMIN",
      "actionid": 370,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 26,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "PQM_ADMIN",
      "actionid": 26,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "PQM_TP_OPERATOR",
      "actionid": 26,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "HRMS_ADMIN",
      "actionid": 26,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "SUPERUSER",
      "actionid": 26,
      "actioncode": "",
      "tenantId": "pg"
    },
     {
      "rolecode": "MDMS_ADMIN",
      "actionid": 23,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "PQM_ADMIN",
      "actionid": 23,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "PQM_TP_OPERATOR",
      "actionid": 23,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "HRMS_ADMIN",
      "actionid": 23,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "SUPERUSER",
      "actionid": 23,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 364,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 365,
      "actioncode": "",
      "tenantId": "pg"
    },
  {
      "rolecode": "MDMS_ADMIN",
      "actionid": 358,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "SUPERUSER",
      "actionid": 358,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "PQM_ADMIN",
      "actionid": 358,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "PQM_TP_OPERATOR",
      "actionid": 358,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 346,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 347,
      "actioncode": "",
      "tenantId": "pg"
    },
{
      "rolecode": "MDMS_ADMIN",
      "actionid": 357,
      "actioncode": "",
      "tenantId": "pg"
    },
     {
      "rolecode": "MDMS_ADMIN",
      "actionid": 201,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 202,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 203,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 204,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 205,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 206,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 207,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 208,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 209,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 210,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 211,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 212,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 213,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 214,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 215,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 216,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 217,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 218,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 219,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 220,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 221,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 222,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 223,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 224,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 225,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 226,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 227,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 228,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 229,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 230,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 231,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 232,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 233,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 234,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 235,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 236,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 237,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 238,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 239,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 240,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 241,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 242,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 243,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 244,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 245,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 246,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 247,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 248,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 249,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 250,
      "actioncode": "",
      "tenantId": "pg"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 251,
      "actioncode": "",
      "tenantId": "pg"
    }

PQM.Benchmark

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

name

Textual or human-readable identity given to a record.

PQM.QualityTestLab

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

name

Textual or human-readable identity given to a record.

PQM.Material

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

name

Textual or human-readable identity given to a record.

PQM.Parameter

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

name

Textual or human-readable identity given to a record.

description

Details or explanation for a record.

PQM.PlantConfig

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

manualTestPendingEscalationDays

The number of days after which a scheduled test that is still pending requires escalation.

pendingTestsToDisplayWithinDays

The number of days within which pending tests, assessments, or evaluations should be displayed or considered.

PQM.PlantType

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

name

Textual or human-readable identity given to a record.

description

Details or explanation for a record.

PQM.ProcessType

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

name

Textual or human-readable identity given to a record.

PQM.Unit

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

name

Textual or human-readable identity given to a record.

PQM.WasteType

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

name

Textual or human-readable identity given to a record.

PQM.SourceType

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

name

Textual or human-readable identity given to a record.

description

Details or explanation for a record.

PQM.Stage

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

name

Textual or human-readable identity given to a record.

description

Details or explanation for a record.

input

Materials provided as input to a stage.

output

Materials provided as output to a stage.

PQM.Process

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

type

Defines the type of process.

name

Textual or human-readable identity given to a record.

description

Details or explanation for a record.

stages

A list of stages that come under a particular process.

wasteType

The classification of waste materials based on their characteristics or origin.

PQM.Plant

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the record.

name

Textual or human-readable identity given to a record.

description

Details or explanation for a record.

plantType

The classification of plants based on their processing.

wasteType

The classification of waste materials based on their characteristics or origin

address

Location details for a particular plant.

processes

A list of processes that happen under a particular plant.

plantConfig

Configuration details for a particular plant.

ULBs

Comma separted ULB list who have operational access to. e.g. pg.cityb, pg.cityb

PlusCode

Address of the plant. e.g. JQ2R+7G Khapar Kheri, Punjab

Latitude

Latitude of the plant location

Longitude

Logitude value of the plant location

PlantLocation

Location of the plant. e.g. Bhalasore

PlantOperationalTimings

Plant Operational Timings. E.g. 10.00am-08.00pm

PlantOperationalCapcityKLD

Capacity of the plant for operating at max. E.g.50

PQM.QualityCriteria

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

parameter

Anything that is measurable as an input/output for a particular stage.

unit

The unit for measuring this particular parameter.

benchmarkRule

The rules according to which a test value should be tested (For example, greater than, less than, equals to).

benchmarkValues

Specific numbers on which the benchmark rule is applied for a test value.

allowedDeviation

The acceptable difference from the benchmark values.

PQM.TestStandard

Field
Definition

code

Alphanumeric or numeric representation assigned to uniquely identify the field.

plant

Plant code for which this test standard is registered.

process

Process code for which this test standard is registered.

stage

Stage code for which this test standard is registered.

material

Material code for which this test standard is registered.

qualityCriteria

The quality criteria which is applicable for the unique combination of plant, process, stage, and material.

frequency

The frequency at which this test standard should be scheduled.

sourceType

The origin of this particular test standard.

PR#3123
Postman Collection
Postman Collection
Postman Collection
Postman Collection
Postman Collection
Postman Collection
Postman Collection
Postman Collection
Postman Collection
Postman Collection
Postman Collection
Postman Collection
Postman Collection
Postman Collection
Postman Collection

FSM Functional Specification

Desludging Operator Registration

Desludging operators (DSO) can be registered via a user interface (UI) available to the urban local body (ULB) admin. Once created, multiple vehicles and drivers can be mapped to a DSO. DSOs can also be enabled/disabled in the system.

Desludging operators will have the following details:

Field Name

Type

Mandatory

Editable (Y/N)

Unique within a ULB (Y/N)

Vendor name

Free text

Y

N

N

Gender

Array

Y

N

N

DOB

Date

N

Y

N

Email address

Free text (Email format)

N

Y

N

Mobile number

Number

Y

N

Y

Door number

Free text

N

Y

N

Plot number

Free text

N

Y

N

Building name

Free text

N

Y

N

Street

Free text

N

Y

N

Pincode

Free text

N

Y

N

City

Array

Y

N

N

Locality/mohalla

Array

Y

N

N

Landmark

Free text

N

Y

N

Additional Details

Free text

N

Y

N

Status

Binary

Y

Y

N

Driver Registration

Drivers can be registered via a UI available to the ULB admin. Once created, a driver can be mapped to a DSO. Drivers can also be enabled/disabled in the system.

Driver operators will have the following details:

Field name

Type

Mandatory

Editable (Y/N)

Unique within a ULB (Y/N)

Driver name

Free text

Y

N

N

Driver license number

Free text (Validation on the license format)

Y

Y

N

Gender

Array

N

Y

N

DOB

Date

N

Y

N

Email address

Free text (Email format)

N

Y

N

Driver phone number

Number

Y

N

N

Vehicle Registration

Vehicles can be registered via a UI available to the ULB admin. Once created, a vehicle can be mapped to a DSO. Vehicles can also be enabled/disabled in the system.

Vehicles operators will have the following details:

Field name

Type

Mandatory

Editable (Y/N)

Unique within a ULB (Y/N)

Registration number

Free Text

Y

N

Y

Vehicle model

Array

Y

Y

N

Vehicle type

Array

Y

Y

N

Tank capacity

Array

Y

Y

N

Pollution certificate valid till

Date

N

Y

N

Insurance valid till

Date

N

Y

N

Road tax paid till

Date

N

Y

N

Fitness certificate valid till

Date

N

Y

N

Vehicle owner name

Free text

Y

N

N

Vehicle owner phone number

Number

Y

N

N

Apply for Desludging Services

The citizen or the ULB official can apply for a desludging request.

Application Channel

  • Citizens can apply online using the web application.

  • Citizens can walk into a ULB and submit a request to the counter operator, who then creates an application on behalf of the citizen online.

  • Citizens can call the ULB and request for a desludging operation, which can then be transformed into an online application by the ULB official.

Application Submission

  • Desludging applications can be created by a citizen.

  • Desludging application requests can be created by a ULB official on behalf of a citizen.

- If the application is created by a ULB official, then capture the channel in which the request was received. It will be an additional field in the UI to capture the channel.

Field name

Type

Mandatory

Editable

Comments

Applicant name

Text

Y

N

Mobile number

Numeric

Y

N

Gender

Dropdown

Y

N

City

Dropdown

Y

N

As per the boundary data defined.

Locality

Dropdown

Y

N

As per the boundary data defined.

Whether property is in a slum

Binary

Y

N

Slum name

Dropdown

Y

N

Only if the above selection is yes. List of slums per ULB to be uploaded in the system.

Street name

Text

N

N

Door house number

Text

N

N

Landmark

Text

N

N

Geo location

Lat-Long

N

N

As per DIGIT standards.

Onsite sanitation type

Dropdown

N

Y

Select one from the list.

PIT size

L*B*D in feet (This UOM might change from state to state)

N

Y

Numeric

Property type

Dropdown

Y

N

Use the same ontology as defined in DIGIT Property Tax.

Property sub-type

Dropdown

Y

N

Use the same ontology as defined in DIGIT Property Tax.

Number of trips required

Numeric

Y

Y

Editable by ULB and DSO.

Vehicle capacity

Dropdown

Y

N

Populated as per the vehicle capacities available in the particular ULB.

Application channel

Dropdown

Y

Required only if the creator is a ULB official.

Total amount

Numeric, display only

Y

N

Calculated based on the billing slabs.

Minimum amount payable

Numeric, display only

Y

N

Displayed as per the configuration in the backend.

Advance amount

Numeric

Y

Y

Service Request Fee

  • Service request fee is calculated as a multiplier of the amount per trip defined in the billing slab table (based on property type, sub-type, whether it is a slum, vehicle capacity) and the number of trips.

  • For certain combinations with the above parameters, the pricing can be set at zero. In such cases, demand will not be generated.

  • ULBs can configure a minimum advance payment to be collected before starting a request. This can either be a fixed value (starting from 0) or a percentage (ranging from 0-100). Citizens will be able to make a payment above the minimum advance amount, and below the total trip amount as an advance payment.

Payment: Online/Cash Counter

  • Citizens can make both the advance and balance payments online.

  • Citizens can make both the advance and balance payments at the ULB counter.

  • Payment receipts will be generated and sent across via SMS. They can be downloaded at the citizen and ULB interfaces.

Update Application Request by ULB Official

  • When a service request is received by a ULB official, he/she can do the following:

- Search and assign a DSO to the application request.

- Cancel the application with remarks.

- Update the application request with the number of trips required to empty the septic tank or Pit and the vehicle details.

- Change the DSO from an application request if the assigned DSO is not available.

- Update the status of the request as completed, post desludging.

- View past records of requests and service delivery.

Cancellation of application

  • A citizen or a ULB official can cancel the application online.

  • Citizens can cancel it only if the DSO is not assigned to the service request.

  • Application cannot be cancelled if the payment is made already.

  • ULB officials can cancel it only if the service is not completed by the DSO.

SMS and Email Updates

  • SMS and email updates are sent on every necessary process of the entire process flow.

Application view by DSO

  • A DSO should get notified about the request that is assigned to him/her. On receiving the request, the following actions can be taken:

- View the request.

- Assign requests to a vehicle.

- Update the number of trips.

- Flag a request ready for disposal.

- Close the request post desludging.

  • One DSO cannot see the details of the other DSO or the request assigned to the other DSOs.

Field name

Type

Required

Comments

Volume of waste collected

Numeric

Y

Feedback by Citizen

Citizens can provide feedback on the desludging request:

  • There will be an option to rate the service provided with comments.

  • There will be an option for citizens to update whether safety equipment is used by the sanitary workers during the operation.

Vehicle Entry by FSTP/STP Plant Operator

Plant operators can do the following:

  • View the list of desludging operations for a day. Since an application may have multiple trips, the plant operator will view multiple line items against an application in the inbox.

  • Update the Vehicle entry log against an application request with the details like:

- Date and time of entry.

- Volume of sludge dumped at the plant.

Field name

Type

Required

Comments

Vehicle in-time

Time

Y

Vehicle out-time

Time

Y

Volume of sludge dumped

Numeric

Y

Additional details

Text

N

Attachments

Document/Image

N

  • If a vehicle without a corresponding request arrives at the FSTP, the FSTP can record the vehicle entry.

Field name

Type

Required

Comments

Vehicle number

Alphanumeric

Y

Only unregistered vehicles in the system.

DSO name

Text

Y

Locality

Text

Y

Vehicle in-time

Time

Y

Vehicle out-time

Time

Y

Volume of sludge dumped

Numeric

Y

Additional details

Text

N

Attachments

Document/Image

N

  • The DSO can also decline an incoming vehicle.

Attribute

Type

Required?

Comments

Vehicle

UUID

Y

Trip Number

Numeric

Y

Volume

Numeric

Y

Desludging request

UUID

Y

Reason for declining

String

Y

[ “Septage Source”, “Outside operational hours”, “Under Maintenance”]

Feedback by Citizens

Citizens can provide feedback on the desludging request:

  • Rate the service provided (1-5 stars).

  • Multi-select to update whether safety equipment is used by the sanitary workers during the operation.

List of PDFs

  • Acknowledgement Recepit: Confirming receipt of desludging receipts.

  • Payment receipts: Multiple payment receipts based on the payments made.

Reports

Daily desludging request report

Search criteria

Field name

Type

Required

ULB name

Default

Internally pass the ULB name (Y)

From date

Date

Y

To date

Date

Y

DSO name

Search

N - Auto-populate on typing a few letters.

Search result

Application number

Application date

Current Status

DSO Name

Amount (Rs)

Date of completion

Area-wise daily collection report

Search criteria

Field name

Type

Required

ULB name

Dropdown

Internally pass this info.

Mohalla

Dropdown

N

DSO

Search

N - Auto-populate on typing few characters.

From date

Date

Y

To date

Date

Y

Search result

Application number/Date

Mohalla

DSO Name

Status

SLA compliance

Volume of waste collected

FSTP/STP plant report with vehicle logs

Search criteria

Field name

Type

Comments

ULB name

Dropdown

  • If the logged-in user is a ULB employee, then pass this information internally.

  • If the logged-in user is an STP/FSTP operator, then ask the user to select the ULB name as one STP can be attached to multiple ULBs.

STP/FSTP name

Dropdown

Internally pass this information: We have mapping between ULB and STP/FSTP.

DSO name

Search

N - Auto-populate on typing a few letters.

Vehicle number

Dropdown

Populate only if the DSO name is selected.

From date

Date

Y

To date

Date

Y

Search result

Application number

DSO name /Vehicle number

Vehicle entry date

Vehicle in time

Vehicle out time

Volume of sludge dumped (L)

Dashboard

Filter criteria

Field name

Type

Comments

DDR (District name)

Dropdown

  • If the logged-in user is a ULB employee, then pass this information internally.

  • If the logged-in user is an admin, show for all the districts.

ULB name

Dropdown

  • If the logged-in user is a ULB employee, then pass this information internally.

  • If the logged-in user is an admin, show for all the ULBs.

Date range (From and to dates)

Date

Mandatory, auto-select for entire time period.

Selection criteria

Field Name

Type

Comments

Denomination

Array

Choose the denominate between Cr, Lac and Unit.

Other functionalities:

  1. Share via:

a. Image: Downloads image

b. Whatsapp: Image shared via Whatsapp

  1. Download:

a. Image format

Chart name

Chart type

X Axis

Y Axis

Logic

Comments

Tooltip (if any)

Drilldown available (Y/N)

Overview: Total requests

KPI

NA

NA

Sum of total the requests cumulated over a period of time.

Absolute number and percentage increase or decrease from previous year for the same time period.

NA

N

Overview: Total sludge treated (in KL)

KPI

NA

NA

Sum of the total sludge deposited from registered and unregistered vehicles at the FSTP.

Absolute number and percentage increase or decrease from the previous year for the same time period.

NA

N

Overview: Total collection

KPI

NA

NA

Sum of the total revenue collected against service delivery.

Absolute number and percentage increase or decrease from the previous year for the same time period.

NA

N

Overview: SLA compliance

KPI

NA

NA

Average SLA compliance (percentage of requests completed within SLA).

Percentage number and percentage increase or decrease from the previous year for the same time period.

NA

N

Overview: Citizen average rating

KPI

NA

NA

Average citizen rating (Total citizen rating/total number of applications with feedback).

Absolute number and percentage increase or decrease from the previous year for the same time period.

NA

N

Total cumulative collection

Area chart

Month

Total collection

Cumulative collection over a period of time.

- Month name - Value

N

Revenue by property type

Pie chart

NA

NA

Distribution of requests by property type.

The percentage of requests by each property type to be displayed on the chart.

Display percentage and absolute value.

N

Top 3 performing ULBs (SLA achievement)

Percentage completion on line chart

NA

NA

Average SLA per ULB.

Top 3 to be displayed. View more options available to view the entire list of ULBs.

N

Bottom 3 performing ULBs (SLA achievement)

Percentage completion on line chart

NA

NA

Average SLA per ULB

Bottom 3 to be displayed. View more options available to view the entire list of ULBs.

M

FSTP - Capacity utilisation

Line chart

Percentage capacity utilisation

Time (Month)

Total waste disposed of or total capacity.

Total waste treated to be displayed below the chart heading.

- Month - Capacity utilisation (%). - Capacity utilisation (%) as compared to last year for the same month.

Monthly waste collected versus monthly waste disposed off

Column chart

Waste collected and waste dumped

Time (Month)

- Sum of waste collected.

- Sum of waste disposed of.

- Month

- Waste collected (absolute number and % increase decrease as compared to last year for the same month).

- Waste disposed (absolute number and % increase or decrease as compared to last year for the same month).

Total request by region

Table

NA

NA

Fields:

- Serial number.

- District

- # of open requests.

- # of closed requests.

- # of total requests.

- Completion rate (Percentage completion).

- SLA achieved: Percentage.

- Total collection.

- Selection to display the number of rows in a table.

- Option to move to the next and the previous pages, and display the current page number.

- Search by district name.

- Show filters applied, if any.

Drilldown on district name to ULBs mapped in the district.

Vehicle log report

Table

NA

NA

Fields:

- Serial number.

- ULB.

- Volume of waste collected.

- Volume of waste dumped.

- Capacity utilisation (percentage). - Show comparison to last year.

- Selection to display the number of rows in a table.

- Option to move to the next and the previous pages, and display the current page number.

- Search by district name.

- Show filters applied, if any.

Workflow Desludging Application

Advance Balance Workflow

Application type

Status

Roles

Action

Next state

Desludging

Citizen

FSM_CREATOR_EMP

Create application

Application created

Desludging

Application created

Citizen

FSM_CREATOR_EMP

Submit application

Pending for payment

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Reject application

Application created

Desludging

Pending for payment

Citizen

Pay for the number of trips (may be 0 to full)

Pending for DSO assignment

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Assign DSO

Pending for DSO approval

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Return application

Application created

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Reassign DSO

Pending for DSO approval

Desludging

Pending for DSO approval

DSO

FSM_EDITOR_EMP

Assign Vehicle

DSO in progress

Desludging

Pending for DSO approval

DSO

FSM_EDITOR_EMP

Reject

Pending for DSO assignment

Desludging

DSO in progress

FSM_EDITOR_EMP DSO

Update the number of trips or schedule trips

DSO in progress

Desludging

DSO in progress

Citizen

Pay (full amount)

DSO in progress

Desludging

DSO in progress

FSM_EDITOR_EMP DSO

Dispose

DSO in progress

Desludging

DSO in progress

DSO

FSM_EDITOR_EMP

Complete request (after collecting the total amount)

Pending citizen feedback

Desludging

Pending citizen feedback

Citizen

Citizen provides feedback

Request completed

Application Type

Status

Action

Roles

Next State

VehicleTrip

Schedules trip

FSM_DSO

SCHEDULED

VehicleTrip

SCHEDULED

Ready for disposal

FSM_DSO"

"FSM_EDITOR_EMP

Waiting for disposal

VehicleTrip

Waiting for disposal

Dispose

FSM_EMP_FSTPO

DISPOSED

Pay Later Workflow

Application type

Status

Roles

Action

Next state

Desludging

Citizen

FSM_CREATOR_EMP

Create application

Application created

Desludging

Application created

Citizen

FSM_CREATOR_EMP

Submit application

Pending for DSO assignment

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Reject application

Application created

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Assign DSO

Pending for DSO approval

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Return application

Application created

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Reassign DSO

Pending for DSO approval

Desludging

Pending for DSO approval

DSO

FSM_EDITOR_EMP

Assign Vehicle

DSO in progress

Desludging

Pending for DSO approval

DSO

FSM_EDITOR_EMP

Reject

Pending for DSO assignment

Desludging

DSO in progress

FSM_EDITOR_EMP DSO

Update the number of trips or schedule trips

DSO in progress

Desludging

DSO in progress

Citizen

Pay (Full Amount)

DSO in progress

Desludging

DSO in progress

FSM_EDITOR_EMP DSO

Dispose

DSO in progress

Desludging

DSO in progress

DSO

FSM_EDITOR_EMP

Complete Request (after collecting the total amount)

Pending citizen Feedback

Desludging

Pending citizen feedback

Citizen

Citizen provides feedback

Request completed

Application Type

Status

Action

Roles

Next state

VehicleTrip

Schedules trip

FSM_DSO

SCHEDULED

VehicleTrip

SCHEDULED

Ready for disposal

FSM_DSO"

"FSM_EDITOR_EMP

Waiting for disposal

VehicleTrip

Waiting for disposal

Dispose

FSM_EMP_FSTPO

DISPOSED

Zero Price Workflow

Application type

Status

Roles

Action

Next State

Desludging

-

Citizen

FSM_CREATOR_EMP

Create application

Application created

Desludging

Application created

Citizen

FSM_CREATOR_EMP

Submit application

Pending for payment

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Reject application

Application created

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Assign DSO

Pending for DSO approval

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Return application

Application created

Desludging

Pending for DSO assignment

FSM_EDITOR_EMP

Reassign DSO

Pending for DSO approval

Desludging

Pending for DSO approval

DSO

FSM_EDITOR_EMP

Assign vehicle

DSO in progress

Desludging

Pending for DSO approval

DSO

FSM_EDITOR_EMP

Reject

Pending for DSO Assignment

Desludging

DSO in progress

FSM_EDITOR_EMP DSO

update No of trips / schedule trip

DSO in Progress

Desludging

DSO in progress

FSM_EDITOR_EMP

Reassign DSO

Pending for DSO approval

Desludging

DSO in progress

FSM_EDITOR_EMP DSO

Dispose

DSO in progress

Desludging

DSO in progress

DSO

FSM_EDITOR_EMP

Complete request (after collecting the total amount)

Pending citizen feedback

Desludging

Pending citizen feedback

Citizen

Citizen provides Feedback

Request completed

Application type

Status

Action

Roles

Next state

VehicleTrip

Schedules trip

FSM_DSO

SCHEDULED

VehicleTrip

SCHEDULED

Ready for disposal

FSM_DSO"

"FSM_EDITOR_EMP

Waiting for disposal

VehicleTrip

Waiting for disposal

Dispose

FSM_EMP_FSTPO

DISPOSED

User Stories

User Story 1: Register Testing Standards

Scope:

This user story aims to enable the state and the urban local body (ULB) admin to define the input/output quality testing requirements, including testing parameters, benchmarks, and frequencies for each treatment process and stage in the plant. It also allows them to specify different standards for manual and IoT-based testing for particular input/output types and stages. No UI is required for the same.

Actors:

- State admin

- ULB admin

Details:

- Setup plants, treatment process and stages, and map plants to the treatment process and stages.

- Plants may contain one or more treatment processes, each with a treatment process type and capacity.

- A treatment process will contain multiple stages.

- The state or ULB admin can define input/output testing requirements for each treatment process type and stage.

- They can enable or disable testing for specific input/output types and stages.

- They can define testing parameters, benchmarks, and frequencies at the national/state level.

- They can adjust testing frequencies for plants based on their testing results.

- They can specify different testing standards for manual and IoT-based testing for specific input/output types and stages.

Attributes Table

  1. Treatment process

Attribute

Type

Mandatory

Comments

Validation Required?

Treatment Process ID

Numeric

Y

Auto-generated numeric value which will act as a unique identified for a process flow.

N, this value should be system-generated.

Process Name

Text

Y

This is the commonly-used identifier for the process flow.

Max characters - 256

Status

Array

Y

Status of the process flow.

Active/Inactive, Single Select

Treatment Process Type

Array

Y

The dropdown will be auto-populated basis the list of waste maintained in the MDMS.

Single Select

Treatment Process Sub-type

Array

Y

The dropdown will be auto-populated basis the list of waste maintained in the MDMS.

Single Select

  1. Plants

Attribute

Type

Mandatory

Comments

Validation Required?

Plant ID

Numeric

Y

Auto-generated numeric value which will act as a unique identifier for a plant.

Auto-generated

Plant Name

Text

Y

This is the commonly-used identifier for the plant

Maximum characters - 128

Plant Type

Array

Y

Single Select only, Faecal Sludge, Solid Waste, Co-treatment

Tenant Id

Text

Y

Status

Array

Y

Status of the plant

Active/Inactive, Single Select

Geolocation

Lat,Long

Y

Capture the exact latitude-longitude

  1. Stages:

Attribute

Type

Mandatory

Comments

Validation Required?

Stage ID

Numeric

Y

Auto-generated numeric value which will act as a unique identifier for a job ID.

Auto-generated

Stage Name

Text

Y

This is the commonly-used identifier for the job.

Maximum characters - 128

Minimum Characters - NA

Status

Boolean

Y

Status of the stage.

Active/Inactive, Single Select

Input Quality Measurement Required

Boolean

Y

This selection will allow the user to setup if the input quality for the particular input type needs to be monitored. The user should be able to enable and disable input quality measurement requirement independently for each type.

Yes/No, Single Select

Output Type

Array

Y

The dropdown will be auto-populated basis the list of output types.

Multi-select

Output Quality Measurement Required

Boolean

Y

This selection will allow the user to setup if the output quality for the particular job needs to be monitored. The user should be able to enable and disable output quality measurement requirement independently for each type.

Yes/No, Single Select

  1. Testing Parameters

Attribute

Type

Mandatory

Validation

Quality Parameter

Array

Y

Selecting from the predefined of the above-mentioned quality parameters and standards, Single Select.

Quality Parameter Unit of Measurement

Array

Y

Selection of unit of measurement (mg/L, Absolute value etc.), Single Select.

Benchmark Rule

Array

Y

Options include X>=,<=R, =<Y and >=Z, Single Select.

Benchmark Value

Numeric

Y

Entered by user, numeric only.

Testing Frequency - Manual (Days)

Numeric

Y

Selecting a custom frequency range for laboratory testing based on consent to operate, numeric only.

Monitoring Frequency - Quality Sensor (Days)

Numeric

N

Selecting a custom frequency

Note: Should be optional if the ULB/State chose NOT to have sensor-based monitoring, numeric only.

Configurations:

This feature can be managed through backend configurations and databases, allowing administrators to make changes easily.

User Actions:

- A state or ULB admin can define the input/output testing requirements for each treatment process and stage.

- They can enable or disable testing for specific input/output types and stages.

- They can define and edit testing parameters, benchmarks, and frequencies at the national/state level.

- They can adjust testing frequencies for plants based on their testing results.

- They can specify different testing standards for manual and IoT-based testing for specific input/output types and stages.

Notifications:

No specific notifications are required for this user story.

User Interface:

N/A

Acceptance Criteria:

1. A state and ULB admin can define input/output testing requirements for each treatment process and stage.

2. They can enable or disable testing for specific input/output types and stages.

3. Testing parameters, benchmarks, and frequencies can be defined and managed at the national/state level.

4. Administrators can adjust testing frequencies for plants based on their testing results.

5. Different testing standards can be specified for manual and IoT-based testing for specific input/output types and stages.

User Story 2: Generate Schedule

Scope

This user story aims to automate the generation of schedules for tests based on the frequency of testing for various parameters. The generated schedule will be used for manual and IoT tests to display upcoming tests, generate alerts, and facilitate escalation in case of non-adherence to the test schedule.

Actors:

DIGIT Sanitation

Details:

As a system, I want to automatically generate schedules for tests based on the frequency of testing for various parameters. This will help in displaying upcoming tests to the plant operator and stakeholders, generate alerts for upcoming tests, and escalate in case of non-adherence to the test schedule.

Workflow:

Attributes Table:

Attribute

Type

Mandatory

Validation

Test ID

Alphanumeric

View Only

Auto-generated on the creation of schedule.

Plant Name

Text

View Only

Auto-populated on the creation of schedule.

Treatment Process

Text

View Only

Auto-populated on the creation of schedule.

Treatment Process Type

Text

View Only

Auto-populated on the creation of schedule.

Stage

Text

View Only

Auto-populated on the creation of schedule.

Output Type

Text

View Only

Auto-populated on the creation of schedule.

Test Type

Array

Lab/IoT, auto-selected to the lab.

Parameter 1…n

Text

View Only

Auto-populated on the creation of schedule.

Testing Date

Date

View Only

Date calculated through a predefined laboratory testing schedule.

SLA

Numeric

View Only

Difference between the current date and testing date. The compliance to a testing schedule can be checked through this field. However, the actions based on failed/successful compliance falls under vendor management, which is not in scope currently and will be taken up separately under vendor management.

Status

Text

View Only

Status to be auto set to 'Scheduled'.

Configurations:

This feature can be managed through backend configurations and databases, allowing administrators to make changes easily.

User Actions:

- The system will automatically generate schedules for tests based on the frequency of testing for various parameters.

- Plant operators and stakeholders can view the upcoming tests on the schedule.

- Alerts will be automatically generated for upcoming tests to notify the relevant parties.

- In case of manual testing, escalations will be triggered if test results are pending beyond the specified days as per the test schedule.

Notifications:

- Alerts will be sent to the the plant operator and stakeholder [X] days prior to the test date.

- Escalations will be triggered for pending test results as per the test schedule.

User Interface:

N/A

Acceptance Criteria:

1. The system should automatically generate schedules for tests based on the frequency of testing for each parameter.

2. Upcoming tests should be displayed to the plant operator and stakeholders.

3. Alerts should be generated for upcoming tests to notify the relevant parties.

4. Escalations should be triggered in case of non-adherence to the test schedule for manual testing.

5. The implementation of this feature should allow for easy configuration and management through backend settings.

User Story 3: Anomaly Detection 1.0

Scope:

This user story aims to implement an anomaly detection system that generates alerts in case of the following anomalies:

1. Lab results not as per the benchmark.

2. IoT device results not as per the benchmark.

3. Lab results and device results do not match.

Actors:

- Test uploader

- IoT system

- DIGIT Sanitation

Details:

As a system, I want to detect anomalies in the test results and generate alerts for the following scenarios:

Attributes Table:

Field

Data Type

Required

Description

Anomaly Type

String

Yes

Specifies the type of anomaly detected.

Benchmark

Float

Yes

Defines the benchmark value for the test results.

Deviation Allowed

Float

Yes

Specifies the allowed deviation from the benchmark for anomaly detection.

Sample Collection Date

DateTime

Yes

The date on which the sample was collected for testing.

IoT Result Date

DateTime

Yes

The date on which the IoT result was recorded.

Alert Generation Date

DateTime

Yes

The date on which the alert was generated.

Lab Test Result

Float

Yes

The result of the manual lab test.

IoT Test Result

Float

Yes

The result recorded via IoT integration.

Alert Message

String

Yes

Specifies the message for the generated alert.

Matching Date

DateTime

Yes

The date on which the closest IoT result is matched with the sample collection date for comparison.

Workflows:

Lab results not as per the benchmark

This is to be generated when the manual test results uploaded by the test uploader are not as per the benchmarks defined (adjusted for deviations, configurable at plant level).

IoT results not as per the benchmark

This is to be generated when the loT test results recorded via the integration are not as per the benchmarks defined for [X] days (adjusted for deviations defined while setting testing parameters).

Generation of alerts: Device results and lab results do not match

In case the data that is recorded by the sensor does not match the data in the lab test result, an auto alert will generated.

Date to be matched on

Sample Collection Date

If the IoT result is not available for the sample collection date, the closest date after for which IoT data available to be considered.

Deviation allowed

x%

Validations:

- Anomaly types, benchmark values, and allowed deviations should be specified for each scenario.

- The matching date for comparing IoT results should be calculated based on the sample collection date and the closest available IoT result date.

- Anomalies should be detected and alerts generated only if the deviation from the benchmark exceeds the allowed deviation.

Configurations:

- The anomaly detection system should be configurable to define benchmark values, allowed deviations, and matching date logic.

User Actions:

- The test uploader uploads manual lab test results.

- The integration system records IoT test results.

- DIGIT Sanitation continuously monitors the test results.

- Alerts are automatically generated if anomalies are detected.

Notifications:

- Alerts will be generated automatically when any of the specified anomalies are detected.

- The alert message will indicate the type of anomaly and the details of the test results.

Acceptance Criteria:

1. The system should be able to detect and generate alerts for the specified anomalies, including lab results not meeting benchmarks, IoT results not meeting the benchmark, and lab and IoT results not matching

2. The allowed deviation for each anomaly type should be configurable.

3. The anomaly detection should be based on the benchmark values set for each type of test result.

4. Alerts should be generated with the appropriate message indicating the type of anomaly detected and the details of the test results.

5. The implementation should allow for easy configuration and management through backend settings.

User Story 4: Anomaly Detection 2.0

Scope:

This user story aims to implement an automated alert generation system for cases where no reading is received from a sensor based on the scheduled frequency.

Actors:

- Integration system

- DIGIT Sanitation

Details:

As a system, I want to automatically generate an alert in case no reading is received from a sensor based on the scheduled frequency.

Workflow:

Attributes Table:

No reading received from device

Attribute

Type

Required?

Comments

Alert DateTime

Datetime

Y

Auto-captured based on the date-time.

Alert Type

Text

Y

Auto-captured

  • No reading received from the device.

Plant Name

Text

Y

Auto-captured

Process Name

Text

Y

Auto-captured

Process Type

Text

Y

Auto-captured

Device ID

Numeric

Y

Auto-captured

Validations:

- The system should check if a reading was expected from the sensor on the scheduled date.

- An alert should be generated only if no reading is received from the sensor on the scheduled date.

Configurations:

- The alert generation system should be configured to specify the frequency of expected readings from each sensor.

User Actions:

- The integration system monitors the scheduled frequency of readings from the sensors.

- The alert generation system automatically detects cases where no reading is received from a sensor based on the scheduled date.

Notifications:

- An alert will be generated automatically if no reading is received from a sensor based on the scheduled date.

- The alert message will indicate the sensor ID and the scheduled date for the next reading.

Acceptance Criteria:

1. The system should automatically detect cases where no reading is received from a sensor on the scheduled date.

2. Alerts should be generated with the appropriate message indicating the sensor ID and the scheduled date for the next reading.

3. The alert generation should be based on the configured frequency of expected readings from each sensor.

4. The implementation should allow for easy configuration and management through backend settings.

User Story 5: Landing Page: Plant Operator

Scope:

As a plant operator, I want to access the home page after logging in to the system. The landing page should provide an overview of relevant modules, pending tasks, and options to navigate to the specific sections.

Actors:

Plant operator

Details:

Upon successful login, the plant operator will be directed to the home page. The home page will display the following elements:

  1. Plant name: A visible label located on the top right-hand corner of the screen, indicating the name of the plant or facility the operator is associated with.

  2. Help button: A clickable button available on every page to provide a guided view and assistance for users.

  3. Modules cards: The home page will show cards for the following modules:

a) Vehicle Log Module: Allows the user to record incoming vehicles.

b) Treatment Quality Monitoring module: Provides access to information related to treatment quality.

c) View Dashboard: Navigates the user to a comprehensive dashboard.

  1. List of pending tasks: This section will display a list of tests and tasks pending for the plant operator within the next [X] days. Alongside each pending task, the next action item in the workflow will be displayed, enabling the plant operator to take prompt action.

  2. View all pending tasks button: A clickable button that redirects the user to a page displaying all pending tasks.

Attributes:

N/A

Validations:

N/A

Configurations:

N/A

User Actions:

  • The plant operator can click on the cards representing different modules to navigate to their respective home pages for detailed information and functionalities.

  • The plant operator can click on the "View All Pending Tasks" button to view all pending tasks in the system.

Notifications:

N/A

User Interface:

Acceptance Criteria:

  • The plant operator should be able to log in successfully and land on the home page.

  • The home page should display the plant name, help button, and cards for the different modules.

  • The list of pending tasks should be visible and filtered based on the defined time frame [X].

  • Each pending task should display the next action item required.

  • Clicking on the cards should redirect the user to the respective module's home page.

  • Clicking on the "View All Pending Tasks" button should redirect the user to a page displaying all pending tasks.

User Story 6: Treatment Quality Monitoring (TQM) Home Page

Scope:

As a plant operator, I want to access the Treatment Quality Monitoring (TQM) home page by clicking on the treatment quality card. The TQM home page should provide access to upcoming tests, past test results, IoT readings, sensor monitoring, treatment quality dashboard, and performance metrics related to treatment quality.

Actors:

Plant operator

Details:

After clicking on the treatment quality card, the plant operator will be redirected to the TQM home page, which will offer the following functionalities:

  1. Inbox: The inbox will display the upcoming tests, and the plant operator can take necessary actions related to these tests. A count of the upcoming tests for quick reference will be displayed in brackets.

  2. View past test results: This section will present the past results from both ab and IoT devices, allowing the plant operator to review historical data.

  3. View IoT readings: The user can access records of IoT readings, enabling them to monitor IoT devices' data.

  4. Sensor monitoring: A list of IoT devices and their status will be available for the plant operator to monitor and ensure smooth operations.

  5. View dashboard: Clicking on this option will direct the plant operator to the treatment quality dashboard, providing comprehensive insights and visualisations.

  6. View performance: This widget will display key performance indicators (KPIs) related to treatment quality, including:

a. Test compliance: The percentage of plant compliance with treatment quality standards, compared to the state-level compliance percentage.

b. Last treatment quality result: Indicates whether the last test result was a pass or fail, along with the date of the test.

c. Count of alerts raised in the past 30 days: Shows the number of alerts generated within the last 30 days.

d. Distribution of alerts based on the alert category: Presents a breakdown of alerts by their respective categories. (Note: For details about the calculation of these metrics, refer to the dashboard user stories).

e. Go back to the landing page: The plant operator can use the back button to return to the landing page.

f. Help button: A clickable button available on every page to provide a guided view and assistance for users.

Attributes Table:

N/A

Validations:

N/A

Configurations:

N/A

User Actions:

  • The plant operator can view upcoming tests in the inbox and take necessary actions related to them.

  • The plant operator can review past test results from both Lab and IoT devices.

  • The plant operator can access records of IoT readings for monitoring purposes.

  • The plant operator can check the status of IoT devices through sensor monitoring.

  • The plant operator can navigate to the treatment quality dashboard for comprehensive insights.

  • The plant operator can view the performance metrics related to the treatment quality.

  • The plant operator can use the back button to return to the landing page.

Notifications:

N/A

User Interface:

Acceptance Criteria:

  • The plant operator should be able to access the TQM home page by clicking on the treatment quality card.

  • The TQM home page should display the inbox with the upcoming tests and their count.

  • The plant operator should be able to view the past test results from lab and IoT devices.

  • The plant operator should be able to access the records of IoT readings.

  • The plant operator should be able to monitor IoT devices and their statuses.

  • Clicking on "View Dashboard" should redirect the plant operator to the treatment quality dashboard.

  • The performance metrics should accurately display test compliance, last treatment quality result, count of alerts raised in the past 30 days, and distribution of alerts based on their categories.

  • The back button should allow the plant operator to return to the landing page.

  • The help button should be available and functional on the TQM home page.

User Story 7: View List of Upcoming Tests

Scope:

As a plant operator, I want to view a list of the upcoming tests by clicking on the 'Inbox' option. The list should display only lab tests, and I should be able to perform various tasks, such as filtering, sorting, and accessing the test details.

Actors:

Plant operator

Details:

Upon clicking on the 'Inbox', the plant operator will be redirected to the list of upcoming lab tests. The following functionalities will be available:

  • Total count of the upcoming tests: The total count of the upcoming tests will be displayed beside the inbox, enclosed within brackets.

  • View list of the upcoming tests: The list will contain the following fields:

- Test ID

- Treatment process (if there is only one treatment process configured for the plant, this field will not be displayed)

- Stage: Indicates the process stage where the sample is to be collected from.

- Output type: Specifies whether the test is for biosolids or effluents.

- Pending date: The scheduled test date.

- Status: The current status of the test.

- SLA: Displays the difference between the test due date and today.

Workflow:

Attributes Table:

Attribute

Type

Mandatory

Validation

Test ID

Alphanumeric

View Only

Auto-generated on the creation of the schedule.

Plant Name

Text

View Only

Auto-populated on the creation of the schedule.

Treatment Process

Text

View Only

Auto-populated on the creation of the schedule.

Treatment Process Type

Text

View Only

Auto-populated on the creation of the schedule.

Stage

Text

View Only

Auto-populated on the creation of the schedule.

Output Type

Text

View Only

Auto-populated on the creation of the schedule.

Test Type

Array

Lab/IoT, auto-selected to the lab.

Parameter 1…n

Text

View Only

Auto-populated on the creation of the schedule.

Testing Date

Date

View Only

Date calculated through predefined laboratory testing schedule.

SLA

Numeric

View Only

Difference between the current date and testing date. The compliance to a testing schedule can be checked through this field. However, the actions based on failed/successful compliance falls under vendor management, which is not in scope currently and will be taken up separately under vendor management.

Status

Text

View Only

Status to be auto set to 'Scheduled'.

Test Result Status

Roles

Action

Next Status

Scheduled

FSTPO

ULB employee

Submit the sample for testing.

Pending results

Pending Results

FSTPO

ULB employee

Update the results.

Submitted

Configurations:

N/A

User Actions:

  • The plant operator can view a list of the upcoming tests with the relevant details.

  • The plant operator can use filters to refine the view based on the treatment process, output type, status, and date range.

  • The plant operator can use sorting options to arrange the tests based on "Pending Date."

  • The plant operator can access test details for further actions.

Notifications:

N/A

User Interface:

Acceptance Criteria:

  • The plant operator should be able to view the list of the upcoming lab tests by clicking on 'Inbox'.

  • The list should only display the lab tests.

  • The list of the upcoming tests should contain relevant fields as described in the user story.

  • The action item displayed should be based on the next status in the treatment quality workflow for each test.

  • The filters and sorting options should work correctly, and the data should be updated based on the selected criteria.

  • The user should be able to navigate back to the landing page using the back button.

  • The help button should be available and functional on the list of upcoming tests page.

User Story 8: View Test Details

Scope:

As a plant operator, I want to view the test details for the upcoming tests either via the pending tasks or the inbox. The test details page will provide comprehensive information about the test and allow me to perform specific actions based on the test's status.

Actors:

Plant operator

Details:

  1. View test details via the pending tasks:

  • The list of pending tasks can be accessed via the landing page for the Treatment Quality Monitoring (TQM).

  • The list will display the tests pending within the next [X] days.

  • The next action item in the task workflow will be displayed as a button beside each pending task for the plant operator to take prompt action.

  • Clicking on the action item button will redirect the user to the test details page.

  1. View test details via the inbox:

  • A list of tests can be accessed from the Inbox.

  • An action item will be displayed based on the next status in the treatment quality workflow for each test:

- For tests in the 'Scheduled' stage, the "Update Status" will be shown.

- For tests in the "Pending Results" stage, the "Update Results" will be displayed.

  • Clicking on the action item button will redirect the user to the test details page.

  1. Test details page:

It will consist of two cards. First card - Test Information: The first card will display the following fields:

  • Test ID

  • Treatment process

  • Stage

  • Output type

  • Pending date

  • Status

  • Parameters to be tested along with their unit of measurement

  • SLA (Displayed in red/green basis SLA. If today is greater than the pending date, it will be shown in red. If today is less than the Pending Date, it will be shown in green.)

Second card - Test status specific action: The second card will vary based on the test status:

  • For tests in the 'Scheduled' status, the user will be asked to select the lab.

  • For tests in the "Pending Results" status, the user will be asked to add test results.

  1. Go back using the back button:

  • The user can go back using the back button, and the redirection will be based on the page from which the user accessed the test details page (either pending tasks or inbox).

  1. Help button:

  • A clickable button available on every page to provide a guided view and assistance for users.

Test Attributes:

Attribute

Type

Required?

Comments/Validations

Test ID

Numeric

Y

Auto-generated by the system.

Plant Name

Array

View Only

Auto-populated on the creation of the schedule, dingle select for on-demand test.

Treatment Process

Array

View Only

Auto-populated on the creation of schedule, single select for on-demand test.

Treatment Process Type

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Stage

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Output Type

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Test Type

Array

Lab/IoT, auto-selected to the lab for on-demand.

Lab Submitted to

Text

Y

This will not be required in case test type = IoT.

Quality Parameter 1

Numeric

Y

Validation to be applied at impel.

Quality Parameter 2

Numeric

Y

Validation to be applied at impel.

Quality Parameter 3

Numeric

Y

Validation to be applied at impel.

Quality Parameter n

Numeric

Y

Validation to be applied at impel.

Collection Time

Date

Y

This is the date-time on which user updates the status to pending results. For IoT, this is the time sensor records reading.

Attachment

Document

Y

For a given collection location, the photo or PDF proof of the laboratory result mentioning the information of the above-mentioned parameters.

Configurations:

N/A

User Actions:

  • The plant operator can view test details either via the pending tasks or the Inbox.

  • The plant operator can perform specific actions based on the test's status, such as updating the status or adding test results.

Notifications:

N/A

User Interface:

Acceptance Criteria:

  • The plant operator should be able to view the test details via the pending tasks or the inbox.

  • The test details page should display accurate information, including test ID, treatment process, stage, output type, pending date, status, parameters, unit of measurement, and SLA.

  • The second card on the test details page should prompt the plant operator to take the appropriate action based on the test's status ("Select Lab" for tests in the 'Scheduled' status and "Add Test Results" for tests in the "Pending Results" status).

  • The plant operator should be able to navigate back using the back button, and the redirection should be appropriate based on the page from which the test details page was accessed.

  • The help button should be available and functional on the test details page.

User Story 9: Update Tests

Scope:

As a plant operator, I want to update the test details from the test details page. The test details page will display the next action item based on the workflow status of the test. I should be able to perform different actions depending on whether the test is in the 'Scheduled' status or the "Pending Results" status.

Actors:

- Plant operator

Details:

Updating tests with the workflow status 'Scheduled':

- The test details page will prompt the plant operator to confirm if the sample has been submitted to the lab for testing.

- The user can perform the following actions:

- Select lab: The plant operator can choose a lab from a dropdown list configured in the Master Data Management System (MDMS).

- Update the status of the test: The button to update the test status will be deactivated until the lab is selected. Once the lab is chosen, the button will be activated.

- After clicking on "Update Status," the plant operator will be redirected back to the page from which the test details were accessed. A snack bar will confirm the status update, and the action item button will show the updated next step in the workflow.

- In case the update of the status fails, the plant operator will remain on the same page, and a failure message will be displayed.

Updating tests with the workflow status "Pending Results":

- The test details page will prompt the plant operator to fill in the test results.

- The user can perform the following actions:

- Update parameter readings (mandatory fields): Only numerical values will be allowed. In case non-numerical values are entered, an error message will be displayed, stating "Only numeric values allowed. Please input in the required format."

- Attach documents (non-mandatory): Only files in the formats .png, .jpg, .pdf will be supported. If a file of an unsupported format is selected, an error message will be displayed, stating: "The file type is not supported. Please upload in the following formats: .pdf, .png, .jpg." The file size should be within the permissible limit (X mb), and if the file size is larger, an error message will be displayed, stating: "The file size is too large. Please upload a file below X MB."

- Submit the test results: The button to submit the test results will be deactivated until all mandatory fields are filled. Once all required fields are completed, the button will be activated.

- On clicking the 'Submit' button, a pop-up will be displayed to the user to confirm the submission.

- The following actions will be available to the user in the pop-up:

- Confirm submission: The plant operator can confirm the submission by clicking on the 'Submit' button.

- Go back to the test details page: The plant operator can go back to the test details page by clicking on the "Go back" button.

- In case the submission of test results fails, the plant operator will remain on the same page, and a failure message will be displayed.

After the successful submission of the test results:

- Upon successful submission, the plant operator will be redirected to the summary page, and a snack bar will confirm the submission.

- The summary page will display the test results and whether they have passed or failed based on a comparison between the values entered by the user and the benchmarks.

- If all values are as per the benchmarks, the test results will be displayed as 'Pass'. All values will be shown in green, and the plant operator will receive feedback that all results are as per the benchmarks. The plant operator can go back to the home page by clicking on the back button.

- If one or more values are not as per the benchmarks, the test results will be displayed as 'Fail'. Values that meet the benchmarks will be shown in green, while values not meeting the benchmarks will be shown in red. The plant operator will be informed that the test results are not as per the benchmark. The plant operator can go back to the home page by clicking on the back button.

Workflow:

Functional Specifications for Tests:

Attribute

Type

Required?

Comments/Validations

Test ID

Numeric

Y

Auto-generated by the system.

Plant Name

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Treatment Process

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Treatment Process Type

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Stage

Array

View Only

Auto-populated on the creation of the schedule, dingle select for on-demand test.

Output Type

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Test Type

Array

Lab/IoT, auto-selected to the lab for on-demand.

Lab Submitted to

Text

Y

This will not be required in case test type = IoT.

Quality Parameter 1

Numeric

Y

Validation to be applied at impel.

Quality Parameter 2

Numeric

Y

Validation to be applied at impel.

Quality Parameter 3

Numeric

Y

Validation to be applied at impel.

Quality Parameter n

Numeric

Y

Validation to be applied at impel.

Collection Time

Date

Y

This is the date-time on which user updates the status to pending results. For IoT, this is the time sensor records reading.

Attachment

Document

Y

For a given collection location, the photo or PDF proof of the laboratory result mentioning the information of above-mentioned parameters.

Configurations:

N/A

User Actions:

- The plant operator can update the test details, including lab selection and test status for tests in the 'Scheduled' status.

- The plant operator can fill in the test results for tests in the "Pending Results" status, including numerical values for parameter readings and optional document attachments.

- The plant operator can submit the test results and confirm the submission.

- The plant operator can go back to the test details page or the home page .

Notifications:

N/A

User Interface:

Acceptance Criteria:

- The plant operator should be able to update the test details for tests in both 'Scheduled' and "Pending Results" status.

- The test details page should prompt the plant operator with appropriate actions based on the test's workflow status.

- Validations for numerical values and file formats/sizes should work as described.

- Successful submission of the test results should redirect the plant operator to the summary page and display the results as 'Pass' or 'Fail' based on the benchmarks.

- The plant operator should be able to go back to the test details page or the home page using the appropriate buttons.

- The help button should be available and functional on the test details and summary pages.

User Story 10: View Past Test Results

Scope:

As a plant operator, I want to view past test results (both IoT and lab) by accessing the "Past Tests" section from the Treatment Quality Monitoring (TQM) landing page. I should be able to view a list of past tests, filter and sort them, and access detailed test results for each test.

Actors:

- Plant operator

Details:

View past test results:

- Past test results (both IoT and lab) can be accessed via the TQM landing page by clicking on the "Past Tests" option.

- Clicking on "Past Tests" will redirect the user to the list of past tests.

- The user can perform the following tasks:

1. View the list of past tests:

The list will display the following fields for each test:

- Test ID

- Treatment process (if there is only one treatment process configured for the plant, this field will not be displayed).

- Stage: Indicates the process stage where the sample was collected from.

- Output type: Specifies whether the test is for biosolids or effluents.

- Pending date: The test date as per the schedule.

- Test result: Indicates whether the test result is 'Pass' or 'Fail'.

- View test details: The user can view detailed test results by clicking on the "View Results" button on each card.

2. Filter tests:

Clicking on 'Filter' will open a pop-up with the following filter options:

- Treatment process (if there is only one treatment process configured for the plant, this field will not be displayed): A dropdown with values for treatment processes configured for the plant. The selected treatment process will be displayed upon selection.

- Output type: A dropdown with values for the output types configured for the plant. The selected output type will be displayed upon selection.

- Test type: A dropdown with values for test types (IoT/lab). The selected test type will be displayed upon selection.

- Date range: A calendar view to select a date range. The selected date range will be displayed upon selection.

After selecting the filter values, the user can click on 'Filter' to apply the filters to the list of past tests. To clear filters, the user can click on "Clear All." To close the pop-up, the user can click on the cross on the top right-hand corner of the screen. The selected filter will be displayed on the screen, and clicking the cross button near the displayed filter will remove the filter.

3. Sort:

Clicking on 'Sort' will open a pop-up allowing tests to be sorted by "Pending Date" with the following options:

- Date (latest first).

- Date (latest last).

After selecting the sort criteria, the user can click on 'Sort' to apply the sorting to the list of past tests. To clear the sort, the user can click on "Clear All." To close the pop-up, the user can click on the cross on the top right-hand corner of the screen.

4. Go back to the landing page:

The plant operator can use the back button to return to the landing page.

5. Help button:

A clickable button available on every page to provide a guided view and assistance for users.

  1. The user can download the list of tests, filtered by selection in excel and pdf formats.

Test details:

- The test summary page will consist of two cards.

First card - Test information:

The first card will display the following fields:

- Test ID

- Treatment process

- Stage

- Output type

- Test type

- Lab name/Device ID: This will show lab name/device ID based on the test type.

- Test submission on

- Test results: Indicates whether the test result is 'Pass' or 'Fail'.

Second card - Parameter details:

The second card will display the following fields:

- Parameters, their unit of measurement, and the recorded values.

- The values will be shown in green or red basis whether they are as per benchmarks or not.

User Actions:

- The plant operator can view past test results by accessing the "Past Tests" section.

- The plant operator can filter and sort the list of past tests based on treatment process, output type, test type, and date range.

- The plant operator can view detailed test results by clicking on the "View Results" button for each test.

- The plant operator can navigate back to the landing page or the list of past tests as needed.

- The help button is available and functional on the test summary page.

Functional Specifications for Tests:

Attribute

Type

Required?

Comments

Test ID

Numeric

Y

Auto-generated by the system.

Plant Name

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Treatment Process

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Treatment Process Type

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Stage

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Output Type

Array

View Only

Auto-populated on the creation of the schedule, single select for on-demand test.

Test Type

Array

Lab/IoT, auto-selected to the lab for on-demand.

Lab Submitted to

Text

Y

This will not be required in case test type = IoT.

Quality Parameter 1

Numeric

Y

Validation to be applied at impel.

Quality Parameter 2

Numeric

Y

Validation to be applied at impel.

Quality Parameter 3

Numeric

Y

Validation to be applied at impel.

Quality Parameter n

Numeric

Y

Validation to be applied at impel.

Collection Time

Date

Y

This is the date-time on which user updates status to pending Results. For IoT, this is the time sensor records reading.

Attachment

Document

Y

For a given collection location, the photo or PDF proof of the laboratory result mentioning the information of above-mentioned parameters.

Validations:

NA

Configurations:

N/A

Notifications:

N/A

User Interface:

Acceptance Criteria:

- The plant operator should be able to view past test results by clicking on "Past Tests" from the TQM landing page.

- The list of past tests should display the relevant fields as described in the user story.

- The plant operator should be able to filter and sort the list of past tests based on treatment process, output type, test type, and date range.

- Clicking on the "View Results" button for each test should redirect the plant operator to the test summary page.

- The test summary page should display accurate information, including test ID, treatment process, stage, output type, test type, lab name/device ID, test submission on, test results.

- User can download the list past tests (filtered) by clicking on the download button.

User Story 11: View IoT Results

Scope:

As a plant operator, I want to view IoT readings from the Treatment Quality Monitoring (TQM) landing page by clicking on "View IoT Readings." I should be able to access the view tests page and filter the results to view only IoT readings.

Actors:

- Plant operator

Functionality of the Page:

- The functionality of the view tests page for IoT readings remains the same as the view past tests page.

Attributes Table:

N/A

Validations:

NA

Configurations:

N/A

Details:

View IoT readings:

- IoT readings can be accessed via the TQM landing page by clicking on "View IoT Readings."

- Clicking on "View IoT Readings" will redirect the user to the view tests page, with the filter pre-set to show only IoT readings.

Notifications:

N/A

User Interface:

Acceptance Criteria:

- The plant operator should be able to view IoT readings by clicking on "View IoT Readings" from the TQM landing page.

- The view tests page should display a list of IoT readings with the relevant fields as described in the user story.

- The plant operator should be able to filter and sort the list of IoT readings based on treatment process, output type, and date range.

- Clicking on the "View Results" button for each IoT reading should redirect the plant operator to the test summary page.

- The test summary page for IoT readings should display accurate information, including test ID, treatment process, stage, output type, test type, lab name/device ID, test submission on, test results.

- The plant operator should be able to navigate back to the landing page or the list of IoT readings as needed.

- The help button should be available and functional on the view tests page for IoT readings.

User Story 12: Sensor Monitoring

Scope:

As a plant operator, I want to access sensor monitoring from the Treatment Quality Monitoring (TQM) landing page. I should be able to view a list of IoT devices and their details. Additionally, I should be able to filter the devices based on various criteria and perform a search based on the device ID.

Actors:

- Plant operator

Details:

Sensor monitoring:

- Sensor monitoring can be accessed by clicking on the "Sensor Monitoring" link on the TQM landing page.

- Clicking on "Sensor Monitoring" will display the list of IoT devices.

Details on the Page:

- The page will display the total number of IoT devices beside the page heading in brackets.

- For each device, a card will be available, displaying the following details:

- Device ID.

- Treatment process (if there is only one treatment process configured for the plant, this field will not be displayed).

- Stage: Indicates the process stage where the device is used.

- Output type: Specifies whether the device monitors biosolids or effluents.

- Last calibrated date: The date when the device was last calibrated.

- Device Status: Indicates whether the device is 'Active' or 'Inactive'.

- Verification status: Indicates the verification status of the device.

- Last verification date: The date of the last verification.

- Parameters: The parameters that the device monitors.

User Actions:

- Filter devices:

Clicking on 'Filter' will open a pop-up with the following filter options:

- Treatment process (if there is only one treatment process configured for the plant, this field will not be displayed): A dropdown with values for treatment processes configured for the plant. The selected treatment process will be displayed upon selection.

- Output type: A dropdown with values for the output types configured for the plant. The selected output type will be displayed upon selection.

- Device status: A radio button showing options 'Active' and 'Inactive' to filter devices based on their status.

- Parameters: Multi-select displaying all parameters configured on the backend. The plant operator can select multiple parameters to filter devices.

After selecting filter values, the user can click on 'Filter' to apply the filters to the list of IoT devices. To clear filters, the user can click on "Clear All." To close the pop-up, the user can click on the cross on the top right-hand corner of the screen. The selected filter will be displayed on the screen, and clicking the cross button near the displayed filter will remove the filter.

- Search:

Clicking on 'Search' will open a pop-up for the user to search for a device by the device ID. The search should support partial search (part search) to allow the plant operator to find devices quickly based on the device ID.

- Go back to the landing page:

The plant operator can use the back button to return to the landing page.

- Help button:

A clickable button available on every page to provide a guided view and assistance for users.

Device Attributes:

Attribute

Type

Required?

Comments

Configuration Date

Datetime

Y

Device Type

Text

Y

Selection from the device master data.

[“GPS Sensor”, “pH Sensor”, “Accelerometer”, “Light Sensor”]

Plant

Text

Y

Treatment Process

Text

Y

Stage

Text

Y

Output Type

Text

Y

Parameters

Array

Y

The parameters monitored by the device.

Monitoring Frequency

Numeric

Y

Custom frequency for the device.

Calibration Date

Datetime

Y

Input from the user about any change in the calibration or maintenance of the device.

Calibration Accuracy

Array

Y

Range to indicate the permissible deviation in the accuracy.

IsConnected?

Boolean

Y

To indicate the connectivity of the device.

Connectivity History

?

Y

Date-wise device audit log to know the connectivity status.

Verification History

?

Date-wise device verification log to know the days when device input was verified with the laboratory results.

Validations:

NA

Configurations:

N/A

Notifications:

N/A

User Interface:

Acceptance Criteria:

- The plant operator should be able to access sensor monitoring by clicking on the "Sensor Monitoring" link from the TQM landing page.

- The page should display the list of IoT devices with relevant fields as described in the user story.

- The plant operator should be able to filter devices based on treatment process, output type, device status, and parameters.

- The plant operator should be able to perform a search based on the device ID with partial search support.

- The plant operator should be able to navigate back to the landing page or the list of IoT devices as needed.

- The help button should be available and functional on the sensor monitoring page.

User Story 13: View Dashboard and Overview KPIs

Scope:

As a plant operator, I want to access the dashboards from the Treatment Quality Monitoring (TQM) landing page. I should be able to view different dashboards specific to the treatment process types. Additionally, I should be able to filter the dashboard based on a date range and perform actions like sharing and downloading the dashboard and its charts/tables.

Actors:

- Plant operator

Details:

Dashboards:

- Dashboards can be accessed by clicking on the "View Dashboards" link on the TQM landing page.

Navigation:

- On landing on the dashboard, the user can navigate across the treatment process types to view the dashboard specific to the selected treatment process type.

Filters:

- Date range: The user should be able to filter the dashboard based on a date range to view relevant data for the selected time period.

Share:

- The user should be able to share the filtered dashboard over WhatsApp in the image format.

- The user should be able to share filtered charts/tables over WhatsApp in the image format.

Download:

- The user should be able to download the filtered dashboard in PDF and image formats.

- The user should be able to download filtered charts/tables in PDF and image formats.

Metrics:

- Overall KPIs:

- The dashboard will display the following KPIs:

- Total incoming sludge: The sum of the total sludge that is disposed at the plant for the selected time period.

- Number of trips: The count of the total incoming vehicles at the treatment plant for the selected time period.

- Overall quality: The number of tests where all parameters are as per the benchmarks compared to the total number of test results recorded.

- Compliance percentage: The percentage of tests where results have been recorded.

- Total alerts: The count of total alerts raised for the following types:

1. Test results not as per the benchmark.

2. No reading from the IoT device.

3. Lab results and IoT results not matching.

Computation of the KPIs can be accessed here.

Attributes Table:

- N/A

Validations:

NA

Configurations:

- N/A

Notifications:

- N/A

User Interface:

<To be updated>

Acceptance Criteria:

- The plant operator should be able to access the dashboards by clicking on the "View Dashboards" link from the TQM landing page.

- The user should be able to navigate across the treatment process types and view specific dashboards accordingly.

- The user should be able to filter the dashboard based on a date range to view relevant data for the selected time period.

- The user should be able to share the filtered dashboard and charts/tables over WhatsApp in the image format.

- The user should be able to download the filtered dashboard and charts/tables in PDF and image formats.

- The dashboard should display the specified KPIs for the plant operator to monitor and analyse treatment quality effectively.

User Story 14: Dashboard Card: Treatment Quality Overview

Scope:

As a plant operator, I want to view a dashboard card named "Treatment Quality Overview" on the dashboards page in the Treatment Quality Monitoring (TQM). The card should display the key performance indicators (KPIs) related to treatment quality, a table with relevant fields, and options to filter the data, share the dashboard, and download the data.

Actors:

- Plant operator

Details:

Treatment quality overview dashboard card:

- The "Treatment Quality Overview" card will be available on the dashboards page in TQM.

- KPIs:

- The card will display the following KPIs:

- Total tests: The count of total tests for the filtered date range.

- The count of tests that have passed treatment quality.

- The count of tests that have failed treatment quality.

- Table:

- Heading: Name of the plant

- The table will display the following fields:

- Stage

- Output type

- Value of Parameters

- Compliance percentage

Detailed metric calculations for the Treatment Quality Monitoring dashboard are viewable here.

- Filter:

- The user should be able to filter the data displayed in the card based on a date range. This will allow the plant operator to view data for a specific time period.

- Share:

- The user should be able to share the dashboard card "Treatment Quality Overview" with others over WhatsApp in the image format. This will enable easy sharing of the treatment quality data with relevant stakeholders.

- Download:

- The user should be able to download the data displayed in the "Treatment Quality Overview" card. This should include the KPIs and table data. The download options should include PDF and image formats. This will allow the plant operator to keep a record of the treatment quality data for further analysis and reporting.

- View trends:

- For each stage in the table, a button will be available to "View Trends". Clicking on this button will redirect the user to view trends specific to the selected stage. This will help the plant operator analyse the historical performance of the treatment quality for a particular stage.

- Toggle IoT readings and lab results:

- The user should be able to toggle between viewing the IoT readings and the lab results in the "Treatment Quality Overview" card. This toggle will allow the plant operator to switch between different data sources and gain insights into the treatment quality from different perspectives.

Attributes Table:

- N/A

Validations:

NA

Configurations:

- N/A

Notifications:

- N/A

User Interface Design:

<To be updated>

Acceptance Criteria:

- The plant operator should be able to view the "Treatment Quality Overview" card on the dashboards page in TQM.

- The card should display the specified KPIs for the filtered date range.

- The table should show relevant fields, including stage, output type, value of parameters, and compliance percentage.

- The plant operator should be able to filter the data based on a date range to view data for a specific time period.

- The plant operator should be able to share the "Treatment Quality Overview" card with others over WhatsApp in the image format.

- The plant operator should be able to download the data from the "Treatment Quality Overview" card in PDF and image formats.

- The plant operator should be able to view trends for specific stages by clicking on the "View Trends" button in the table.

- The plant operator should be able to toggle between viewing the IoT readings and the lab results in the "Treatment Quality Overview" card.

User Story 15: Dashboard Card: Parameter Trends

Scope:

As a plant operator, I want to view the trends of parameter readings over time for a stagein the treatment quality overview table. The chart should provide a comparison with the benchmark and a toggle to navigate between different parameters.

Actors:

- Plant operator

Details:

Trends of parameter readings:

- The chart will be available once the plant operator clicks on the "View Trend" button in the treatment quality overview table.

- Chart features:

- Parameter trend over time:

- The chart will display the trend of one selected parameter over time.

- The x-axis of the chart will represent time, showing the data points over a specific time period.

- The y-axis will represent the parameter values recorded during that time period.

- Benchmark comparison:

- The chart will include a benchmark line to provide a comparison with the benchmark value for the selected parameter.

- The benchmark line will be displayed on the chart, helping the plant operator visualise how the parameter readings compare to the expected standard.

- Toggle for parameters:

- A toggle will be available to navigate between different parameters for which the trends are available.

- The plant operator can select a different parameter from the toggle to view the trend of that particular parameter.

Attributes Table:

- N/A

Validations:

NA

Configurations:

- N/A

Notifications:

- N/A

User Interface Design:

<To be updated>

Acceptance Criteria:

- The plant operator should be able to view the trends of parameter readings after clicking on the "View Trend" button in the treatment quality overview table.

- The chart should accurately display the trend of the selected parameter over time.

- The benchmark line should be visible and appropriately represent the expected standard for the selected parameter.

- The plant operator should be able to toggle between different parameters to view their trends.

User Story 16: Landing Page: ULB Employee

Scope:

As a ULB employee, I want to have a card for Treatment Quality Monitoring (TQM) on the landing page. The card should provide an overview of pending tests and tests nearing SLA, allow me to view upcoming tests using the inbox, access past test results, IoT readings, and sensor monitoring. Additionally, I should be able to view the treatment quality dashboard, and receive alerts related to TQM, which I can view in detail or dismiss.

Actors:

ULB employee

Details:

Landing page: ULB employee

- Treatment Quality Monitoring card:

- The landing page will include a card for Treatment Quality Monitoring.

- Overview:

- The card will provide an overview of the total pending tests and the count of tests nearing SLA.

- View the upcoming tests using the inbox:

- The card will display the count of the upcoming tests beside in brackets.

- The ULB employee can click on the inbox to view the upcoming tests.

- View the past test results:

- The ULB employee can click on a link to view the past results from both lab and IoT devices.

- View IoT readings:

- The ULB employee can click on a link to access the record of IoT readings.

- Sensor monitoring:

- The ULB employee can click on a link to access a list of IoT devices along with their status.

- View dashboard:

- The ULB employee can click on a link to be directed to the treatment quality dashboard.

- Alerts:

- The card will display a list of alerts regarding Treatment Quality Monitoring.

- Specifically, it will display tests that have crossed SLA for greater than 7 days.

- The ULB employee can view the details of each test by clicking on the "View Details" button.

- The ULB employee can dismiss notifications by clicking on the cross button.

- Other functionality:

- The rest of the functionality on the landing page will remain the same as the current ULB employee landing page.

Attributes Table:

- N/A

Validations:

NA

Configurations:

- N/A

Notifications:

- N/A

User Interface Design:

Acceptance Criteria:

- The ULB employee should be able to view the Treatment Quality Monitoring card on the landing page.

- The card should display an overview of the total pending tests and tests nearing SLA.

- The ULB employee should be able to click on the inbox to view the upcoming tests.

- The ULB employee should be able to click on links to view past test results, IoT readings, sensor monitoring, and the treatment quality dashboard.

- The card should display alerts related to TQM and allow the ULB employee to view the details or dismiss them.

- The rest of the functionality on the landing page should remain unaffected.

User Story 17: View Upcoming Tests

Scope:

As a user, I want to view a list of the upcoming lab tests in the Treatment Quality Monitoring (TQM) module by clicking on the inbox. The list should be sorted by the pending date, displaying the test with the highest SLA first. I should be able to see the test ID, plant name, treatment process, pending date, status, and SLA. Additionally, I should be able to filter the tests, search for specific tests by test ID or plant name, and redirect to other pages in the TQM module using the provided links.

Actors:

ULB employee/state employee

Details:

View the list of upcoming tests:

- Inbox navigation:

- The user can click on the inbox to be redirected to the list of upcoming lab tests.

- Total count of upcoming tests:

- The total count of upcoming tests will be displayed beside the inbox in brackets.

- Sorting:

- The list of upcoming tests will be sorted by the pending date, where the test with the highest SLA is displayed first.

- Fields displayed:

- The list of upcoming tests will display the following fields:

- Test ID

- Plant Name

- Treatment Process

- Pending Date: This is the test date as per schedule

- Status: Status of the test

- SLA: The difference between the test due date and today. This will be displayed in red if the test due date is earlier than today, and in green if today is before the test due date.

- View test details:

- The user can view detailed information about a specific test by clicking on the test ID.

- Filters:

- Filters are displayed on the left-hand panel of the screen.

- The following filters are available:

- Treatment process: A multi-select showing values for the treatment processes configured for the urban local body (ULB). The selected treatment processes will be displayed as ticks on the multi-select box. If not selected, it is left blank.

- Stages: A dropdown showing values for the stages configured for the plant. The selected stage is displayed here on selection. If not selected, the field is left blank.

- Status: A multi-select showing values for the status in the treatment quality workflow.

- The user can select values for the filters and click on filter to filter the inbox accordingly.

- To clear the filters, the user can click on the refresh icon on the top right of the filter panel.

- Search:

- The user can search for specific tests using the following:

- Test ID

- Plant name

- Part search is enabled for both fields.

- The user can fill in either the test ID or the plant name or both and click on the search button.

- The user can clear the search by clicking on the clear search link.

- Retaining filters, sort, and search:

- In case filters, sort, or search are applied, and the user navigates to the test details page, on going back, the values of the filters, sort, and search should remain the same.

- Redirecting to other Links:

- Users can redirect to other pages in the TQM module via the links provided on the top left of the page.

- The following links will be displayed:

- View past results

- View IoT results

- Sensor monitoring

- View dashboard

Attributes Table:

- N/A

Validations:

NA

Configurations:

- N/A

Notifications:

- N/A

User Interface

Acceptance Criteria:

- The user should be able to view the list of the upcoming lab tests by clicking on the inbox.

- The list of upcoming tests should be sorted correctly by the pending date, showing the test with the highest SLA first.

- The user should be able to see the test ID, plant name, treatment process, pending date, status, and SLA in the list of upcoming tests.

- The user should be able to view detailed information about a specific test by clicking on the test ID.

- The user should be able to filter the tests based on the treatment process, stages, and status.

- The user should be able to search for specific tests by the test ID or the plant name.

- The user should be able to redirect to other pages in the TQM module using the provided links.

​​User Story 18: View Test Details

Scope:

As a user, I want to access a test details page by clicking on the test ID in the inbox. The test details page should display detailed information about the test, including test ID, plant name, treatment process, stage, output type, test type, test scheduled date, status, lab name, sample submission date, test results submission date, SLA, a table with parameter details, overall test results (pass/fail), attached documents (if any), and the test timeline. Additionally, I should be able to go back using the breadcrumbs of the page and download the test report.

Actors:

ULB employee/State employee

Details:

- Accessing the test details page:

- The user can access the test details page by clicking on the test ID in the inbox.

- Fields displayed:

- The following information will be displayed on the test details page:

- Test ID

- Plant Name

- Treatment Process

- Stage

- Output Type

- Test Type

- Test Scheduled Date

- Status

- Lab Name

- Sample Submission Date

- Test Results Submission Date

- SLA: This will be displayed in red/green based on SLA. If today > pending date, it will be displayed in red. If today < pending date, it will be displayed in green for open tests. For closed tests, SLA will be displayed.

In case the information on any field is not available, such as lab name/value against parameters based on the status of the test, the value against the fields will be displayed as "To be Updated".

- Table with parameter details:

- The page will include a table with the following details:

- S.No

- Parameter

- Unit of Measurement (UoM)

- Benchmark

- Value Recorded: The value will be displayed in red/green based on comparison to the benchmark.

- Overall Test Results: Pass/Fail

- Attached documents:

- The user should be able to view attached documents (if any) by clicking on the document icon. No icon will be present if the documents are not attached.

- Test timeline:

- The test details page will display the test timeline, showing the various stages and dates involved in the test process.

- Go back:

- The user can go back to the previous page using the breadcrumbs of the page.

- Download test report:

- The user can download the test report by clicking on the download button.

Attributes Table:

N/A

Validations:

N/A

Configurations:

N/A

Notifications:

N/A

User Interface:

Acceptance Criteria:

- The user should be able to access the test details page by clicking on the test ID in the inbox.

- The test details page should display detailed information about the test, including Test ID, Plant Name, Treatment Process, Stage, Output Type, Test Type, Test Scheduled Date, Status, Lab Name, Sample Submission Date, Test Results Submission Date, and SLA.

- The page should include a table with parameter details, showing S.No, Parameter, UoM, Benchmark, Value Recorded, and Overall Test Results (Pass/Fail).

- The user should be able to view attached documents (if any) by clicking on the document icon.

- The test details page should display the test timeline, showing the various stages and dates involved in the test process.

- The user should be able to go back using the breadcrumbs of the page.

- The user should be able to download the test report by clicking on the download button.

​​User Story 19: View Past Tests

Scope:

As a user, I want to view past test results (both IoT and lab) via the TQM landing page by clicking on the "Past Tests" link. The Past Test Results page will display a list of past tests with the ability to view test details, search tests based on various criteria, sort the results, and download test results in Excel and PDF formats. Additionally, I should be able to go back using the breadcrumbs on the top of the page and clicking on the Test ID will redirect me to the test details page.

Actors:

ULB employee/State employee

Details:

Past Test Results Page:

- Accessing Past Test Results Page:

- The user can access the Past Test Results page by clicking on the "Past Tests" link on the TQM landing page.

- Fields Displayed:

- The page will display a list of past tests sorted on the test date, with the following fields for each test:

- Test ID

- Plant

- Treatment Process (in case there is only 1 treatment process for the plant, this field will not be displayed)

- Test Type

- Test Date: This is the date the test results are updated

- Test Result: Pass/Fail

- View Test Details:

- The user can view test details by clicking on the "Test ID" link on each row, which will redirect the user to the test details page (same as redirection from Inbox).

- Search Tests:

- The user can search for past tests based on the following criteria:

- Test ID: Input Text field, Part search should be enabled.

- Plant: Dropdown of a list of plants in the ULB.

- Treatment Process: Dropdown of a list of treatment processes in the ULB.

- Test Type: This will be a dropdown showing values for Test Type (IoT/lab). Selected test type is displayed here on selection. If not, the field is left blank.

- Date range: Selection of date range (calendar view): Selected date range is displayed here on selection. If not, the field is left blank.

- Sort:

- Tests can be sorted by the Test Date by clicking on the date column.

- Clear Search:

- To clear the search and view all past tests, the user can click on the "Clear Search" button.

- Download Test Results:

- The user can download list of test results in Excel and PDF formats using the download button.

- Go Back:

- The user can go back to the previous page using the breadcrumbs on the top of the page. If the user has navigated to the Test details page from the Past Test results list, clicking back will redirect the user to the Past Test Results page.

Attributes Table:

N/A

Validations:

N/A

Configurations:

N/A

Notifications:

N/A

User Interface:

Acceptance Criteria:

- The user should be able to access the Past Test Results page by clicking on the "Past Tests" link on the TQM landing page.

- The Past Test Results page should display a list of past tests sorted on the test date, with relevant fields such as Test ID, Plant, Treatment Process, Test Type, Test Date, and Test Result (Pass/Fail).

- The user should be able to view test details by clicking on the "Test ID" link on each row, redirecting the user to the Test details page (same as redirection from Inbox).

- The user should be able to search for past tests based on Test ID, Plant, Treatment Process, Test Type, and Date range criteria.

- The user should be able to sort past tests by the Test Date.

- The user should be able to clear the search and view all past tests.

- The user should be able to download test results in Excel and PDF formats.

- The user should be able to go back using the breadcrumbs on the top of the page and clicking on the Test ID will redirect the user to the test details page.

User Story 20: View IoT Readings

Scope:

As a user, I want to view IoT readings via the TQM landing page by clicking on the "View IoT Readings" link. On clicking the link, the user should be redirected to the list of past tests, with the search on Test Type selected as "IoT" and the results filtered for IoT readings only. All other functionality of the page should remain the same.

Actors:

ULB employee/State employee

- Details:

- Accessing "View IoT Readings" Page:

- The user can access the "View IoT Readings" page by clicking on the "View IoT Readings" link on the TQM Landing Page.

- Redirected Page:

- On clicking "View IoT Readings," the user is redirected to the list of past tests, with the search on Test Type selected as "IoT," and the results filtered for IoT readings only.

- Other Functionality:

- All other functionality available on the page (e.g., viewing past test results, searching tests, sorting, downloading test results) will remain the same.

Attributes Table:

N/A

Validations:

N/A

Configurations:

N/A

Notifications:

N/A

User Interface:

N/A

Acceptance Criteria:

- The user should be able to access the "View IoT Readings" page by clicking on the "View IoT Readings" link on the TQM landing page.

- On clicking the link, the user should be redirected to the list of past tests, with the search on Test Type selected as "IoT," and the results filtered for IoT readings only.

- All other functionality available on the page should remain the same, allowing the user to view past test results, search tests, sort, and download test results as before.

User Story 21: Sensor Monitoring

Scope:

As a user, I want to view the list of devices via the TQM landing page by clicking on the "Sensor Monitoring" link. On clicking the link, the user should be redirected to the list of devices. The page should display the total number of IoT devices, and each device should have specific details such as Device ID, Plant, Treatment Process, Stage, Output Type, Device Status, and the parameters it is monitoring. The user should be able to search and filter devices based on various criteria.

Actors:

ULB employee/State employee

Details:

- Accessing "Sensor Monitoring" Page:

- The user can access the "Sensor Monitoring" page by clicking on the "Sensor Monitoring" link on the TQM Landing Page.

- Redirected Page:

- On clicking "Sensor Monitoring," the user is redirected to the list of devices.

- List of Devices:

- The page will display the total number of IoT devices beside the page heading in brackets.

- Each device will have a row displaying the following details:

- Device ID

- Plant

- Treatment Process

- Stage

- Output Type

- Device Status

- Parameters: One or multiple parameters that the device is monitoring.

- Filters:

- Search Devices:

- On clicking "Filter," a pop-up will be displayed with the following filters:

- Device ID: Allows part search for Device ID.

- Plant: Dropdown with values based on plants configured in the MDMS.

- Treatment Process: Dropdown with values based on the Treatment process type.

- Stage: Dropdown with values based on the Stage of the selected Treatment process.

- Output Type: Dropdown with values based on Output types configured for the plant.

- Device Status: Dropdown with options for Active/Inactive.

- The user can select values for the filters above and click on "Search" to filter the list of devices based on the selected criteria.

- To clear the search and view all devices, the user can click on "Clear All."

Attributes Table:

Attribute

Type

Required?

Comments and Validations

Configuration Date

Datetime

Y

Device Type

Text

Y

Selection from device master data

[“GPS Sensor”, “pH Sensor”, “Accelerometer”, “Light Sensor”]

Plant

Text

Y

Treatment Process

Text

Y

Stage

Text

Y

Output Type

Text

Y

Parameters

Array

Y

The parameters monitored by the device

Monitoring Frequency

Numeric

Y

Custom frequency for the device

Calibration Date

Datetime

Y

Input from the user about any change in the calibration/maintenance of the device

Calibration Accuracy

Array

Y

Range to indicate the permissible deviation in the accuracy

IsConnected?

Boolean

Y

To indicate the connectivity of the device

Connectivity History

?

Y

Date-wise device audit log to know the connectivity status

Verification History

?

Date-wise device verification log to know the days when device input was verified with laboratory results

Configurations:

N/A

Notifications:

N/A

User Interface:

Acceptance Criteria:

- The user should be able to access the "Sensor Monitoring" page by clicking on the "Sensor Monitoring" link on the TQM landing page.

- On clicking the link, the user should be redirected to the list of devices, displaying the total number of IoT devices and specific details for each device, such as Device ID, Plant, Treatment Process, Stage, Output Type, Device Status, and the parameters it is monitoring.

- The user should be able to search and filter devices based on various criteria using the available filters.

- The user can perform the search and view the filtered devices based on the selected criteria.

- The user can clear the search and view all devices if needed.

User Story 22: Record Test Results

Scope:

As a user, I want to be able to record test results without a schedule for adhoc tests. A provision will be provided for the user to record test results by clicking on the "Add Test Result" link on the card. Clicking on the link should redirect the user to the "Add Test Result" page where the user can enter the required fields, including Plant Name, Treatment Process, Treatment Stage, Output Type, values against parameters, and any attachments. After submitting the test results, the user should be redirected to the test results page with specific changes to the display compared to the View Test Results page.

Actors:

ULB employee/State employee

Details:

- Accessing "Add Test Result" Page:

- The user can access the "Add Test Result" page by clicking on the "Add Test Result" link on the Card.

- Redirected Page:

- Clicking on "Add Test Result" will redirect the user to the "Add Test Result" page.

- Fields to Enter:

- The user needs to enter the following fields:

- Plant Name: A dropdown based on the list of Plants available in the system. For a state-level user, this should display all plants in the state. For a ULB, it should also display the names tagged to the ULB.

- Treatment Process: A dropdown based on the list of Treatment Processes in the selected plant.

- Treatment Stage: A dropdown based on the list of Stages in the selected Treatment Process.

- Output Type: A dropdown based on the Output types available in the selected stage.

- Values against parameters: The user should fill in at least 1 parameter for the Submit button to be enabled. If no parameter is filled, and the user clicks on the Submit button, an error message is displayed as a snack bar.

- Attachments: If any attachments are required, the user can add them.

- Submitting Test Results:

- Once the user clicks on the Submit button, the test results page is displayed.

- Changes to "View Test Results" Page:

- The "View Test Results" page with the following changes:

- Test Type will be displayed as "Lab."

- Status, Lab Name, and SLA fields are not displayed.

- Workflow will not be displayed.

Test Attributes:

Attribute

Type

Required?

Comments/Validations

Test ID

Numeric

Y

Autogenerated by system

Plant Name

Array

View Only

Auto populated on creation of schedule, Single select for on demand test

Treatment Process

Array

View Only

Auto populated on creation of schedule, Single select for on demand test

Treatment Process Type

Array

View Only

Auto populated on creation of schedule, Single select for on demand test

Stage

Array

View Only

Auto populated on creation of schedule, Single select for on demand test

Output Type

Array

View Only

Auto populated on creation of schedule, Single select for on demand test

Test Type

Array

Lab/IoT, Autoselected to Lab for on demand

Lab Submitted to

Text

Y

This will not be required in case Test Type = IoT

Quality Parameter 1

Numeric

Y

Validation to be applied at impel

Quality Parameter 2

Numeric

Y

Validation to be applied at impel

Quality Parameter 3

Numeric

Y

Validation to be applied at impel

Quality Parameter n

Numeric

Y

Validation to be applied at impel

Collection Time

Date

Y

This is the date-time on which user updates status to Pending Results. For IoT, this is the time sensor records reading

Attachment

Document

Y

For a given collection location, photo or PDF proof of laboratory result mentioning the information of above-mentioned parameters

Validations:

<To be updated>

Configurations:

N/A

Notifications:

N/A

User Interface:

Acceptance Criteria:

- The user should be able to access the "Add Test Result" page by clicking on the "Add Test Result" link on the card.

- The "Add Test Result" page should allow the user to enter required fields, including Plant Name, Treatment Process, Treatment Stage, Output Type, values against parameters, and any attachments.

- After submitting the test results, the user should be redirected to the test results page with specific changes to the display compared to the "View Test Results" page.

User Story 23: View Dashboard and Overview KPIs

Scope:

The TQM Dashboard will be available to both ULB employees and state employees. It can be accessed by clicking on the 'Dashboard' link on the landing page. Upon clicking, the user will be directed to the dashboard view. The access to data in the dashboard will be based on the roles, where the ULB admin can view the dashboard for all plants in the ULB, and the state admin can view the dashboard for all plants in the state.

Actors:

- ULB Employee

- State Employee

Details:

- Accessing "Dashboard" View:

- The user can access the Dashboard by clicking on the "Dashboard" link on the landing page.

- Redirected to Dashboard:

- Clicking on "Dashboard" will direct the user to the Dashboard view.

- Navigation:

- On the Dashboard view, the user can navigate across Treatment Process Types to view specific dashboards for each Treatment Process Type.

- Filters:

- Date Range: The user should be able to filter the dashboard based on the selected date range.

- ULB: For ULB Employees, the ULB is automatically selected to the ULB the Plant and Employee is tagged to. For State users, all ULBs should be available in the dropdown.

- Plant: For ULB Employees, plants tagged to the ULB to which the employee belongs should be available in the dropdown. For State users, all plants should be available.

- Share Functionality:

- User should be able to share the filtered dashboard over WhatsApp in image format.

- User should be able to share filtered charts/tables over WhatsApp in image format.

- Download Functionality:

- User should be able to download the filtered dashboard in PDF and image format.

- User should be able to download filtered charts/tables in PDF and image format.

- Metrics - Overall KPIs:

- The Dashboard will display the following KPIs:

- Total Incoming Sludge: Sum of the total sludge that is disposed of at the plant for the selected time period.

- # of trips: Count of total incoming vehicles at the Treatment Plant for the selected time period.

- Overall Quality: Number of tests where all parameters are as per benchmarks compared to the total number of test results recorded.

- Compliance %: % of tests where results have been recorded.

- Total Alerts: Count of total alerts raised of the following types:

1) Test Results not as per benchmark.

2) No reading from IoT device.

3) Lab results and IoT results not matching.

Detailed Metric calculations for the Treatment Quality Monitoring Dashboard are viewable here.

Attributes Table:

N/A

Validations:

The user should have appropriate access rights to view the dashboard.

Configurations:

N/A

Notifications:

N/A

User Interface:

Acceptance Criteria:

- The user should be able to access the dashboard by clicking on the 'Dashboard' link on the landing page.

- The Dashboard view should allow the user to navigate across Treatment Process Types to view specific dashboards for each Treatment Process Type.

- The user should be able to filter the dashboard based on the selected date range, ULB, and plant.

- The user should be able to share the filtered dashboard and charts/tables over WhatsApp in the image format.

- The user should be able to download the filtered dashboard and charts/tables in PDF and image formats.

- The Dashboard should display the overall KPIs, including Total Incoming Sludge, the number of trips, Overall Quality, Compliance percentage, and Total Alerts.

User Story 24: Dashboard Card: Treatment Quality Monitoring

Scope:

The Treatment Quality Overview provides an overview of the Treatment Quality for a particular Treatment Process. It includes KPIs, a map view, and a table of plant-wise details of test results (Pass/Fail) and compliance percentage.

Actors:

ULB Employee/State Employee

Details:

- KPIs:

- Total Plants: The count of unique plants for the particular Treatment Process.

- Count of Plants Passed Treatment Quality: The count of plants that have passed Treatment Quality as per the last recorded test. Treatment Quality is said to have passed if all parameters for final output(s) of a Treatment process are as per benchmarks.

- Count of Plants Failed Treatment Quality: The count of plants that have failed Treatment Quality as per the last recorded test. Treatment Quality is said to have failed if one or more parameters for final output(s) of a Treatment process are not as per benchmarks.

- Map View:

- The dashboard will display a map view showing the location of each plant. Plants will be colour-coded based on whether they have passed or failed the last output quality test Treatment Quality. (Red = Failed, Green = Passed)

- Table:

- The table will show plant-wise details of Test Results (Pass/Fail) and Compliance Percentage based on the last recorded test. The user will also be able to see the change in compliance percentage compared to the last month.

- Drill down functionality will be available for a plant via this table.

- For Treatment Plant Users (TRP) and ULBs where only one plant is tagged for the process type, the drilled table is automatically visible.

- Drill Down:

- When a user drills down on a specific plant from the table, the following information will be viewable:

- Heading: Name of the Plant

- Table displaying the following fields:

- Stage

- Output Type

- Value of Parameters

- Compliance Percentage

- Button to view Trends for a particular Stage.

- Toggle to Toggle between IoT readings and Lab Results. The selected test type will appear highlighted.

- Switching between Process Flows:

- If there are multiple process flows, the user can switch between them using buttons. The selected process flow will appear highlighted.

Detailed Metric calculations for the Treatment Quality Monitoring Dashboard are viewable here.

- Filters:

- Date Range: The user should be able to filter the dashboard based on the selected date range.

- ULB: For ULB Employees, the ULB is automatically selected to the ULB the Plant and Employee is tagged to. For State users, all ULBs should be available in the dropdown.

- Plant: For ULB Employees, plants tagged to the ULB to which the employee belongs should be available in the dropdown. For State users, all plants should be available.

- Share Functionality:

- User should be able to share filtered charts/tables over WhatsApp in image format.

- Download Functionality:

- User should be able to download filtered charts/tables in PDF and image format.

Attributes Table:

N/A

Validations:

The user should have appropriate access rights to view the Treatment Quality Overview dashboard.

Configurations:

N/A

Notifications:

N/A

User Interface:

Acceptance Criteria:

- The Treatment Quality Overview dashboard should display the KPIs: Total Plants, Count of Plants Passed Treatment Quality, and Count of Plants Failed Treatment Quality.

- The map view should show the location of each plant, color-coded based on whether they have passed or failed Treatment Quality.

- The table should show plant-wise details of Test Results (Pass/Fail) and Compliance Percentage based on the last recorded test. The user should be able to see the change in compliance percentage compared to the last month.

- The drill down functionality should provide detailed information about a specific plant's Stage, Output Type, Value of Parameters, and Compliance Percentage.

- The user should be able to toggle between IoT readings and Lab Results for a specific plant.

- If there are multiple process flows, the user should be able to switch between them using buttons.

User Story 25: Dashboard Card: Trend of Parameter Reading

Scope:

The user will be able to view a trend chart for a specific parameter over time once they click on the "View Trend" button in the table. The chart will provide a comparison with the benchmark.

Actors:

- ULB Employee/State Employee

- Details:

- When the user clicks on the "View Trend" button in the table, a trend chart will be displayed.

- The chart should not be visible before Trend chart has been clicked on

- The chart will show the trend of the selected parameter over time.

- The chart will also display the benchmark for the selected parameter to provide a comparison.

- A toggle will be available to navigate between different parameters for viewing their trend charts.

Attributes Table:

- N/A

Validations:

- The user should have appropriate access rights to view trend charts.

Configurations:

- N/A

Notifications:

- N/A

User Interface:

Acceptance Criteria:

- The user should be able to view a trend chart for a specific parameter by clicking on the "View Trend" button in the table.

- The chart should show the trend of the selected parameter over time.

- The chart should display the benchmark for the selected parameter to provide a comparison.

- The user should be able to navigate between different parameters using the toggle to view their trend charts.

Test Cases

Test ID
Module
Feature
Description
Steps to be executed
Expected Result
Actual result
QA Test Result
UAT Test Result
PM Test Result

Dashboard

Dashboard_01

Dashboard

Trips mismatch - Vehicle log report

To check for the number of trips in the vehicle log report

1. Login as ULB employee and open dashboard. 2. Navigate to the Desludging Request Report.

Initially, the data is displayed district-wise, so, here it should display the summation number of trips of all boundary.

Initially data is displayed district-wise. However, there is mismatch in the number of trips.

FAILED

FAILED

FAILED

Dashboard_02

Dashboard

Desludging Request Report

To verify the data mismatch in the Desludging Request Report

1. Login as a ULB employee and open the dashboard. 2. Navigate to the Desludging Request Report.

Initially, data is displayed district wise so, here it should display summation Open Request of ULB.

Initially data is displayed district wise so, but there is mismatch in open request.

FAILED

FAILED

FAILED

Dashboard_03

Dashboard

Desludging Request Report” & Vehicle Log Report

To verify When ULB is selected from drop down, the “Desludging Request Report” & “Vehicle Log Report” is showing District wise data. And there is mismatch in data between district figures and summation of data of ULB

1. Login as ULB Employee and open dashboard. 2. Then navigate to Desludging Request Report. 3. Check for Desludging Request Report” & “Vehicle Log Report”

ashboard shall showcase the requisite data & details with exact usage in the platform. And the district wise data shall be the summation of ULB wise data.

Desludging Request Report” & Vehicle Log Report is showing District wise data. And there is mismatch in data between district figures and summation of data of ULBs

FAILED

FAILED

FAILED

Dashboard_04

Dashboard

Check for templates- Date Range

Check for Date Range values

1. Login to Date Range 2. Check for Date Range filter criteria

Date Range should ahve vlues like month, year and dates to select from

Date Range has vlues like month, year and dates to select from

PASSED

PASSED

PASSED

Dashboard_05

Dashboard

Check for templates- DDRs

Check for DDRs values

1. Login to Date Range 2. Check for DDRs filter criteria

DDRs should have drop dwon values to select from

DDRs should has drop dwon values to select from

PASSED

PASSED

PASSED

Dashboard_06

Dashboard

Check for templates- ULB

Check for ULB values

1. Login to Date Range 2. Check for ULB filter criteria

ULB should have drop dwon values to select from

ULB should has drop dwon values to select from

PASSED

PASSED

PASSED

Dashboard_07

Dashboard

Overview chart

Check for overview chart values and shareable over email, download and over whatsapp

1. Login to Date Range 2. Check if IOVerview chart is dispalyed 3. Check if below values are ppopulated Total Request Total Sludge Treated Average FSM Cost Total Collection SLA Compliance Citizen Average Rating

All the below values should be populated correctly Total Request Total Sludge Treated Average FSM Cost Total Collection SLA Compliance Citizen Average Rating and user should be able to share teh image

Below values are populated correctly Total Request Total Sludge Treated Average FSM Cost Total Collection SLA Compliance Citizen Average Rating User is able to share the image and download

PASSED

PASSED

PASSED

Dashboard_08

Dashboard

Total Cumulative Collection

Check for Total Cumulative Collection chart is populated as expected and X and Y axis has required values

1. Login to Date Range 2. Check if Total Cumulative Collection chart is displayed with X and Y axis

Total Cumulative Collection should have X axis based on the filter values selected and X axis with the collection volume

Total Cumulative Collection has qX axis based on the filter values selected and X axis with the collection volume

PASSED

PASSED

PASSED

Dashboard_09

Dashboard

FSM Collection by Usage Type

Check if FSM Collection by Usage Type displays all the requird property types

1. Login to Date Range 2. Check if FSM Collection by Usage Type chart is dispalyed 3. Check if below values are ppopulated IndependentHouse RecidentialApartment Hotel Toilets Restaurant Institutional Church RowHouses

All the below values should be displayed as expected IndependentHouse RecidentialApartment Hotel Toilets Restaurant Institutional Church RowHouses

All the below values are displayed as expected IndependentHouse RecidentialApartment Hotel Toilets Restaurant Institutional Church RowHouses

PASSED

PASSED

PASSED

Dashboard_09

Dashboard

FSM Service Request by Gender

Check if FSM Service Request by Gender is displayed as expected

1. Login to DSS dash board 2. Check for FSM Service Request by Gender if it displays Male , Female and Tansgender values as expected

FSM Service Request by Gender should displayall 3 gender data as expected

FSM Service Request by Gender displays all 3 gender data as expected

PASSED

PASSED

PASSED

Driver_01

Driver tab

Error message with duplicate mobile number for driver

To verify if proper error message is displayed when ULB employee create two drivers with same mobile number

1. Login to FSM registry using QAADMIN 2. Go to driver tab and create two new drivers with same mobile nuber

Proper error message should be displayed when ULB employee create two drivers with same mobile number

Proper error message is not displayed displayed when ULB employee create two drivers with same mobile number

FAILED- Fixed and retested (working as expected now)

FAILED- Fixed and retested (working as expected now)

FAILED- Fixed and retested (working as expected now)

Vendor_Driver_01

Vendor and Driver tab

Vendor and Driver tab

To verify when admin creates vendor and driver with same mobile number

1. Login to FSM registry using QAADMIN 2. Go to vendor and driver tab and create two new vendor and driver with same mobile nuber

Vendor name should be displayed for vendor and same for driver

Vendor name is displayed in driver listing when admin creates vendor and driver with same mobile number

FAILED- Fixed and retested (working as expected now)

FAILED- Fixed and retested (working as expected now)

FAILED- Fixed and retested (working as expected now)

DSO_01

DSO

DSO - Creating new application

To verify if DSO is able to create new application as citizen

1. Login using citizen ui with DSO mobile number 2. Create a application

DSO should be able to create new application

DSO is unable to create application

FAILED- Fixed and retested (working as expected now)

FAILED- Fixed and retested (working as expected now)

FAILED- Fixed and retested (working as expected now)

Citizen_01

DSO

DSO - Citizen flow

To verify Applications Created by Citizen is displayed for DSO user

1. Login as DSO using citizen login 2. create an application 3. Go to my applications 4. Check for applications displayed

Only Dso created applications should be displayed

Applications Created by Citizen is displayed for DSO user

FAILED- Fixed and retested (working as expected now)

FAILED- Fixed and retested (working as expected now)

FAILED- Fixed and retested (working as expected now)

Test Cases For Vendor Tab

/ 9

Admin Should be able to see FSM Registry page

Vendo_01

Vendor Tab

FSM Registry - Vendor Tab

To Verify admin can able to select FSM Registry Button

1.Login as Admin 2.Click on Fsm registry

Admin Can able to see FSM Registry page

PASSED

PASSED

PASSED

Vendo_02

Vendor Tab

FSM Registry - Vendor Tab

To Verify UI for vendor Tab in FSM Registry page

1.Login as Admin 2.Click on Fsm registry 3.Click on Vendor Button

Admin Should be able to see the Vendor page

Admin Can able to see the Vendor page

PASSED

PASSED

PASSED

Vendo_03

Vendor Tab

FSM Registry - Vendor Tab

To Verify for vendor button in FSM Registry page

1.Login as Admin 2.Click on Fsm registry 3.Click on Vendor Button

Admin Should be able to see all the components of vendor button

Admin Can able to see all the components of vendor button

PASSED

PASSED

PASSED

Vendo_04

Vendor Tab

FSM Registry - Vendor Tab

To Verify admin can able to enter vendor name in vendor name text field

1.Login as Admin 2.Click on Fsm registry 3.Click on By Vendor Button 4.Enter vendor name 5.Click on search

Admin Should be able to see vendor details

Admin Can able to see vendor details

PASSED

PASSED

PASSED

Vendo_05

Vendor Tab

FSM Registry - Vendor Tab

To verify admin can able to select Enable / disable toggle button

1.Login as Admin 2.Click on Fsm registry 3.Click on By Vendor Button 4Enter vendor name and click on search 5.Click on Enable/disable Toggle

Admin Should be able to see toggle button in orange colour if it is disabled or Should be display in black if it is enabled

Admin Can able to see toggle button in orange colour if it is disabled or Can display in black if it is enabled

PASSED

PASSED

PASSED

Vendo_06

Vendor Tab

FSM Registry - Vendor Tab

To verify admin can able to select the vendor name

1.Login as Admin 2.Click on Fsm registry 3.Click on By Vendor Button 4.Enter Vendor name 5.Click on search 5.Click on Vendor name

Admin Should be able to view Vendor's details , Vehicle details and Driver details

Admin Can able to view Vendor's details Vehicle details and Driver details

PASSED

PASSED

PASSED

Vendo_07

Vendor Tab

FSM Registry - Vendor Tab

To verify admin can able to add vehicle to vendor details

1.Login as Admin 2.Click on Fsm registry 3.Click on By Vendor Button 4.Enter Vendor name 5.Click on search 5.Click on Vendor name 6.Click on Add vehicle 7.Select a vehicle 8.Click on submit

Admin Should be able to view vehicle details in vendor's details

Admin Can able to view vehicle details in vendor's details

PASSED

PASSED

PASSED

Vendo_08

Vendor Tab

FSM Registry - Vendor Tab

To verify admin can able to add driver to vendor details

1.Login as Admin 2.Click on Fsm registry 3.Click on By Vendor Button 4.Enter Vendor name 5.Click on search 5.Click on Vendor name 6.Click on Add driver 7.Select a vehicle 8.Click on submit.

Admin Should be able to view driver details in vendor's details

Admin Can able to view driver details in vendor's details

PASSED

PASSED

PASSED

Vendo_09

Vendor Tab

FSM Registry - Vendor Tab

To verify admin able to select Take action button

1.Login as Admin 2.Click on Fsm registry 3.Click on By Vendor Button 4.Enter Vendor name 5.Click on search 6.Click on Vendor name 7.Click on take action button

Admin Should be able to view Take action button in orange colour

Admin can able to view Take action button in orange colour

PASSED

PASSED

PASSED

Vendo_10

Vendor Tab

FSM Registry - Vendor Tab

To verify admin able to select Edit or delete button

1.Login as Admin 2.Click on Fsm registry 3.Click on By Vendor Button 4.Enter Vendor name 5.Click on search 6.Click on Vendor name 7.Click on take action button 8.Enter or change the required fields

Admin Should be able to view edit and delete buttons in orange colour

Admin can able to view edit and delete buttons.

PASSED

PASSED

PASSED

Vendo_11

Vendor Tab

FSM Registry - Vendor Tab

To verify admin able to click on add icon

1.Login as Admin 2.Click on Fsm registry 3.Click on add icon

Admin Should be view vendor,Vehicle and driver list

Admin can able to view vendor,Vehicle and driver list

PASSED

PASSED

PASSED

Vendo_12

Vendor Tab

FSM Registry - Vendor Tab

To verify admin can able to add new vendor

1.Login as Admin 2.Click on Fsm registry 3.Click on Add icon 4.Click on Vendour 5.Enter all the required fields 6.Click on Submit application Button

New Vendor has to create.

New Vendor is created

PASSED

PASSED

PASSED

Vendo_13

Vendor Tab

FSM Registry - Vendor Tab

To verify Admin can able to see the vendor name in vendor list

1.Login as Admin 2.Click on Fsm registry 3.Enter vendor name 4.Click on search

Vendor's details should display

Vendor's details is displaying

PASSED

PASSED

PASSED

Test Cases For Vehicle Tab

/3

Vehicle_01

Vehicle Tab

FSM Registry - Vehicle Tab

Verify UI for vehicle number Tab in FSM Registry page

1.Login as Admin 2.Click on Fsm registry 3.Click on Vehicle number Button

Admin Should be able to see the Vehicle page

Admin Can able to see the Vehicle page

PASSED

PASSED

PASSED

Vehicle_02

Vehicle Tab

FSM Registry - Vehicle Tab

Verify for vehicle number button in FSM Registry page

1.Login as Admin 2.Click on Fsm registry 3.Click on Vehicle number Button

Admin Should be able to see all the components of Vehicle number button

Admin Can bable to see all the components of Vehicle number button

PASSED

PASSED

PASSED

Vehicle_03

Vehicle Tab

FSM Registry - Vehicle Tab

Verify admin can able to enter vehicle number in Vehicle number text field

1.Login as Admin 2.Click on Fsm registry 3.Click on By Vehicle number Button 4.Enter Vehicle number 5.Click on search

Admin Should be able to see vehicle details

Admin Can able to see vehicle details

PASSED

PASSED

PASSED

Vehicle_04

Vehicle Tab

FSM Registry - Vehicle Tab

To verify admin can able to select Enable / disable toggle button

1.Login as Admin 2.Click on Fsm registry 3.Click on By Vehicle number Button 4Enter vendor name and click on search 5.Click on Enable/disable Toggle

Admin Should be able to see toggle button in orange colour if it is disabled or toggle button Should display in black if it is enabled

Admin Can able to see toggle button in orange colour if it is disabled or toggle button Can display in black if it is enabled

PASSED

PASSED

PASSED

Vehicle_05

Vehicle Tab

FSM Registry - Vehicle Tab

To verify admin can able to select Vehicle number

1.Login as Admin 2.Click on Fsm registry 3.Click on By Vehiclenumber Button 4.Enter Vehicle number 5.Click on search 5.Click on Vehicle number

Admin Should be able to see Vehicle details.

Admin Can be able to see Vehicle details.

PASSED

PASSED

PASSED

Vehicle_06

Vehicle Tab

FSM Registry - Vehicle Tab

To verify admin able to select Take action button

1.Login as Admin 2.Click on Fsm registry 3.Click on By Vehicle number Button 4.Enter Vehicle number 5.Click on search 6.Click on vehicle number 7.Click on take action button

Admin Should be able to see edit and delete buttons in orange colour

Admin Can be able to see edit and delete buttons in orange colour

PASSED

PASSED

PASSED

Vehicle_07

Vehicle Tab

FSM Registry - Vehicle Tab

To Verify admin can able to Edit the vehicle details

1.Login as Admin 2.Click on Fsm registry 3.Enter Vehicle number 4.Click on Vehicle number 5.Click on Take action 6.Click on edit 7.Enter the details in required fields 8.Click on submit application Button

Admin Should be able to see updated vehicle details

Admin Can able to see updated vehicle details

PASSED

PASSED

PASSED

Vehicle_08

Vehicle Tab

FSM Registry - Vehicle Tab

To Verify admin can able to Delete the vehicle's details

1.Login as Admin 2.Click on Fsm registry 3.Enter vendor name 4.Click on vendor name 5.Click on Take action 6.Click on Delete 7.Click Again On Delete

Vehicle Should be deleted from the list

Vehicle is deleted from the list

PASSED

PASSED

PASSED

Vehicle_09

Vehicle Tab

FSM Registry - Vehicle Tab

To verify admin able to click on add icon

1.Login as Admin 2.Click on Fsm registry 3.Click on add icon

Admin Should be able to see vendor,Vehicle and driver list

Admin can able to see vendor,Vehicle and driver list

PASSED

PASSED

PASSED

Vehicle_10

Vehicle Tab

FSM Registry - Vehicle Tab

To verify admin can able to add new vehicle

1.Login as Admin 2.Click on Fsm registry 3.Click on Add icon 4.Click on Vehicle 5.Enter all the required fields 6.Click on Submit application Button

New Vehicle has to be created

New Vehicle is created

PASSED

PASSED

PASSED

Vehicle_11

Vehicle Tab

FSM Registry - Vehicle Tab

To verify Admin can able to see the vehicle name in vendor list

1.Login as Admin 2.Click on Fsm registry 3.Enter Vehicle number 4.Click on search

Admin Should be able to see Vehicle's details

Admin Can able to see Vehicle's details

PASSED

PASSED

PASSED

Test Cases For Driver Tab

/1

Driver_01

Driver Tab

FSM Registry - DriverTab

To check UI of Driver tab

1.Login as Admin 2.Click on Fsm registry 3.Click on Driver Button

Admion Should be able to see the Driver page

Admin Can able to see the Driver page

PASSED

PASSED

PASSED

Driver_02

Driver Tab

FSM Registry - DriverTab

To verify Admin can able to enter Driver name in Driver Text field

1.Login as Admin 2.Click on Fsm registry 3.Click on Driver Button 4.Enter driver name in driver text field 5.Click on Search

Admin Should be able to see all the components of Driver page details

Admin Can able to see all the components of Driver page details

PASSED

PASSED

PASSED

Driver_03

Driver Tab

FSM Registry - DriverTab

To Verify admin can able to enter Driver name in name Driver text field

1.Login as Admin 2.Click on Fsm registry 3.Click on By Driver Button 4.Enter Driver name 5.Click on search

Admin Should be able to see all the details of the Driver

Admin can able to see all the details of the Driver

PASSED

PASSED

PASSED

Driver_04

Driver Tab

FSM Registry - DriverTab

To verify admin can able to select Enable / disable toggle button

1.Login as Admin 2.Click on Fsm registry 3.Click on By Driver Button 4.Enter Driver name 5.Click on search 6.Click on Enable or Disable toggle button

Admin Should be able to see toggle button in orange colour if it is enabled or Should display in black if it is Disabled

Admin can able to see toggle button in orange colour if it is enabled or Should display in black if it is Disabled

PASSED

PASSED

PASSED

Driver_05

Driver Tab

FSM Registry - DriverTab

To verify admin able to select Take action button

1.Login as Admin 2.Click on Fsm registry 3.Click on By Driver Button 4.Enter Driver name 5.Click on search 6. Click on Driver name 7.Click on take action button

Admin Should be able to see edit and delete buttons in orange colour

Admin can able to see edit and delete buttons in orange colour

PASSED

PASSED

PASSED

Driver_06

Driver Tab

FSM Registry - DriverTab

To verify admin able to click on add icon

1.Login as Admin 2.Click on Fsm registry 3.Click on add icon

Admin Should be able to see vendor,Vehicle and driver list

Admin can able to see vendor,Vehicle and driver list

PASSED

PASSED

PASSED

Driver_07

Driver Tab

FSM Registry - DriverTab

To verify admin can able to add new Driver

1.Login as Admin 2.Click on Fsm registry 3.Click on Add icon 4.Click on Driver 5.Enter all the required fields 6.Click on Submit application Button

New Driver has to be created

New Driver is created

PASSED

PASSED

PASSED

Driver_08

Driver Tab

FSM Registry - DriverTab

To verify Admin can able to see the Driver name in Driver list

1.Login as Admin 2.Click on Fsm registry 3.Enter Driver name 4.Click on search

Driver details should display

Driver details is displaying

PASSED

PASSED

PASSED

Complete request : upload photo - copy

Complete_request_01

Complete request

Uplaod Photo

To verify the localisation has been changed from upload pit photo to upload photo

1.Login as Editor. 2.Select the application which has to be completed. 3.Click on take action. 4.click on complete request.

The localisation Can be changed from upload pit photo to upload photo

The localisation Can been changed from upload pit photo to upload photo

PASSED

PASSED

PASSED

FSM Registry Login to Inbox and empty inbox

FSM Registry_01

FSM Registry-Inbox

FSM Registry Login to Inbox and empty inbox

To verify admin can able to view add Add new vendor option

1.Login as Admin. 2.click on Fsm registry button 3.Enter the invalid vendor name. 4.Click on search

Admin should be able to view add new vendor option .

Admin Can able to view add new vendor option .

PASSED

PASSED

PASSED

FSM Registry_02

FSM Registry-Inbox

FSM Registry Login to Inbox and empty inbox

To verify admin can able to view add Add new vehicle option

1.Login as Admin. 2.click on Fsm registry button 3.Enter the invalid vehicle name. 4.Click on search

Admin should be able to view add new vehicle option

Admin Can able to view add new vehicle option

PASSED

PASSED

PASSED

FSM Registry_03

FSM Registry-Inbox

FSM Registry Login to Inbox and empty inbox

To verify admin can able to view add Add new driver option

1.Login as Admin. 2.click on Fsm registry button 3.Enter the invalid driver name. 4.Click on search.

Admin should be able to view add new vendor option .

Admin Can able to view add new vendor option .

PASSED

PASSED

PASSED

ULB Inbox

ULB Employee_01

ULB Employee

ULB Employee Inbox

To verify Filter options like assigned to me and assigned to all Can be removed from UI

1.Login as ULB Employee 2.Click on inbox 3.Check whether Filter options like assigned to me and assigned to all is there.

ULB Employee Can not be able to view assigned to me and assigned to all filter options.

ULB Employee can able to view assigned to me and assigned to all filter options.

PASSED

PASSED

PASSED

ULB Employee_02

Creator flow

ULB Employee Inbox

To check that creator can be able to view FSM Page with New De sludging application , inbox and reports options.

1.Login As admin 2.click on New Desludging application button. 3.click the browser back button

Creator Can be able to view FSM Page with New De sludging application , inbox and reports options.

Creator can be able to view FSM Page with New De sludging application , inbox and reports options.

PASSED

PASSED

PASSED

Test cases for Vehicle validation

Vehicle number validation_01

Vehicle

Vehicle number validation

The Add new text field Can accept the vehicle number in the AB 00 CD 1234 format

1.Login as FSTPO. 2.Click on Home. 3.Click on Add new. 4.Enter the vehicle number in the AB 00 CD 1234 format.

The Add new text field Can be able to accept the vehicle number in the AB 00 CD 1234 format

The Add new text field is accepting the vehicle number in the AB 00 CD 1234 format

PASSED

PASSED

PASSED

Vehicle number validation_02

Vehicle

Vehicle number validation

The Add new text field Can accept the vehicle number in the AB 00 C 1234 format

1.Login as FSTPO. 2.Click on Home. 3.Click on Add new. 4.Enter the vehicle number in the AB 00 C 1234 format.

The Add new text field Can be able to accept the vehicle number in the AB 00 C 1234 format

The Add new text field is accepting the vehicle number in the AB 00 C 1234 format

PASSED

PASSED

PASSED

Vehicle number validation_03

Vehicle

Vehicle number validation

The Add new text field Can accept the vehicle number in the AB 00C 1234 format

1.Login as FSTPO. 2.Click on Home. 3.Click on Add new. 4.Enter the vehicle number in the AB 00C 1234 format.

The Add new text field Can be able to accept the vehicle number in the AB 00C 1234 format

The Add new text field is accepting the vehicle number in the AB 00C 1234 format

PASSED

PASSED

PASSED

Vehicle number validation_04

Vehicle

Vehicle number validation

The Add new text field Can accept the vehicle number in the AB 00CD 1234 format

1.Login as FSTPO. 2.Click on Home. 3.Click on Add new. 4.Enter the vehicle number in the AB 00CD 1234 format.

The Add new text field Can be able to accept the vehicle number in the AB 00CD 1234 format

The Add new text field is accepting the vehicle number in the AB 00CD 1234 format

PASSED

PASSED

PASSED

ULB New application +(modify application)

ULB Employee_01

ULB Employee

ULB New application + modify application

To verify that collector can able to collect the advance amount

1.Login as collector 2.search with the application number and click on the application number and collect the payment.

Collector Can be able to Collect the advance amount.

Collector can able to Collect the advance amount.

PASSED

PASSED

PASSED

ULB Employee_02

ULB Employee

ULB New application + modify application

To verify that collector can able to collect the Balance amount

1.Login as collector 2.search with the application number and click on the application number and collect the payment.

Collector Can be able to Collect the balance amount.

Collector can able to Collect the balance amount.

PASSED

PASSED

PASSED

ULB Employee_03

ULB Employee

ULB New application + modify application

To verify that Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

1.Login as collector 2.search with the application number and click on the application number and collect the payment. 3.Download the reciept and view the advance amount and paid amount and balance amount in payment Reciept.

Collector Can be able to view the advance amount and paid amount and balance amount in payment Reciept.

Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

PASSED

PASSED

PASSED

ULB collecting advance

, https://digit-discuss.atlassian.net/browse/SM-807

Collector - Advance amount_01

Collector - Advance amount

ULB collecting advance amount

To verify that collector can able to collect the advance amount

1.Login as collector 2.search with the application number and click on the application number and collect the payment.

Collector Can be able to Collect the advance amount.

Collector can able to Collect the advance amount.

PASSED

PASSED

PASSED

Collector - Advance amount_02

Collector - Advance amount

ULB collecting advance amount

To verify that collector can able to collect the Balance amount

1.Login as collector 2.search with the application number and click on the application number and collect the payment.

Collector Can be able to Collect the balance amount.

Collector can able to Collect the balance amount.

PASSED

PASSED

PASSED

Collector - Advance amount_03

Collector - Advance amount

ULB collecting advance amount

To verify that Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

1.Login as collector 2.search with the application number and click on the application number and collect the payment. 3.Download the reciept and view the advance amount and paid amount and balance amount in payment Reciept.

Collector Can be able to view the advance amount and paid amount and balance amount in payment Reciept.

Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

PASSED

PASSED

PASSED

Collector - Advance amount_04

Collector - Advance amount

ULB collecting advance amount

To verify that collector can able to collect the remaining amount and the breadcrumbs Can be as follows Home/FSM/ Inbox/ Collect Payment / Generate Receipt

1.Login as Collector. 2.click on inbox and enter the application number and click on the application number, 3.Click on generate reciept and enter all the fields and click on submit application

collector Can be able to collect the remaining amount and the breadcrumbs Can be as follows Home/FSM/ Inbox/ Collect Payment / Generate Receipt

collector can able to collect the remaining amount and the breadcrumbs Can be as follows Home/FSM/ Inbox/ Collect Payment / Generate Receipt

PASSED

PASSED

PASSED

Collector - Advance amount_05

Collector - Advance amount

ULB collecting advance amount

To verify that citizen is getting the message in the given format after paying the full amount

Check has to check the message and Can be in the given format Dear citizen, amount of Rs.* is received towards the payment of cleaning septic tank /pit for reference no. *. Please click this link **to download the receipt. Thank You. EGOVS.

citizen Can be able to get the message in the given format.

citizen can able to get the message in the given format.

PASSED

PASSED

PASSED

Collector - Advance amount_06

Collector - Advance amount

ULB collecting advance amount

To verify that citizen able to download the reciept from the message link.

Click on the download the reciept link which has sent to citizen and download the report

Citizen Can be able to download the report.

ULB employee update number of trips

ULB Employee - No of trips update_01

ULB Employee - No of trips update

ULB employee update number of trips

cr amount

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips. 5.Now increase/decrease the trips

Editor Can be able to increase/decrease the trips when citizen has paid some advance amount.

Editor can be able to increase/decrease the trips when citizen has paid some advance amount.

PASSED

PASSED

PASSED

ULB Employee - No of trips update_02

ULB Employee - No of trips update

ULB employee update number of trips

To verify that can able to reduce the trips when citizen has paid some advance amount

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips. 5.Now reduce the trips

Editor Can not be able to reduce the trips when citizen has paid some advance amount.

Editor can't able to reduce the trips when citizen has paid some advance amount.

PASSED

PASSED

PASSED

ULB Employee - No of trips update_03

ULB Employee - No of trips update

ULB employee update number of trips

To verify that Editor can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips.

Editor Can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

Editor can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

PASSED

PASSED

PASSED

ULB Employee - No of trips update_04

ULB Employee - No of trips update

ULB employee update number of trips

To verify that Editor can able to Complete the request when citizen pay the full amount

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.complete the request.

Editor Can be able to complete the request when citizen makes the full payment.

Editor can be able to complete the request when citizen makes the full payment.

PASSED

PASSED

PASSED

ULB Employee - No of trips update_05

ULB Employee - No of trips update

ULB employee update number of trips

To verify that editor can't able to Complete the request when citizen did not pays the full amount

Login as editor and click on inbox and enter the application number and click on the application number and try to complete the request

editor Can not be able to Complete the request when citizen did not pays the full amount

editor cannot able to Complete the request when citizen did not pays the full amount

PASSED

PASSED

PASSED

DSO update number of trips

DSO update number of trips_01

DSO update number of trips

DSO update number of trips

To verify that DSOcan able to increase or decrease the trips when citizen has paid some advance amount

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips. 5.Now increase/decrease the trips

DSO Can be able to increase/decrease the trips when citizen has paid some advance amount.

DSO can be able to increase/decrease the trips when citizen has paid some advance amount.

PASSED

PASSED

PASSED

DSO update number of trips_02

DSO update number of trips

DSO update number of trips

To verify that can able to reduce the trips when citizen has paid some advance amount

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips. 5.Now reduce the trips

DSOCan not be able to reduce the trips when citizen has paid some advance amount.

DSO can't able to reduce the trips when citizen has paid some advance amount.

PASSED

PASSED

PASSED

DSO update number of trips_03

DSO update number of trips

DSO update number of trips

To verify that DSO can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips.

DSO Can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

DSO can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

PASSED

PASSED

PASSED

DSO update number of trips_04

DSO update number of trips

DSO update number of trips

To verify that DSO can able to Complete the request when citizen pay the full amount

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.complete the request.

DSOCan be able to complete the request when citizen makes the full payment.

DSOcan be able to complete the request when citizen makes the full payment.

PASSED

PASSED

PASSED

DSO update number of trips_05

DSO update number of trips

DSO update number of trips

To verify that DSo can't able to Complete the request when citizen did not pays the full amount

Login as DSoand click on inbox and enter the application number and click on the application number and try to complete the request

DSoCan not be able to Complete the request when citizen did not pays the full amount

DSocannot able to Complete the request when citizen did not pays the full amount

PASSED

PASSED

PASSED

Workflow changes from creator flow side

Workflow changes - Creator side_01

Workflow changes - Creator side

Workflow changes from creator side

To verify that collector can able to collect the advance amount

1.Login as collector 2.search with the application number and click on the application number and collect the payment.

Collector Can be able to Collect the advance amount.

Collector can able to Collect the advance amount.

PASSED

PASSED

PASSED

Workflow changes - Creator side_02

Workflow changes - Creator side

Workflow changes from creator side

To verify that Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

1.Login as collector 2.search with the application number and click on the application number and collect the payment. 3.Download the reciept and view the advance amount and paid amount and balance amount in payment Reciept.

Collector Can be able to view the advance amount and paid amount and balance amount in payment Reciept.

Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

PASSED

PASSED

PASSED

Workflow changes - Creator side_03

Workflow changes - Creator side

Workflow changes from creator side

To verify that Editor can able to assign the DSO

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action. 4.click on assign DSO. 5.Assign the DSO.

Editor Can be able to assign the DSO

Editor can able to assign the DSO

PASSED

PASSED

PASSED

Workflow changes - Creator side_04

Workflow changes - Creator side

Workflow changes from creator side

To verify that Editor/DSO can able to assign the Vehicle.

1.Login as Editor/DSO. 2.2.click on inbox and enter the application number and click on the application number, 3.click on take action. 4.click on assign vehicle 5.Assign the vehicle.

Editor/DSO Can be able to assign the Vehicle

Editor/DSO can able to assign Vehicle

PASSED

PASSED

PASSED

Workflow changes - Creator side_05

Workflow changes - Creator side

Workflow changes from creator side

To verify that Editor /DSO can able to increase or decrease the trips when citizen has paid some advance amount

1.Login as Editor /DSO. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips. 5.Now increase/decrease the trips

Editor /DSO Can be able to increase/decrease the trips when citizen has paid some advance amount.

Editor /DSO can be able to increase/decrease the trips when citizen has paid some advance amount.

PASSED

PASSED

PASSED

Workflow changes - Creator side_06

Workflow changes - Creator side

Workflow changes from creator side

To verify that can able to reduce the trips when citizen has paid some advance amount

1.Login as Editor /DSO. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips. 5.Now reduce the trips

Editor /DSO Can not be able to reduce the trips when citizen has paid some advance amount.

Editor /DSO can't able to reduce the trips when citizen has paid some advance amount.

PASSED

PASSED

PASSED

Workflow changes - Creator side_07

Workflow changes - Creator side

Workflow changes from creator side

To verify that Editor /DSO can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

1.Login as Editor /DSO. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips.

Editor /DSO Can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

Editor /DSO can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

PASSED

PASSED

PASSED

Workflow changes - Creator side_08

Workflow changes - Creator side

Workflow changes from creator side

To verify that collector can able to Balance amount

1.Login as collector 2.search with the application number and click on the application number and collect the payment.

Collector Can be able to Collect the balance amount.

Collector can be able to Collect the balance amount.

PASSED

PASSED

PASSED

Workflow changes - Creator side_09

Workflow changes - Creator side

Workflow changes from creator side

To verify that Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

1.Login as collector 2.search with the application number and click on the application number and collect the payment. 3.Download the reciept and view the advance amount and paid amount and balance amount in payment Reciept.

Collector Can be able to view the advance amount and paid amount and balance amount in payment Reciept.

Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

PASSED

PASSED

PASSED

Workflow changes - Creator side_10

Workflow changes - Creator side

Workflow changes from creator side

To verify that FSTPO can able to click on Dispose

1.Login as FSTPO. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.And Click on dispose.

FSTPO Can be able to click on Dispose.

FSTPO can able to dispose.

PASSED

PASSED

PASSED

Workflow changes - Creator side_11

Workflow changes - Creator side

Workflow changes from creator side

To verify that Editor/DSO can able to Complete the request when citizen pay the full amount

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.complete the request.

Editor/DSOCan be able to complete the request when citizen makes the full payment.

Editor/DSOcan be able to complete the request when citizen makes the full payment.

PASSED

PASSED

PASSED

Workflow changes - Creator side_12

Workflow changes - Creator side

Workflow changes from creator side

To verify that Editor/DSO Can not able to Complete the request when citizen did not pays the full amount

Login as Editor/DSOand click on inbox and enter the application number and click on the application number and try to complete the request

Editor/DSOCan not be able to Complete the request when citizen did not pays the full amount

Editor/DSOcannot able to Complete the request when citizen did not pays the full amount

PASSED

PASSED

PASSED

Workflow changes - Creator side_13

Workflow changes - Creator side

Workflow changes from creator side

To verify that Citizen can able to give Feedback.

1.Login as citizen. 2.click on my application. 3.click on application number. 4.click on Citizen provides Feedback. 5.Fill all the fields. 6.click on submit.

Citizen Can be able to give Feedback.

Citizen can able to give feedback

PASSED

PASSED

PASSED

Workflow changes from citizen side

Workflow changes - Citizen side_01

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that citizen is able to view warning message when he enters the amount greater than the advance amount

1.Login as creator 2.click on new desludging appliction 3.Enter all the mandatory fields till Payment Preference 4.Select pre pay in Payment Preference 5.Then enter greater than the advance amount

citizen as to able to view warning message as Amount entered is greater than the advance amount.

citizen can able to view warning message as Amount entered is greater than the advance amount.

PASSED

PASSED

PASSED

Workflow changes - Citizen side_02

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that citizen is able to view warning message when he enters the amount lesser than the advance amount

11.Login as creator 2.click on new desludging appliction 3.Enter all the mandatory fields till Payment Preference 4.Select pre pay in Payment Preference 5.Then enter lesser than the advance amount

citizen as to able to view warning message as Amount entered is lesser than the advance amount.

citizen can able to view warning message as Amount entered is greater than the advance amount.

PASSED

PASSED

PASSED

Workflow changes - Citizen side_03

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that editor can able to update the trips.

1.Login as editor. 2.search with the citizen created application number and click on application number 3.Click on take action. 4.update the trips.

Editor Can be able to update the trips.

Editor can be able to update the trips.

PASSED

PASSED

PASSED

Workflow changes - Citizen side_04

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that collector can able to collect the advance amount

1.Login as collector 2.search with the application number and click on the application number and collect the payment.

Collector Can be able to Collect the advance amount.

Collector can able to Collect the advance amount.

PASSED

PASSED

PASSED

Workflow changes - Citizen side_05

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

1.Login as collector 2.search with the application number and click on the application number and collect the payment. 3.Download the reciept and view the advance amount and paid amount and balance amount in payment Reciept.

Collector Can be able to view the advance amount and paid amount and balance amount in payment Reciept.

Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

PASSED

PASSED

PASSED

Workflow changes - Citizen side_06

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that Editor can able to assign the DSO

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action. 4.click on assign DSO. 5.Assign the DSO.

Editor Can be able to assign the DSO

Editor can able to assign the DSO

PASSED

PASSED

PASSED

Workflow changes - Citizen side_07

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that Editor/DSO can able to assign the Vehicle.

1.Login as Editor/DSO. 2.click on inbox and enter the application number and click on the application number, 3.click on take action. 4.click on assign vehicle 5.Assign the vehicle.

Editor/DSO Can be able to assign the Vehicle

Editor/DSO can able to assign Vehicle

PASSED

PASSED

PASSED

Workflow changes - Citizen side_08

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that Editor /DSO can able to increase or decrease the trips when citizen has paid some advance amount

1.Login as Editor /DSO. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips. 5.Now increase/decrease the trips

Editor /DSO Can be able to increase/decrease the trips when citizen has paid some advance amount.

Editor /DSO can be able to increase/decrease the trips when citizen has paid some advance amount.

PASSED

PASSED

PASSED

Workflow changes - Citizen side_09

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that can able to reduce the trips when citizen has paid some advance amount

1.Login as Editor /DSO. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips. 5.Now reduce the trips

Editor /DSO Can not be able to reduce the trips when citizen has paid some advance amount.

Editor /DSO can't able to reduce the trips when citizen has paid some advance amount.

PASSED

PASSED

PASSED

Workflow changes - Citizen side_10

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that Editor /DSO can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

1.Login as Editor /DSO. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.click on update trips.

Editor /DSO Can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

Editor /DSO can be able to view the message as not allowed to reduce the number of trips as amount as already collected when amount has been already paid

PASSED

PASSED

PASSED

Workflow changes - Citizen side_11

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that collector can able to Balance amount

1.Login as collector 2.search with the application number and click on the application number and collect the payment.

Collector Can be able to Collect the balance amount.

Collector can be able to Collect the balance amount.

PASSED

PASSED

PASSED

Workflow changes - Citizen side_12

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

1.Login as collector 2.search with the application number and click on the application number and collect the payment. 3.Download the reciept and view the advance amount and paid amount and balance amount in payment Reciept.

Collector Can be able to view the advance amount and paid amount and balance amount in payment Reciept.

Collector can able to view the advance amount and paid amount and balance amount in payment Reciept.

PASSED

PASSED

PASSED

Workflow changes - Citizen side_13

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that FSTPO can able to click on Dispose

1.Login as FSTPO. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.And Click on dispose.

FSTPO Can be able to click on Dispose.

FSTPO can able to dispose.

PASSED

PASSED

PASSED

Workflow changes - Citizen side_14

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that Editor/DSO can able to Complete the request when citizen pay the full amount

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.complete the request.

Editor/DSOCan be able to complete the request when citizen makes the full payment.

Editor/DSOcan be able to complete the request when citizen makes the full payment.

PASSED

PASSED

PASSED

Workflow changes - Citizen side_15

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that Editor/DSOCan not able to Complete the request when citizen did not pays the full amount

Login as Editor/DSOand click on inbox and enter the application number and click on the application number and try to complete the request

Editor/DSOCan not be able to Complete the request when citizen did not pays the full amount

Editor/DSOcannot able to Complete the request when citizen did not pays the full amount

PASSED

PASSED

PASSED

Workflow changes - Citizen side_16

Workflow changes - Citizen side

Workflow changes from Citizen side

To verify that Citizen can able to give Feedback.

1.Login as citizen. 2.click on my application. 3.click on application number. 4.click on Citizen provides Feedback. 5.Fill all the fields. 6.click on submit.

Citizen Can be able to give Feedback.

Citizen can able to give feedback

PASSED

PASSED

PASSED

FSM V1.2 : Citizen New application +(modify application)

Citizen side - warning message_01

Citizen side - warning message

Citizen side - warning message

To verify that citizen is able to view warning message when he enters the amount greater than the advance amount

1.Login as creator 2.click on new desludging appliction 3.Enter all the mandatory fields till Payment Preference 4.Select pre pay in Payment Preference 5.Then enter greater than the advance amount

citizen as to able to view warning message as Amount entered is greater than the advance amount.

citizen can able to view warning message as Amount entered is greater than the advance amount.

PASSED

PASSED

PASSED

Citizen side - warning message_02

Citizen side - warning message

Citizen side - warning message

To verify that citizen is able to view warning message when he enters the amount lesser than the advance amount

11.Login as creator 2.click on new desludging appliction 3.Enter all the mandatory fields till Payment Preference 4.Select pre pay in Payment Preference 5.Then enter lesser than the advance amount

citizen as to able to view warning message as Amount entered is lesser than the advance amount.

citizen can able to view warning message as Amount entered is greater than the advance amount.

PASSED

PASSED

PASSED

Payment mode from citzen side

Citizen side - Pyment_01

Citizen side - Pyment

Citizen side - Pyment

To verify citizen can able to make the payment for partial amount.

1.Login as citizen and create a desludging application. 2.Login as editor and update the trips. 3.Login as citizen and make the payment for partial amount by entering all the mandatory fields.

citizen should be able to make the payment for partial amount.

citizen can able to make the payment for partial amount.

PASSED

PASSED

PASSED

Citizen side - Pyment_02

Citizen side - Pyment

Citizen side - Pyment

To verify citizen can able to make the payment for full amount.

1.Login as citizen and create a desludging application. 2.Login as editor and update the trips. 3.Login as citizen and make the payment for full amount by entering all the mandatory fields.

citizen should be able to make the payment for full amount.

citizen can able to make the payment for full amount.

PASSED

PASSED

PASSED

Citizen side - Pyment_03

Citizen side - Pyment

Citizen side - Pyment

To verify citizen can able to make the payment after paying the partial amount

1.Login as citizen and create a desludging application. 2.Login as editor and update the trips. 3.Login as citizen and make the payment for partial amount by entering all the mandatory fields. 4.Login as Editor, assign the DSO. 5.Login as Editor, Assign the vehicle and update the trips. 6.Login as Citizen make the payment for partial amount by entering all the mandatory fields.

citizen should be able to make the payment after paying the partial amount

citizen can be able to make the payment after paying the partial amount

PASSED

PASSED

PASSED

Citizen side - Pyment_04

Citizen side - Pyment

Citizen side - Pyment

To verify citizen can able to make the payment after paying the full amount

1.Login as citizen and create a desludging application. 2.Login as editor and update the trips. 3.Login as citizen and make the payment for full amount by entering all the mandatory fields. 4.Login as Editor, assign the DSO. 5.Login as Editor, Assign the vehicle and update the trips. 6.Login as Citizen make the payment for full amount by entering all the mandatory fields.

citizen should not be able to make the payment after paying the full amount

citizen can not able to make the payment after paying the full amount

PASSED

PASSED

PASSED

Updating Citizen Feedback form

Citizen Feedback form_01

Citizen Feedback form

Update Citizen Feedback form

Verify that "Number of Trips" text field has removed From the UI

1.Login as citizen. 2.click on my application. 3.click on application number. 4.click on Citizen provides Feedback. 5.check that Number of Trips text field has removed From the UI

"Number of Trips" text field should be removed From the UI

"Number of Trips" text field is removed From the UI

PASSED

PASSED

PASSED

Citizen Feedback form_02

Citizen Feedback form

Update Citizen Feedback form

Verify that "Did desludging happen" textfield has removed From the UI

1.Login as citizen. 2.click on my application. 3.click on application number. 4.click on Citizen provides Feedback. 5.Check that Did desludging happen textfield has removed From the UI

"Did desludging happen" textfield should be removed From the UI

"Did desludging happen" textfield is removed From the UI

PASSED

PASSED

PASSED

Citizen Feedback form_03

Citizen Feedback form

Update Citizen Feedback form

Verify that "Provide Feedback " rating scale is a mandatory field

1.Login as citizen. 2.click on my application. 3.click on application number. 4.click on Citizen provides Feedback.

"Provide Feedback " rating scale should be mandatory field

"Provide Feedback " rating scale is a mandatory field

PASSED

PASSED

PASSED

Citizen Feedback form_04

Citizen Feedback form

Update Citizen Feedback form

Verify that "Safety gear used " checkbox is a mandatory field

1.Login as citizen. 2.click on my application. 3.click on application number. 4.click on Citizen provides Feedback. 5.Check that Provide Feedback rating scale is a mandatory field

Verify that "Safety gear used " checkbox should be mandatory field

Verify that "Safety gear used " checkbox should is a mandatory field

PASSED

PASSED

PASSED

Citizen Feedback form_05

Citizen Feedback form

Update Citizen Feedback form

Verify that "Comments" textfield is a not a mandatory field

1.Login as citizen. 2.click on my application. 3.click on application number. 4.click on Citizen provides Feedback. 5.Check that Commentstextfield is a not a mandatory field

Verify that "Comments" textfield is a not a mandatory field

Verify that "Comments" textfield is a not a mandatory field

PASSED

PASSED

PASSED

Citizen Feedback form_06

Citizen Feedback form

Update Citizen Feedback form

Verify that Submit button Should not highlighted when mandatory fields are not filled

1.Login as citizen. 2.click on my application. 3.click on application number. 4.click on Citizen provides Feedback. 5.check that Submit button Should not highlighted when mandatory fields are not filled

Submit button Should not highlighted when mandatory fields are not filled

Submit button isn't highlighted when mandatory fields are not filled

PASSED

PASSED

PASSED

Citizen Feedback form_07

Citizen Feedback form

Update Citizen Feedback form

Verify that when citizen didn't fill the mandatory fields suggestions has to display

1.Login as citizen. 2.click on my application. 3.click on application number. 4.click on Citizen provides Feedback. 5. Check that when citizen didn't fill the mandatory fields suggestions has to display

when citizen didn't fill the mandatory fields suggestions messages should display

when citizen didn't fill the mandatory fields suggestions messages like "please rate your experience between 1-5 stars" and "please select the options from below" is displaying

PASSED

PASSED

PASSED

Skip Collection Process for Zero Pricing

Zero pricing_01

Zero pricing

Skip Collection Process for Zero Pricing

Verify that when citizen selects the "Kathagada Parbatia Sahi "slum while creating the De-sludging application the payment details should be ₹ 0

1.Login as citizen. 2.Create an application by selecting "Kathagada Parbatia Sahi" slum option .

Payment details should be ₹ 0 when citizen creates the application by selecting "Kathagada Parbatia Sahi "slum option

when citizen selects the "Kathagada Parbatia Sahi "slum while creating the De-sludging application the payment details is showing as ₹ 0

PASSED

PASSED

PASSED

Zero pricing_02

Zero pricing

Skip Collection Process for Zero Pricing

Verify that when creator selects the "Kathagada Parbatia Sahi" slum while creating the De-sludging application the payment details should be ₹ 0

1.Login as creator. 2.Create an application by selecting the "Kathagada Parbatia Sahi" slum option .

Payment details should be ₹ 0 when creator creates the application by selecting "Kathagada Parbatia Sahi "slum option

when creator selects the "Kathagada Parbatia Sahi" slum while creating the De-sludging application the payment details is showing as ₹ 0

PASSED

PASSED

PASSED

Zero pricing_03

Zero pricing

Skip Collection Process for Zero Pricing

Verify that when the citizen created the application by selecting the slum option then that applicaton while completing the request ,It should not ask the payment details.

1.Login as Editor. 2.click on inbox and enter the application number and click on the application number, 3.click on take action 4.complete the request.

Verify that when the citizen created the application, by selecting the slum option then that applicaton while completing the request ,It should not ask the payment details.

when the citizen created the application by selecting the slum option then that applicaton while completing the request ,It is not asking the payment details.

PASSED

PASSED

PASSED

Zero pricing_04

Zero pricing

Skip Collection Process for Zero Pricing

Configure property type as Residential and sub property type as independent house using API for zero pricing by NOT selecting any slum

Select property type as Residential and sub property type as independent house using API for zero pricing by NOT selecting any slum

Citizen Should not able to create the application

Citizen cannot able to create the application

PASSED

PASSED

PASSED

Advance Balance Workflow Enhancement

Advance Balance Workflow _01

Advance Balance Workflow

Advance Balance Workflow

Verify when minimum pricing by the ULB is zero and citizen chooses to pay 0

1.Login as citizen. 2.Set the minimum pricing given by the ULB

A citizen creates a request where minimum pricing by the ULB is zero and citizen chooses to pay 0. No. of Trips = 1, Amount per Trip is 1000. The workflow is as follows: Create request ----> Accept Request ------> Assign DSO -------> Assign Vehicle ------> Collect Payment ------> Complete Request The collect payment step should display 100% of the total amount as amount due. The payment receipt displays Amount per trip: 1000, Total Amount: 1000, Advance amount paid: 0, Balance amount paid: 1000, Total due: 0

A citizen creates a request where minimum pricing by the ULB is zero and citizen chooses to pay 0. No. of Trips = 1, Amount per Trip is 1000. The workflow is as follows: Create request ----> Accept Request ------> Assign DSO -------> Assign Vehicle ------> Collect Payment ------> Complete Request The collect payment step should display 100% of the total amount as amount due. The payment receipt displays Amount per trip: 1000, Total Amount: 1000, Advance amount paid: 0, Balance amount paid: 1000, Total due: 0

PASSED

PASSED

PASSED

Advance Balance Workflow _02

Advance Balance Workflow

Advance Balance Workflow

Verify when A citizen creates a new request. The minimum pricing by the ULB is 100%.

1.Login as citizen. 2.Set the minimum pricing given by the ULB 3. The citizen chooses 1 trip, Amount per trip = 1000. The input box for entering Advance Amount is non editable and displays value equal to 100% of the trip amount.

The citizen chooses 1 trip, Amount per trip = 1000. The input box for entering Advance Amount is non editable and displays value equal to 100% of the trip amount. The acknowledgment receipt displays the following: Amount per trip: 1000 Total Amount: 1000 Advance Amount due: 1000

The citizen chooses 1 trip, Amount per trip = 1000. The input box for entering Advance Amount is non editable and displays value equal to 100% of the trip amount. The acknowledgment receipt displays the following: Amount per trip: 1000 Total Amount: 1000 Advance Amount due: 1000

PASSED

PASSED

PASSED

Advance Balance Workflow _03

Advance Balance Workflow

Advance Balance Workflow

Verify when A citizen creates a new request. The minimum pricing by the ULB is 100%. and When the no. of trips is edited by the ULB to 2, advance amount is updated automatically for 100% of the amount for 2 trips.

1.Login as citizen. 2.Set the minimum pricing given by the ULB 3. The citizen chooses 1 trip, Amount per trip = 1000. The input box for entering Advance Amount is non editable and displays value equal to 100% of the trip amount.

The citizen chooses 1 trip, Amount per trip = 1000. The input box for entering Advance Amount is non editable and displays value equal to 100% of the trip amount. When the no. of trips is edited by the ULB to 2, advance amount is updated automatically for 100% of the amount for 2 trips. he acknowledgment receipt displays the following: Amount per trip: 1000 Total Amount: 1000 Advance Amount due: 1000

The citizen chooses 1 trip, Amount per trip = 1000. The input box for entering Advance Amount is non editable and displays value equal to 100% of the trip amount. When the no. of trips is edited by the ULB to 2, advance amount is updated automatically for 100% of the amount for 2 trips. he acknowledgment receipt displays the following: Amount per trip: 1000 Total Amount: 1000 Advance Amount due: 1000

PASSED

PASSED

PASSED

Advance Balance Workflow _04

Advance Balance Workflow

Advance Balance Workflow

Verify when a citizen creates a new request where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs.

1.Login as citizen. 2.Set the minimum pricing given by the ULB 3. citizen creates a new request where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs..

A citizen creates a new request where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs. The collection screen displays 600 Rs. The workflow is as follows: Create Request -----> Accept Request------> Collect Payment -------> Assign Vehicle ----->Collect Payment ----> Complete Request

A citizen creates a new request where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs. The collection screen displays 600 Rs. The workflow is as follows: Create Request -----> Accept Request------> Collect Payment -------> Assign Vehicle ----->Collect Payment ----> Complete Request

PASSED

PASSED

PASSED

Advance Balance Workflow _05

Advance Balance Workflow

Advance Balance Workflow

Verify when a citizen created a new request. Minimum pricing by the ULB is set at 500 Rs. The citizen enters Rs. 400. An error is shows which states “Amount entered is less than minimum amount”.

1.Login as citizen. 2.Set the minimum pricing given by the ULB 3. citizen created a new request. Minimum pricing by the ULB is set at 500 Rs. The citizen enters Rs. 400. An error is shows which states “Amount entered is less than minimum amount”.

citizen created a new request. Minimum pricing by the ULB is set at 500 Rs. The citizen enters Rs. 400. An error is shows which states “Amount entered is less than minimum amount”.

citizen created a new request. Minimum pricing by the ULB is set at 500 Rs. The citizen enters Rs. 400. An error is shows which states “Amount entered is less than minimum amount”.

PASSED

PASSED

PASSED

Advance Balance Workflow _06

Advance Balance Workflow

Advance Balance Workflow

Verify when a ULB creates a request where minimum pricing by the ULB is zero and citizen chooses to pay 0. The workflow is as follows:

1.Login as citizen. 2.Set the minimum pricing given by the ULB 3. ULB creates a request where minimum pricing by the ULB is zero and citizen chooses to pay 0. The workflow is as follows:

A ULB creates a request where minimum pricing by the ULB is zero and citizen chooses to pay 0. The workflow is as follows: Create request ----> Accept Request ------> Assign DSO -------> Assign Vehicle ------> Collect Payment ------> Complete Request The collect payment step should display 100% of the total amount as amount due

A ULB creates a request where minimum pricing by the ULB is zero and citizen chooses to pay 0. The workflow is as follows: Create request ----> Accept Request ------> Assign DSO -------> Assign Vehicle ------> Collect Payment ------> Complete Request The collect payment step should display 100% of the total amount as amount due

PASSED

PASSED

PASSED

Advance Balance Workflow _07

Advance Balance Workflow

Advance Balance Workflow

Verify when a ULB creates a new request. The minimum pricing by the ULB is 100%. The citizen chooses 1 trip and The input box for entering Advance Amount is non editable and displays value equal to 100% of the trip amount. When the no. of trips is edited by the ULB to 2, advance amount is updated automatically for 100% of the amount for 2 trips

1.Login as citizen. 2.Set the minimum pricing given by the ULB 3. ULB creates a new request. The minimum pricing by the ULB is 100%.

A ULB creates a new request. The minimum pricing by the ULB is 100%. The citizen chooses 1 trip and The input box for entering Advance Amount is non editable and displays value equal to 100% of the trip amount. When the no. of trips is edited by the ULB to 2, advance amount is updated automatically for 100% of the amount for 2 trips.

A ULB creates a new request. The minimum pricing by the ULB is 100%. The citizen chooses 1 trip and The input box for entering Advance Amount is non editable and displays value equal to 100% of the trip amount. When the no. of trips is edited by the ULB to 2, advance amount is updated automatically for 100% of the amount for 2 trips.

PASSED

PASSED

PASSED

Advance Balance Workflow _08

Advance Balance Workflow

Advance Balance Workflow

Verify when ULB creates a new request with 1 trip and trip amount as 1000 where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs

1.Login as citizen. 2.Set the minimum pricing given by the ULB 3. ULB creates a new request with 1 trip and trip amount as 1000 where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs

ULB creates a new request with 1 trip and trip amount as 1000 where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs verify acknowledgement, collection screen, payment receipt, Post servicing, collection screen, ayment receipt

ULB creates a new request with 1 trip and trip amount as 1000 where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs verify acknowledgement, collection screen, payment receipt, Post servicing, collection screen, ayment receipt

PASSED

PASSED

PASSED

Advance Balance Workflow _09

Advance Balance Workflow

Advance Balance Workflow

Verify when ULB creates a new request with 1 trip and trip amount as 1000 where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs

1.Login as citizen. 2.Set the minimum pricing given by the ULB 3. ULB creates a new request with 1 trip and trip amount as 1000 where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs

ULB creates a new request with 1 trip and trip amount as 1000 where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs verify acknowledgement, collection screen, payment receipt, Post servicing, collection screen, ayment receipt

ULB creates a new request with 1 trip and trip amount as 1000 where minimum pricing by the ULB is set at 500 Rs. The citizen chooses to pay 600 Rs verify acknowledgement, collection screen, payment receipt, Post servicing, collection screen, ayment receipt

PASSED

PASSED

PASSED

Advance Balance Workflow _10

Advance Balance Workflow

Advance Balance Workflow

Verify when ULB created a new request. Minimum pricing by the ULB is set at 500 Rs. The citizen enters Rs. 400. An error is shows which states “Amount entered is less than minimum amount

1.Login as citizen. 2.Set the minimum pricing given by the ULB 3.ULB created a new request. Minimum pricing by the ULB is set at 500 Rs. The citizen enters Rs. 400. An error is shows which states “Amount entered is less than minimum amount

ULB created a new request. Minimum pricing by the ULB is set at 500 Rs. The citizen enters Rs. 400. An error is shows which states “Amount entered is less than minimum amount

ULB created a new request. Minimum pricing by the ULB is set at 500 Rs. The citizen enters Rs. 400. An error is shows which states “Amount entered is less than minimum amount

PASSED

PASSED

PASSED

Requests unable to be completed when requests are being created using driver/DSO/employee number

Driver/DSO/employee - Request creation_01

Driver/DSO/employee - Request creation

Driver/DSO/employee - Request creation

Verify Requests unable to be completed when requests are being created using driver/DSO/employee number

1. Login as DSO 2. Use same phone number as citizen and employee

Check whether Requests unable to be completed when requests are being created using driver/DSO/employee number

Requests unable to be completed when requests are being created using driver/DSO/employee number

PASSED

PASSED

PASSED

Test Cases

https://digit-discuss.atlassian.net/browse/SAN-1017 https://digit-discuss.atlassian.net/browse/SAN-1159

Employee_01

Employee

Employee Search details

Verify if UB employee is able to Search without filling details and only selecting date range should display results

1. Login to ULB employee editor and go to inbox 2. Click on search application 3. Give the date range from and to

Should be able to see all applications created in the date range and no other field should be mandatory

Should be able to see all applications created in the date range and no other field should be mandatory

PASSED

PASSED

PASSED

https://digit-discuss.atlassian.net/browse/SAN-996 https://digit-discuss.atlassian.net/browse/SAN-1163

Editor_01

Editor

Editor Application timeline

Verify Application timeline correct Provider Info- Editor side

1. Login as citizen/creator 2. Create an applciation and fill all details and go until last step using Editor login 3. Validate the application timeline info

Appication time line should show below information Request Completed Pending Citizen Feedback - citizen info Disposed - FSTPO info Disposal in progress - Driver Info Pending for Payment - Accountant Info DSO in Progress - DSO info Pending for DSO Approval - NA Pending for DSO Assignment - NA Application created - Citizen contact info

Appication time line should show below information Request Completed Pending Citizen Feedback - citizen info Disposed - FSTPO info Disposal in progress - Driver Info Pending for Payment - Accountant Info DSO in Progress - DSO info Pending for DSO Approval - NA Pending for DSO Assignment - NA Application created - Citizen contact info

PASSED

PASSED

PASSED

https://digit-discuss.atlassian.net/browse/SAN-978 https://digit-discuss.atlassian.net/browse/SAN-1168

UI_UX_01

UI/UX

UI/UX

Verify UI UX enhancements in citizen and employee login

1. login as citizen/Employee 2. Validate below UI UX enhancements In Employee Login, FSM Icon in Card is missing on left top card In Update Application success screen, Localisation of Select DSO Now, Select DSO need to be changed In Update and Schedule screen from employee side, When Septic tank with soak pit is selected, needs to remove spacing in pit dimension In Collector Login, when collecting payment need to remove spacing in payment mode in radio button

Below UI UX enhancements are validated In Employee Login, FSM Icon in Card is missing on left top card In Update Application success screen, Localisation of Select DSO Now, Select DSO need to be changed In Update and Schedule screen from employee side, When Septic tank with soak pit is selected, needs to remove spacing in pit dimension In Collector Login, when collecting payment need to remove spacing in payment mode in radio button

Below UI UX enhancements are validated In Employee Login, FSM Icon in Card is missing on left top card In Update Application success screen, Localisation of Select DSO Now, Select DSO need to be changed In Update and Schedule screen from employee side, When Septic tank with soak pit is selected, needs to remove spacing in pit dimension In Collector Login, when collecting payment need to remove spacing in payment mode in radio button

PASSED

PASSED

PASSED

DSO_01

DSO

DSO - Assign vehicle

Verify DSO is able to assign same vehicle for multiple requests - ENGLISH

1) Login as DSO. 2) Click on inbox. 3) Click on application number. 4) Click on take action and Assign the vehicle. 5) Select another application. 6) Click on take action and Assign same vehicle.

DSO Should be able to assign same vehicle to multiple requests.

DSO Should be able to assign same vehicle to multiple requests.

PASSED

PASSED

PASSED

DSO_02

DSO

DSO - Assign vehicle

Verify DSO is able to assign same vehicle for multiple requests - HINDI

1) Login as DSO. 2) Click on inbox. 3) Click on application number. 4) Click on take action and Assign the vehicle. 5) Select another application. 6) Click on take action and Assign same vehicle.

DSO Should be able to assign same vehicle to multiple requests.

DSO Should be able to assign same vehicle to multiple requests.

PASSED

PASSED

PASSED

DSO_03

DSO

DSO - Assign vehicle

Verify Vehicle capacity field and Number of trips is disable while assigning vehicle - ENGLISH

1) Login as DSO. 2) Click on inbox. 3) Click on application number and Assign the vehicle. 4) Check vehicle capacity and number of trips fields.

Vehicle capacity and number of trips should be deisable.

Vehicle capacity and number of trips should be deisable.

PASSED

PASSED

PASSED

DSO_04

DSO

DSO - Assign vehicle

Verify Vehicle capacity field and Number of trips is disable while assigning vehicle - HINDI

1) Login as DSO. 2) Click on inbox. 3) Click on application number and Assign the vehicle. 4) Check vehicle capacity and number of trips fields.

Vehicle capacity and number of trips should be deisable.

Vehicle capacity and number of trips should be deisable.

PASSED

PASSED

PASSED

DSO_05

DSO

DSO - Assign vehicle

Verify DSO assigned vehicle is captured on new application - ENGLISH

1) Login as DSO. 2) Click on inbox. 3) Click on application number and Assign vehicle. 4) Check application.

DSO assigned vehicle number should be captured on new application.

DSO assigned vehicle number should be captured on new application.

PASSED

PASSED

PASSED

DSO_06

DSO

DSO - Assign vehicle

Verify DSO assigned vehicle is captured on new application - HINDI

1) Login as DSO. 2) Click on inbox. 3) Click on application number and Assign vehicle. 4) Check application.

DSO assigned vehicle number should be captured on new application.

DSO assigned vehicle number should be captured on new application.

PASSED

PASSED

PASSED

DSO_07

DSO

DSO - Assign vehicle

Verify DSO is able to overwrite number of trips while scheduling vehicle - ENGLISH

1) Login as DSO. 2) Click on inbox. 3) Click on application number and assign vehicle. 4) Click on take action and overwrite number of trips.

DSO should be able to overwrite number of trips.

DSO should be able to overwrite number of trips.

PASSED

PASSED

PASSED

DSO_08

DSO

DSO - Assign vehicle

Verify DSO is able to overwrite number of trips while scheduling vehicle - HINDI

1) Login as DSO. 2) Click on inbox. 3) Click on application number and assign vehicle. 4) Click on take action and overwrite number of trips.

DSO should be able to overwrite number of trips.

DSO should be able to overwrite number of trips.

PASSED

PASSED

PASSED

DSO_09

DSO

DSO - Assign vehicle

Verify DSO is able to select valid date in Desludging on field - ENGLISH

1) Login as DSO. 2) Click on inbox. 3) Click on application number and assign vehicle. 4) Click on take action and Select valid date.

DSO Should be able to select valid date.

DSO Should be able to select valid date.

PASSED

PASSED

PASSED

DSO_10

DSO

DSO - Assign vehicle

Verify DSO is able to select valid date in Desludging on field - HINDI

1) Login as DSO. 2) Click on inbox. 3) Click on application number and assign vehicle. 4) Click on take action and Select valid date.

DSO Should be able to select valid date.

DSO Should be able to select valid date.

PASSED

PASSED

PASSED

DSO_11

DSO

DSO - Assign vehicle

Verify DSO is able to schedule vehicle - ENGLISH

1) Login as DSO. 2) Click on inbox. 3) Click on application number and assign vehicle. 4) Click on take action and Click on schedule.

DSO should be able to schedule vehicle.

DSO should be able to schedule vehicle.

PASSED

PASSED

PASSED

DSO_12

DSO

DSO - Assign vehicle

Verify DSO is able to schedule vehicle - HINDI

1) Login as DSO. 2) Click on inbox. 3) Click on application number and assign vehicle. 4) Click on take action and Click on schedule.

DSO should be able to schedule vehicle.

DSO should be able to schedule vehicle.

PASSED

PASSED

PASSED

https://digit-discuss.atlassian.net/browse/SAN-1063 https://digit-discuss.atlassian.net/browse/SAN-1157

FSTPO_01

FSTPO

FSTPO Inbox

To verify FSTPO can able to select Home button

1.Login as FSTPO in mobile 2.click on Home button

FSTPO should be able to see home page details

FSTPO should be able to see home page details

PASSED

PASSED

PASSED

FSTPO_02

FSTPO

FSTPO Inbox

To verify FSTPO can able to select Inbox button in FSTPO operations page

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Inbox button

FSTPO Should be able to view Inbox page

FSTPO Should be able to view Inbox page

PASSED

PASSED

PASSED

FSTPO_03

FSTPO

FSTPO Inbox

To verify FSTPO Can able to enter all fields and FSTPO Should able to select Application number or Vehicle log number

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Inbox button a 4.Enter all the fields or 5.Click on Application number or Vehicle log number

FSTPO Should be able to view vehicle scheduling page

FSTPO Should be able to view vehicle scheduling page

PASSED

PASSED

PASSED

FSTPO_04

FSTPO

FSTPO Inbox

To verify FSTPO Can able to select Search Button

1.Login as FSTPO in Mobile 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.Click on Select 7.Enter application number or vehicle number or Dso name

FSTPO Should be able to view application details after filtered

FSTPO Should be able to view application details after filtered

PASSED

PASSED

PASSED

FSTPO_05

FSTPO

FSTPO Inbox

To verify FSTPO Can able to select Sort Button

1.Login as FSTPO in Mobile 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.Click on Select 7.Click on Date(latest first) or click on Date(latest last)

FSTPO Should be able to view application details after filtered

FSTPO Should be able to view application details after filtered

PASSED

PASSED

PASSED

FSTPO_06

FSTPO

FSTPO Inbox

To verify FSTPO can able to enter all fields and Vehicle in time and vehicle out time in vehicle entry log page and FSTPO can able to choose file from device and able to upload that file

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name 7.click on Select 8.Fill the details in all the fields 9.Click on choose file and select a photo and upload it

FSTPO Should able to enter all the fields and FSTPO should able to view photo uploaded details

FSTPO Should able to enter all the fields and FSTPO should able to view photo uploaded details

PASSED

PASSED

PASSED

FSTPO_07

FSTPO

FSTPO Inbox

To verify FSTPO can able to select Take action button in vehicle scheduling page

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name 7.Fill the details in all the fields 8.Click on choose file and select a photo and upload it 9.click on Take action button

FSTPO Should be able to view Submit button or Decline vehicle button

FSTPO Should be able to view Submit button or Decline vehicle button

PASSED

PASSED

PASSED

FSTPO_08

FSTPO

FSTPO Inbox

To verify FSTPO can able to select Submit button in vehicle scheduling page

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name. 9.Fill the details in all the fields 10.Click on choose file and select a photo and upload it 11.click on Take action button 12.Click on submit

FSTPO Should be able to view vehicle submitted sucessfully message on the screen

FSTPO Should be able to view vehicle submitted sucessfully message on the screen

PASSED

PASSED

PASSED

FSTPO_09

FSTPO

FSTPO Inbox

To verify FSTPO can able to select Decline vehicle button in vehicle scheduling page

.1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name 7.Fill the details in all the fields 8.Click on choose file and select a photo and upload it 9.click on Take action button 10.Click on submit 11.click on Decline vehicle

FSTPO Should be able to view reason for Declining

FSTPO Should be able to view reason for Declining

PASSED

PASSED

PASSED

FSTPO_10

FSTPO

FSTPO Inbox

To verify FSTPO can able to select Reason For Declining Dropdown

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name 7.Fill the details in all the fields 8.Click on choose file and select a photo and upload it 9.click on Take action button 10.click on Decline vehicle 11.Select anyone of the reason from Reason For declining dropdown

FSTPO Should be able to select any one reason

FSTPO Should be able to select any one reason

PASSED

PASSED

PASSED

FSTPO_11

FSTPO

FSTPO Inbox

To verify FSTPO can able to select Decline vehicle button

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name 7.Fill the details in all the fields 8.Click on choose file and select a photo and upload it 9.click on Take action button 10.click on Decline vehicle 11.Select anyone of the reason from Reason For declining dropdown 12.Click on Decline vehicle button

FSTPO Should be able to view updated sucessfully message on the screen

FSTPO Should be able to view updated sucessfully message on the screen

PASSED

PASSED

PASSED

https://digit-discuss.atlassian.net/browse/SAN-1064 https://digit-discuss.atlassian.net/browse/SAN-1158

FSTPO_01

FSTPO

FSTPO Home

To verify FSTPO can able to select Home button

1.Login as FSTPO in mobile 2.click on Home button

FSTPO should be able to see home page details

FSTPO should be able to see home page details

PASSED

PASSED

PASSED

FSTPO_02

FSTPO

FSTPO Home

To verify FSTPO can able to select Inbox button in FSTPO operations page

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Inbox button

FSTPO Should be able to view Inbox page

FSTPO Should be able to view Inbox page

PASSED

PASSED

PASSED

FSTPO_03

FSTPO

FSTPO Home

To verify FSTPO Can able to enter all fields and FSTPO Should able to select Application number or Vehicle log number

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Inbox button a 4.Enter all the fields or 5.Click on Application number or Vehicle log number

FSTPO Should be able to view vehicle scheduling page

FSTPO Should be able to view vehicle scheduling page

PASSED

PASSED

PASSED

FSTPO_04

FSTPO

FSTPO Home

To verify FSTPO can able to enter all fields and Vehicle in time and vehicle out time in vehicle entry log page and FSTPO can able to choose file from device and able to upload that file

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name 7.click on Select 8.Fill the details in all the fields 9.Click on choose file and select a photo and upload it

FSTPO Should able to enter all the fields and FSTPO should able to view photo uploaded details

FSTPO Should able to enter all the fields and FSTPO should able to view photo uploaded details

PASSED

PASSED

PASSED

FSTPO_05

FSTPO

FSTPO Home

To verify FSTPO can able to select Take action button in vehicle scheduling page

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name 7.Fill the details in all the fields 8.Click on choose file and select a photo and upload it 9.click on Take action button

FSTPO Should be able to view Submit button or Decline vehicle button

FSTPO Should be able to view Submit button or Decline vehicle button

PASSED

PASSED

PASSED

FSTPO_06

FSTPO

FSTPO Home

To verify FSTPO can able to select Submit button in vehicle scheduling page

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name. 9.Fill the details in all the fields 10.Click on choose file and select a photo and upload it 11.click on Take action button 12.Click on submit

FSTPO Should be able to view vehicle submitted sucessfully message on the screen

FSTPO Should be able to view vehicle submitted sucessfully message on the screen

PASSED

PASSED

PASSED

FSTPO_07

FSTPO

FSTPO Home

To verify FSTPO can able to select Decline vehicle button in vehicle scheduling page

.1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name 7.Fill the details in all the fields 8.Click on choose file and select a photo and upload it 9.click on Take action button 10.Click on submit 11.click on Decline vehicle

FSTPO Should be able to view reason for Declining

FSTPO Should be able to view reason for Declining

PASSED

PASSED

PASSED

FSTPO_08

FSTPO

FSTPO Home

To verify FSTPO can able to select Reason For Declining Dropdown

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name 7.Fill the details in all the fields 8.Click on choose file and select a photo and upload it 9.click on Take action button 10.click on Decline vehicle 11.Select anyone of the reason from Reason For declining dropdown

FSTPO Should be able to select any one reason

FSTPO Should be able to select any one reason

PASSED

PASSED

PASSED

FSTPO_09

FSTPO

FSTPO Home

To verify FSTPO can able to select Decline vehicle button

1.Login as FSTPO in Desktop 2.click on Home button 3.Click on Add new button 4.Enter vehicle number 5.click on next 6.click on citizen name 7.Fill the details in all the fields 8.Click on choose file and select a photo and upload it 9.click on Take action button 10.click on Decline vehicle 11.Select anyone of the reason from Reason For declining dropdown 12.Click on Decline vehicle button

FSTPO Should be able to view updated sucessfully message on the screen

FSTPO Should be able to view updated sucessfully message on the screen

PASSED

PASSED

PASSED

https://digit-discuss.atlassian.net/browse/SAN-987 https://digit-discuss.atlassian.net/browse/SAN-1165

Editor_01

Editor

DSO Photo upload

Verify if Editor should be able to view the photo uploaded by DSO

1. Login to citizen/creator 2. Go through all the steps and create application 3. Go until DSO login 4. Login as DSO ,upload the photo

Photo should be uploaded

Photo should be uploaded

PASSED

PASSED

PASSED

Editor_02

Editor

DSO Photo upload

Verify if Editor should be able to view the photo uploaded by DSO

1. Login to citizen/creator 2. Go through all the steps and create application 3. Go until DSO login 4. Login as DSO ,upload the photo 5.Login as editor and check photos uploaded by DSO is viewable

Editor should able to view photo in his timeline

Editor should able to view photo in his timeline

PASSED

PASSED

PASSED

https://digit-discuss.atlassian.net/browse/SAN-1037 https://digit-discuss.atlassian.net/browse/SAN-1162

DSO and FSTPO

Photo uploads

To check all the application timeline aligned with roles

1.Go through until Application updated/payment/trips screen

Application timeline should be aligned with roles

Application timeline should be aligned with roles

PASSED

PASSED

PASSED

Editor_01

DSO and FSTPO

Photo uploads

To check photos uploaded by DSO

1.Login as editor check who has uploaded the DSO

Editor should be viewable as photo uploaded by DSO

Editor should be viewable as photo uploaded by DSO

PASSED

PASSED

PASSED

Editor_02

DSO and FSTPO

Photo uploads

To check the breadcrumbs in all the FSTPO pages

1.Login as FSTPO Check all the breadcrumbs

Breadcrumbs should be in the format Home/Inbox/vehicle log

Breadcrumbs should be in the format Home/Inbox/vehicle log

PASSED

PASSED

PASSED

Editor_03

DSO and FSTPO

Photo uploads

To check the the Disposing time Schedule in the Format AM/PM

1.Login as FSTPO Check whether Disposal time schedule is in the format AM/PM

FSTPO Should be able to select AM/PM in Disposal scheduling page

FSTPO Should be able to select AM/PM in Disposal scheduling page

PASSED

PASSED

PASSED

https://digit-discuss.atlassian.net/browse/SAN-1075 https://digit-discuss.atlassian.net/browse/SAN-1160

UI_UX_01

Ui/UX

UI/UX changes

Verify UI UX enhancements in citizen and employee login

1. login as citizen/Employee 2. Validate below UI UX enhancements 3.Log in as citizen,In service request text change in trip number screen in create application 4.Login as citizen ,In trip number screen in citizen side, number of trips will be on top and vehicle capacity will be on bottom. 5.Login as DSo Localisation should be changed from Scheduled to Update Trips 6.Login as Citizen all the Location detail and pit detail and combining all under property details

In UI UX AUDIT 1.In service request text change in trip number screen in create application should be creadted. 2.Citizen should be viewable In trip number screen in citizen side, number of trips will be on top and vehicle capacity will be on bottom. 3.Schedule localisation shoule be changed to Update trips 4.All the location details and pit details should be under property details

In UI UX AUDIT 1.In service request text change in trip number screen in create application should be creadted. 2.Citizen should be viewable In trip number screen in citizen side, number of trips will be on top and vehicle capacity will be on bottom. 3.Schedule localisation shoule be changed to Update trips 4.All the location details and pit details should be under property details

PASSED

PASSED

PASSED

9

Employee _01

Employee

Dashboard charts

1.Dashboard Should have pie chart for gender,revenue by usage type,application preference,customer rating ,request status , data and Apply all the drill-down (by Date, ULB) on payment chart 2.Dashboard should be on mobile and desktop versions 3.The Dashboard chart should be shareable and downloadable

Login using Dashboard credentials

Dashboard should display pie chart for gender,revenue by usage type,application preference,customer rating ,request status , data and Apply all the drill-down and dashboard should be viewable in both mobile and desktop versions and it should be in shareable and downable format

Dashboard should display pie chart for gender,revenue by usage type,application preference,customer rating ,request status , data and Apply all the drill-down and dashboard should be viewable in both mobile and desktop versions and it should be in shareable and downable format

PASSED

PASSED

PASSED

Citizen Flow

FSM/Citizen/01

Citizen

Citizen feedback

Validate that Citizen is able to verify new field "Number of Trips" on citizen feedback page_With English and Hindi Language

1. Login as Citizen 2. Go to My application 3.Citizen should be able to see the completed application 4.Validate that Citizen is able to verify new field "Number of Trips" on citizen feedback page in EN & Hindi

1)Citizen is able to verify new field "Number of Trips" on citizen feedback page In EN 2)Citizen is able to verify new field "कुल फेरों की संख्या" on citizen feedback page_Hindi

1)Citizen is able to verify new field "Number of Trips" on citizen feedback page In EN 2)Citizen is able to verify new field "कुल फेरों की संख्या" on citizen feedback page_Hindi

PASSED

PASSED

PASSED

FSM/Citizen/02

Citizen

Citizen feedback

Validate Citizen is able to Add integer from dropdown field on citizen feedback page_Hindi/English

1. Login as Citizen 2. Go to My application 3.Citizen should be able to see the completed application 4.Validate that Citizen is able to Add integer from dropdown field on citizen feedback page 5.Validate that Citizen is able to submit the feed back with giving the proper rating and comments

Citizen will be able to Add integer from 1-10 from drop down and will be able to submit the feedback

Citizen will be able to Add integer from 1-10 from drop down and will be able to submit the feedback

PASSED

PASSED

PASSED

FSM/Citizen/03

Citizen

Citizen feedback

Validate that Total number of trips field should not be mandatory for feedback submission _Hindi/English

1. Login as Citizen 2. Go to My application 3.Citizen should be able to see the completed application 4.Validate that Citizen is able to submit the feed back without Total num of Field trips

Citizen will be able to submit the feed back without Total num of Field trips

Citizen will be able to submit the feed back without Total num of Field trips

PASSED

PASSED

PASSED

Citizen Flow

FSM/Citizen/05

Citizen

Citizen feedback number of trips

Validate that citizen gender info is Captured on New application right after OTP step with citizen login_English_Male

1.Login as a Citizen in mSeva Portal 2.Navigate to FSM 3.Citizen Create New Application 4.Validate that citizen gender info is Captured on New application as Male right after OTP step 5.Validate Citizen is able to Complete the Request further with required details 6.Validate Citizen shouldn’t see gender information on the application summary view

1. citizen gender info is Captured on New application as Male right after OTP step 2. Citizen shouldn’t see gender information on the application summary view

1. citizen gender info is Captured on New application as Male right after OTP step 2. Citizen shouldn’t see gender information on the application summary view

PASSED

PASSED

PASSED

FSM/Citizen/06

Citizen

Citizen feedback number of trips

Validate that citizen gender info is Captured on New application right after OTP step with citizen login_Hindi_Female

1.Login as a Citizen in mSeva Portal 2.Navigate to FSM 3.Citizen Create New Application 4.Validate that citizen gender info is Captured on New application as Female right after OTP step 5.Validate Citizen is able to Complete the Request further with required details 6.Validate Citizen shouldn’t see gender information on the application summary view

1. citizen gender info is Captured on New application as Female right after OTP step 2. Citizen shouldn’t see gender information on the application summary view

1. citizen gender info is Captured on New application as Female right after OTP step 2. Citizen shouldn’t see gender information on the application summary view

PASSED

PASSED

PASSED

FSM/Citizen/07

Citizen

Citizen feedback number of trips

Validate that citizen gender info is Captured on New application right after OTP step with Employee Creator login_English_Transgender

1.Login as a Employee Creator in mSeva Portal 2.Navigate to FSM 3.Citizen Create New Application 4.Validate that citizen gender info is Captured on New application as Transgender right after OTP step 5.Validate Citizen is able to Complete the Request further with required details 6.Validate Citizen shouldn’t see gender information on the application summary view

1. citizen gender info is Captured on New application as Transgender right after OTP step 2. Citizen shouldn’t see gender information on the application summary view

1. citizen gender info is Captured on New application as Transgender right after OTP step 2. Citizen shouldn’t see gender information on the application summary view

PASSED

PASSED

PASSED

FSM/Citizen/08

Citizen

Citizen feedback number of trips

Validate that citizen gender info is Captured on New application right after OTP step with Employee Creator login_Hindi_Others

1.Login as a Employee Creator in mSeva Portal 2.Navigate to FSM 3.Citizen Create New Application 4.Validate that citizen gender info is Captured on New application as Others right after OTP step 5.Validate Citizen is able to Complete the Request further with required details 6.Validate Citizen shouldn’t see gender information on the application summary view

1. citizen gender info is Captured on New application as Others right after OTP step 2. Citizen shouldn’t see gender information on the application summary view

1. citizen gender info is Captured on New application as Others right after OTP step 2. Citizen shouldn’t see gender information on the application summary view

PASSED

PASSED

PASSED

FSM/Citizen/09

Citizen

Citizen feedback number of trips

Validate that Citizen gender step is skippable with Citizen Login_Hindi

1.Login as a Citizen in mSeva Portal 2.Navigate to FSM 3.Citizen Create New Application 4.Validate that Citizen gender step is skippable

It is Validated that Citizen gender step is skippable in Citizen Logins

It is Validated that Citizen gender step is skippable in Citizen Logins

PASSED

PASSED

PASSED

FSM/Citizen/10

Citizen

Citizen feedback number of trips

Validate that Citizen gender step is skippable with Employee creator Login_English

1.Login as a Employee Creator in mSeva Portal 2.Navigate to FSM 3.Citizen Create New Application 4.Validate that Citizen gender step is skippable

It is Validated that Citizen gender step is skippable in Employee creator Logins

It is Validated that Citizen gender step is skippable in Employee creator Logins

PASSED

PASSED

PASSED

FSM/Citizen/11

Citizen

Citizen feedback number of trips

Validate that Employee editor is able to view the gender of the applicant on the application summary view_Hindi

1.Login as a Employee editor in mSeva Portal 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate that Employee is able to view the gender of the applicant on the application summary view

Employee is able to view the gender of the applicant on the application summary view

Employee is able to view the gender of the applicant on the application summary view

PASSED

PASSED

PASSED

FSM/Citizen/12

Citizen

Citizen feedback number of trips

Validate that DSO is not able to view the gender of the applicant on the application summary view_English

1.Login as a DSO in mSeva Portal 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate that DSO is not able to view the gender of the applicant on the application summary view

DSO is not able to view the gender of the applicant on the application summary view

DSO is not able to view the gender of the applicant on the application summary view

PASSED

PASSED

PASSED

DSO Flow

FSM/DSO/01

DSO

DSO validation message

Validate message when unregistered phone number is entered in DSO login_English

1.Login to the mSeva Portal 2.Navigate to FSM 3.User click on DSO Login 4."Validate message when unregistered phone number is entered in DSO login: Please use a registered number for logging as a DSO"

validate message when unregistered phone number is entered in DSO login: Please use a registered number for logging as a DSO

validate message when unregistered phone number is entered in DSO login: Please use a registered number for logging as a DSO

PASSED

PASSED

PASSED

FSM/DSO/02

DSO

DSO validation message

Validate message when unregistered phone number is entered in DSO login_Hindi

1.Login to the mSeva Portal 2.Navigate to FSM 3.User click on DSO Login 4. Validate message when unregistered phone number is entered in DSO login: कृपया डीएसओ के रूप में लॉगिंग के लिए पंजीकृत नंबर का उपयोग करें

Validate message when unregistered phone number is entered in DSO login: कृपया डीएसओ के रूप में लॉगिंग के लिए पंजीकृत नंबर का उपयोग करें

Validate message when unregistered phone number is entered in DSO login: कृपया डीएसओ के रूप में लॉगिंग के लिए पंजीकृत नंबर का उपयोग करें

PASSED

PASSED

PASSED

FSM/DSO/03

DSO

DSO validation message

Validate when DSO login with registered phone number is able to see the application_English

1.Login to the mSeva Portal 2.Navigate to FSM 3.User click on DSO Login 4. Validate when DSO login with registered phone number is able to see the application

Validate when DSO login with registered phone number is able to see the application

Validate when DSO login with registered phone number is able to see the application

PASSED

PASSED

PASSED

FSM/DSO/04

DSO

DSO validation message

Validate when DSO login with registered phone number is able to see the application_Hindi

1.Login to the mSeva Portal 2.Navigate to FSM 3.User click on DSO Login 4.Validate when DSO login with registered phone number is able to see the application

Validate when DSO login with registered phone number is able to see the application

Validate when DSO login with registered phone number is able to see the application

PASSED

PASSED

PASSED

DSO Flow

FSM/DSO/01

DSO

DSO - edit pit and property usage details

Validate that DSO can edit the Pit Details for a application_English

1.Login as a DSO in mSeva Portal 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate that DSO can edit the Pit Type and Pit Dimension and Upload a PIT photo for a application 5.Validate DSO is able to Submit the Request further with required details

1.DSO will be able to edit the Pit Type and Pit Dimension and Upload a PIT photo for a application

1.DSO will be able to edit the Pit Type and Pit Dimension and Upload a PIT photo for a application

PASSED

PASSED

PASSED

FSM/DSO/02

DSO

DSO - edit pit and property usage details

Validate that DSO can edit the Pit Details for a application_Hindi

1.Login as a DSO in mSeva Portal 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate that DSO can edit the Pit Type and Pit Dimension and Upload a PIT photo for a application 5.Validate DSO is able to Submit the Request further with required details

1.DSO will be able to edit the Pit Type and Pit Dimension and Upload a PIT photo for a application

1.DSO will be able to edit the Pit Type and Pit Dimension and Upload a PIT photo for a application

PASSED

PASSED

PASSED

FSM/DSO/03

DSO

DSO - edit pit and property usage details

Validate that DSO cannot modify the applicant and the property address for a application_Hindi

1.Login as a DSO in mSeva Portal 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate that DSO cannot modify the applicant and the property address for a application

1.DSO will not be able to edit the applicant and the property address for a application

1.DSO will not be able to edit the applicant and the property address for a application

PASSED

PASSED

PASSED

FSM/DSO/04

DSO

DSO - edit pit and property usage details

Validate that DSO cannot modify the possible service date_English

1.Login as a DSO in mSeva Portal 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate that DSO cannot modify the possible service date for a application

1.DSO will not be able to modify the possible service date for a application

1.DSO will not be able to modify the possible service date for a application

PASSED

PASSED

PASSED

FSM/DSO/05

DSO

DSO - edit pit and property usage details

Validate that DSO shouldn’t be able to modify old applications (i.e. service date < current date) or applications in citizen feedback pending status_Hindi/English

1.Login as a DSO in mSeva Portal 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate that DSO shouldn’t be able to modify old applications (i.e. service date < current date) or applications in citizen feedback pending status

1.DSO will not be able to modify old applications (i.e. service date < current date) or applications in citizen feedback pending status

1.DSO will not be able to modify old applications (i.e. service date < current date) or applications in citizen feedback pending status

PASSED

PASSED

PASSED

Employee Specific Test Cases

Employee Flow

FSM/Emp/01

Employee

Employee - Select vehicle capacity instead of vehicle make

Validate ULB Employee select vehicle capacity instead of Vechile Type_English_Employee Editor

1.Login as a Employee Editor in mSeva Portal 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate ULB Employee select vehicle capacity from the drop down 5.Validate Vechile Type is not present in the form 6.Validate Employee is able to Submit the Request further

1) ULB Employee should be able to select vehicle capacity from the drop down 2)ULB Employee doesn’t see the Vechile Type in the entire form 3)ULB Employee is able to Submit the Request further

1) ULB Employee should be able to select vehicle capacity from the drop down 2)ULB Employee doesn’t see the Vechile Type in the entire form 3)ULB Employee is able to Submit the Request further

PASSED

PASSED

PASSED

FSM/Emp/02

Employee

Employee - Select vehicle capacity instead of vehicle make

Validate ULB Employee select vehicle capacity instead of Vechile Type_Hindi_Employee Editor

1.Login as a Employee Editor in mSeva Portal 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate ULB Employee select vehicle capacity from the drop down 5.Validate Vechile Type is not present in the form 6.Validate Employee is able to Submit the Request further

1) ULB Employee should be able to select vehicle capacity from the drop down 2)ULB Employee doesn’t see the Vechile Type in the entire form 3)ULB Employee is able to Submit the Request further

1) ULB Employee should be able to select vehicle capacity from the drop down 2)ULB Employee doesn’t see the Vechile Type in the entire form 3)ULB Employee is able to Submit the Request further

PASSED

PASSED

PASSED

FSM/Emp/03

Employee

Employee - Select vehicle capacity instead of vehicle make

Validate ULB Employee select vehicle capacity instead of Vechile Type_English_Employee Creator

1.Login as a Employee Creator in mSeva Portal 2.Navigate to FSM 3.Validate ULB Employee select vehicle capacity from the drop down 4.Validate Vechile Type is not present in the form 5.Validate Employee is able to Submit the Request further

1) ULB Employee should be able to select vehicle capacity from the drop down 2)ULB Employee doesn’t see the Vechile Type in the entire form 3)ULB Employee is able to Submit the Request further

1) ULB Employee should be able to select vehicle capacity from the drop down 2)ULB Employee doesn’t see the Vechile Type in the entire form 3)ULB Employee is able to Submit the Request further

PASSED

PASSED

PASSED

FSM/Emp/04

Employee

Employee - Select vehicle capacity instead of vehicle make

Validate ULB Employee select vehicle capacity instead of Vechile Type_Hindi_Employee Creator

1.Login as a Employee Creator in mSeva Portal 2.Navigate to FSM 3.Validate ULB Employee select vehicle capacity from the drop down 4.Validate Vechile Type is not present in the form 5.Validate Employee is able to Submit the Request further

1) ULB Employee should be able to select vehicle capacity from the drop down 2)ULB Employee doesn’t see the Vechile Type in the entire form 3)ULB Employee is able to Submit the Request further

1) ULB Employee should be able to select vehicle capacity from the drop down 2)ULB Employee doesn’t see the Vechile Type in the entire form 3)ULB Employee is able to Submit the Request further

PASSED

PASSED

PASSED

DSO Specific Test Cases

DSO Flow

DSO_01

DSO

DSO - Edit property usage details

Check wehther "Try updating the pit details, it should allow the user to update the pit details."

1. Login as citizen and create an application 2. Login as editor and update application to make payment 3. Login as Collector and make payment 4. Login as Editor and update pit details and Asiign DSO 5. Login as DSO and Try updating the pit details, it should allow the user to update the pit details.

Try updating the pit details, it should allow the user to update the pit details.

Try updating the pit details, it should allow the user to update the pit details.

PASSED

PASSED

PASSED

DSO_02

DSO

DSO - Edit property usage details

Check whether "DSO shouldn’t be able to modify old applications (i.e. desludging date < current date) or applications in citizen feedback pending status"

1. Login as citizen and create an application 2. Login as editor and update application to make payment 3. Login as Collector and make payment 4. Login as Editor and update pit details and Asiign DSO 5. Login as DSO and TDSO shouldn’t be able to modify old applications (i.e. desludging date < current date) or applications in citizen feedback pending status

DSO shouldn’t be able to modify old applications (i.e. desludging date < current date) or applications in citizen feedback pending status

DSO shouldn’t be able to modify old applications (i.e. desludging date < current date) or applications in citizen feedback pending status

PASSED

PASSED

PASSED

DSO_03

DSO

DSO - Edit property usage details

Check whether "DSO can add pit photo"

1. Login as citizen and create an application 2. Login as editor and update application to make payment 3. Login as Collector and make payment 4. Login as Editor and update pit details and Asiign DSO 5. Login as DSO and DSO can add pit photo

DSO can add pit photo

DSO can add pit photo

PASSED

PASSED

PASSED

DSO_04

DSO

DSO - Edit property usage details

Check whether Pre-selected Property and Pit details should be shown. If no value is present, then show - and data from mdms in the drop-down

1. Login as citizen and create an application 2. Login as editor and update application to make payment 3. Login as Collector and make payment 4. Login as Editor and update pit details and Asiign DSO 5. Login as DSO and DSO can Pre-selected Property and Pit details should be shown. If no value is present, then show - and data from mdms in the drop-down

Pre-selected Property and Pit details should be shown. If no value is present, then show - and data from mdms in the drop-down

Pre-selected Property and Pit details should be shown. If no value is present, then show - and data from mdms in the drop-down

PASSED

PASSED

PASSED

DSO_05

DSO

DSO - Edit property usage details

Check whether This will need to be a role based edit. This can be edited by roles = dso, editor

1. Login as citizen and create an application 2. Login as editor and update application to make payment 3. Login as Collector and make payment 4. Login as Editor and update pit details and Asiign DSO 5. Login as DSO and This will need to be a role based edit. This can be edited by roles = dso, editor

This will need to be a role based edit. This can be edited by roles = dso, editor

This will need to be a role based edit. This can be edited by roles = dso, editor

PASSED

PASSED

PASSED

DSO_06

DSO

DSO - Edit property usage details

Check whether the application should be editable in: Pending for DSO approval, DSO InProgress status

1. Login as citizen and create an application 2. Login as editor and update application to make payment 3. Login as Collector and make payment 4. Login as Editor and update pit details and Asiign DSO 5. Login as DSO and the application should be editable in: Pending for DSO approval, DSO InProgress status

the application should be editable in: Pending for DSO approval, DSO InProgress status

the application should be editable in: Pending for DSO approval, DSO InProgress status

PASSED

PASSED

PASSED

DSO Specific Test Cases

DSO Flow

Vehicle_01

Employee

Employee - Edit property usage details

check whether Vehicle Capacity is a mandatory field

1.Login as a Employee editor in mSeva Portal 2.Navigate to FSM 3.Validate ULB Employee select vehicle capacity from the drop down

Vehicle Capacity is a mandatory field

Vehicle Capacity is a mandatory field

PASSED

PASSED

PASSED

Vehicle_02

Employee

Employee - Edit property usage details

check whether Vehicle Capacity should show unique capacity value from master data

1.Login as a Employee editor in mSeva Portal 2.Navigate to FSM 3.Validate ULB Employee select vehicle capacity from the drop down

Vehicle Capacity should show unique capacity value from master data

Vehicle Capacity should show unique capacity value from master data

PASSED

PASSED

PASSED

Vehicle_03

Employee

Employee - Edit property usage details

check whether Vehicle Capacity should show unique capacity value from master data

1.Login as a Employee editor in mSeva Portal 2.Navigate to FSM 3.Validate ULB Employee select vehicle capacity from the drop down

Vehicle Capacity should show unique capacity value from master data

Vehicle Capacity should show unique capacity value from master data

PASSED

PASSED

PASSED

Vehicle_04

Employee

Employee - Edit property usage details

Check whether Vehicle Type is not shown on any user interface

1.Login as a Employee editor in mSeva Portal 2.Navigate to FSM 3.Validate ULB Employee select vehicle capacity from the drop down

Vehicle Type is not shown on any user interface

Vehicle Type is not shown on any user interface

PASSED

PASSED

PASSED

Vehicle_05

Employee

Employee - Edit property usage details

Check whether Ensure that the logic for assignment of DSO is not changed with this ticket

1.Login as a Employee editor in mSeva Portal 2.Navigate to FSM 3.Validate ULB Employee select vehicle capacity from the drop down

Ensure that the logic for assignment of DSO is not changed with this ticket

Ensure that the logic for assignment of DSO is not changed with this ticket

PASSED

PASSED

PASSED

DSO Specific Test Cases

FSM/DSO/01

DSo and FSTPO

DSo and FSTPO gender

Check whether DSO gender addition is during DSO creation

1.User requests search DSO API 2.User can see the Gender info for that DSO in return

User should be able to Create new DSO with Gender info using Create DSO API and can Verify the gender info using search API.

User should be able to Create new DSO with Gender info using Create DSO API and can Verify the gender info using search API.

PASSED

PASSED

PASSED

FSM/DSO/02

DSo and FSTPO

DSo and FSTPO gender

Check whether search API is updated so that DSO gender can be returned

1.User requests search DSO API 2.User can see the Gender info for that DSO in return

DSO gender is returned when Search DSO request is Triggered

DSO gender is returned when Search DSO request is Triggered

PASSED

PASSED

PASSED

FSM/DSO/03

DSo and FSTPO

DSo and FSTPO gender

Validate If DSO is registered as Citizen then it should show Gender

1.Citizen is Registered as DSO 2.User requests search DSO API 3.User can see the Gender info for that DSO in return

Citizen is registered as DSO then Gender info should be returned

Citizen is registered as DSO then Gender info should be returned

PASSED

PASSED

PASSED

FSM/DSO/04

DSo and FSTPO

DSo and FSTPO gender

Validate update API is Updating gender info for existing DSOs

1.User request Update API for updating gender infor for existing DSOs 2.User requests search DSO API 3.User can see the Gender info for that DSO in return

User should be able to request update API for existing DSOs with gender info

User should be able to request update API for existing DSOs with gender info

PASSED

PASSED

PASSED

FSM/DSO/05

DSo and FSTPO

DSo and FSTPO gender

Citizen gender should not get overriden when DSO gender is updated from Backend (pre requisite: when Citizen is a DSO also)

1.User request Update API for updating gender info for existing DSO 2.User requests search DSO API 3.User can see the Gender info for that DSO in return 4.Validate Citizen gender should not get overriden in UI

User should be able to validate Citizen gender is not getting overriden when DSO gender is updated from Backend (pre requisite: when Citizen is a DSO also)

User should be able to validate Citizen gender is not getting overriden when DSO gender is updated from Backend (pre requisite: when Citizen is a DSO also)

PASSED

PASSED

PASSED

FSM/DSO/06

DSo and FSTPO

DSo and FSTPO gender

DSO gender should not get overriden when Citizen gender is updated from Backend (pre requisite: when Citizen is a DSO also)

1.User request Update API for updating gender info for existing citizen 2.User requests search citizen API 3.User can see the Gender info for that citizen in return 4.Validate DSO gender info should not get overriden in backend

User should be able to validate DSO gender is not getting overriden when Citizen gender is updated from Backend (pre requisite: when Citizen is a DSO also)

User should be able to validate DSO gender is not getting overriden when Citizen gender is updated from Backend (pre requisite: when Citizen is a DSO also)

PASSED

PASSED

PASSED

Employee Specific Test Cases

FSM/Emp/01

Employee

Employee update number of trips

Validate that "No Option Availaible" message should be present in drop down when there is no vechicle present to assign in Assign Vechile page

1.Login as a Employee Editor in mSeva Portal 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate that "No Option Availaible" message should be present in drop down on Assign Vechile page

User should be able to Validate that "No Option Availaible" message should be present in drop down on Assign Vechile page

User should be able to Validate that "No Option Availaible" message should be present in drop down on Assign Vechile page

PASSED

PASSED

PASSED

FSM/Emp/02

Employee

Employee update number of trips

Validate that list of Vechile is pesent in drop down in Assign Vechile page

1.Login as a Employee Editor in mSeva Portal 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate that list of Vechile is pesent in drop down in Assign Vechile page

User should be able to Validate that list of Vechile is pesent in drop down in Assign Vechile page

User should be able to Validate that list of Vechile is pesent in drop down in Assign Vechile page

PASSED

PASSED

PASSED

Employee Flow

FSM/Emp/01

Employee

Employee - Slum area create application

Validate "Waiting for disposal" application status is added in filter _English

1.Login as a ULB Employee in mSeva Portal with English language 2.Navigate to FSM 3.Go to employee inbox 4.Validate "Waiting for disposal" application status is added in filter 5. Validate "Waiting for disposal" under “Application Status” and show “-” under “SLA Days Remaining” 6)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Waiting for disposal" Filter. 2. User is able to see "Waiting for disposal" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Waiting for disposal" Filter. 2. User is able to see "Waiting for disposal" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/02

Employee

Employee - Slum area create application

Validate "Disposed" application status is added in filter_English

1.Login as a ULB Employee in mSeva Portal with English language 2.Navigate to FSM 3.Go to employee inbox 4.Validate "Disposed" application status is added in filter 5. Validate "Disposed" under “Application Status” and show “-” under “SLA Days Remaining” 6)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Disposed" Filter. 2. User is able to see"Disposed" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Disposed" Filter. 2. User is able to see"Disposed" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/034

Employee

Employee - Slum area create application

Validate "Citizen Feedback Pending" application status is added in filter _English

1.Login as a ULB Employee in mSeva Portal with English language 2.Navigate to FSM 3.Go to employee inbox 4.Validate "Citizen Feedback Pending" application status isadded in filter 5. Validate "Citizen Feedback Pending" under “Application Status” and show “-” under “SLA Days Remaining” 6)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Citizen Feedback Pending" Filter. 2. User is able to show "Citizen Feedback Pending" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Citizen Feedback Pending" Filter. 2. User is able to show "Citizen Feedback Pending" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/04

Employee

Employee - Slum area create application

Validate Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status is Present in filter_English

1.Login as a ULB Employee in mSeva Portal with English language 2.Navigate to FSM 3.Go to employee inbox 4.Validate Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status is Present in filter 5. Validate "Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status under “Application Status” and show “num of days” under “SLA Days Remaining”

1. User should be able to see Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status in filter column 2. User is able to see above status under “Application Status” and see “num of days” under “SLA Days Remaining” 3.Status should also reflect on application Timeline when user click on application

1. User should be able to see Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status in filter column 2. User is able to see above status under “Application Status” and see “num of days” under “SLA Days Remaining” 3.Status should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/05

Employee

Employee - Slum area create application

Validate "Waiting for disposal" application status is added in filter_Hindi

1.Login as a ULB Employee in mSeva Portal with Hindi language 2.Navigate to FSM 3.Go to employee inbox 4.Validate "Waiting for disposal" application status is added in filter 5. Validate "Waiting for disposal" under “Application Status” and show “-” under “SLA Days Remaining” 6)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Waiting for disposal" Filter. 2. User is able to see "Waiting for disposal" under “Application Status” and see “-” under “SLA Days Remaining”

1. User should be able to Filter out the application on basis of "Waiting for disposal" Filter. 2. User is able to see "Waiting for disposal" under “Application Status” and see “-” under “SLA Days Remaining”

PASSED

PASSED

PASSED

FSM/Emp/06

Employee

Employee - Slum area create application

Validate "Disposed" application status is added in filter_Hindi

1.Login as a ULB Employee in mSeva Portal with Hindi language 2.Navigate to FSM 3.Go to employee inbox 4.Validate "Disposed" application status is added in filter 5. Validate "Disposed" under “Application Status” and show “-” under “SLA Days Remaining” 6)Status should also reflect on application Timeline when user click on application

tatus should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/07

Employee

Employee - Slum area create application

Validate "Citizen Feedback Pending" application status is added in filter_Hindi

1.Login as a ULB Employee in mSeva Portal with Hindi language 2.Navigate to FSM 3.Go to employee inbox 4.Validate "Citizen Feedback Pending" application status isadded in filter 5. Validate "Citizen Feedback Pending" under “Application Status” and show “-” under “SLA Days Remaining” 6)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Citizen Feedback Pending" Filter. 2. User is able to show "Citizen Feedback Pending" under “Application Status” and see “-” under “SLA Days Remaining” 3.Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Citizen Feedback Pending" Filter. 2. User is able to show "Citizen Feedback Pending" under “Application Status” and see “-” under “SLA Days Remaining” 3.Status should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/08

Employee

Employee - Slum area create application

Validate Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status is Present in filter_Hindi

1.Login as a ULB Employee in mSeva Portal with Hindi language 2.Navigate to FSM 3.Go to employee inbox 4.Validate Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status is Present in filter 5. Validate "Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status under “Application Status” and show “num of days” under “SLA Days Remaining”

1. User should be able to see Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status in filter column 2. User is able to see above status under “Application Status” and see “num of days” under “SLA Days Remaining”

1. User should be able to see Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status in filter column 2. User is able to see above status under “Application Status” and see “num of days” under “SLA Days Remaining”

PASSED

PASSED

PASSED

Citizen Flow

FSM/Citizen/01

Citizen

Add ULB contact in FSM application flow

Validate Citizen is able to see helpline numbe on hamburger menu_English

1.Login as a Citizen with English Language 2.Navigate to FSM 3.Validate Citizen is able to see helpline numbe on hamburger menu

Citizen should be able to see Helpline number on hamburger menu

Citizen should be able to see Helpline number on hamburger menu

PASSED

PASSED

PASSED

FSM/Citizen/02

Citizen

Add ULB contact in FSM application flow

Helpline link should be clickable and trigger call function for the entered number_English

1.Login as a Citizen with English Language 2.Navigate to FSM 3.Validate Citizen is able to see helpline numbe on hamburger menu 4.Helpline link should be clickable and trigger call function for the entered number

Citizen should be able to click Helpline link and trigger call function for the entered number

Citizen should be able to click Helpline link and trigger call function for the entered number

PASSED

PASSED

PASSED

FSM/Citizen/03

Citizen

Add ULB contact in FSM application flow

Validate Citizen is able to see helpline numbe on hamburger menu_Hindi

1.Login as a Citizen with Hindi Language 2.Navigate to FSM 3.Validate Citizen is able to see helpline numbe on hamburger menu

Citizen should be able to see Helpline number on hamburger menu

Citizen should be able to see Helpline number on hamburger menu

PASSED

PASSED

PASSED

FSM/Citizen/04

Citizen

Add ULB contact in FSM application flow

Helpline link should be clickable and trigger call function for the entered number_Hindi

1.Login as a Citizen with Hindi Language 2.Navigate to FSM 3.Validate Citizen is able to see helpline numbe on hamburger menu 4.Helpline link should be clickable and trigger call function for the entered number

Citizen should be able to click Helpline link and trigger call function for the entered number

Citizen should be able to click Helpline link and trigger call function for the entered number

PASSED

PASSED

PASSED

FSTPO Specific Test Cases

FSTPO Flow

FSM/FSTPO/01

FSTPO

FSTPO can decline the vehicle trip

Validate Decline Vehicle action should be added for FSTPO,with predefined reasons and conditional comment option

1.Login as a FSTPO 2.Navigate to FSM 3.Search for application and Click on Take action 4.Validate Decline Vehicle action with predefined reasons and conditional comment option is added for FSTPO

User should be able to Validate Decline Vehicle action with predefined reasons and conditional comment option is added for FSTPO

User should be able to Validate Decline Vehicle action with predefined reasons and conditional comment option is added for FSTPO

PASSED

PASSED

PASSED

FSM/FSTPO/02

FSTPO

FSTPO can decline the vehicle trip

Validate Reason for Declining is a mandatory Field

1.Login as a FSTPO with English/Hindi language 2.Navigate to FSM 3.Search for application and Click on Take action 4.FSTPO clicks on Decline Vehicle button without choosing Reason for Declining 5.Validate error msg: This field cannot be empty

Reason for Declining is a Mandatory Field

Reason for Declining is a Mandatory Field

PASSED

PASSED

PASSED

FSM/FSTPO/03

FSTPO

FSTPO can decline the vehicle trip

Validate when "others" is selected as Reason for Declining then "Comments" input box appear which is mandatory field

1.Login as a FSTPO with English/Hindi language 2.Navigate to FSM 3.Search for application and Click on Take action 4.FSTPO choose "Others" in Reason for Declining Field 5.Validate "Comments" input box appear 6.FSTPO clicks on Decline Vehicle button without entering anything in "comment" input box 7.Validate error msg: This field cannot be empty

If "others" is selected as Reason for Declining then "Comments" input box appear which is mandatory field

If "others" is selected as Reason for Declining then "Comments" input box appear which is mandatory field

PASSED

PASSED

PASSED

FSM/FSTPO/04

FSTPO

FSTPO can decline the vehicle trip

Validate After declining from FSTPO, the vehicle trip will be in “TRIP DECLINED” status

1.Login as a FSTPO with English/Hindi language 2.Navigate to FSM 3.Search for application and Click on Take action 4.FSTPO choose Reason for Declining and clicks on "Decline Vehicle" Button. 5.Validate the vehicle trip will be in “TRIP DECLINED” status

Validate After declining from FSTPO, the vehicle trip should be in “TRIP DECLINED” status

Validate After declining from FSTPO, the vehicle trip should be in “TRIP DECLINED” status

PASSED

PASSED

PASSED

FSM/FSTPO/05

FSTPO

FSTPO can decline the vehicle trip

Validate Declining a vehicle will not require Vehicle Out time

1.Login as a FSTPO with English/Hindi language 2.Navigate to FSM 3.Search for application and Click on Take action 4.FSTPO choose Reason for Declining and clicks on "Decline Vehicle" Button. 5.Validate the vehicle trip will be in “TRIP DECLINED” status

Validate Declining vehicle should not require Vehicle Out time

Validate Declining vehicle should not require Vehicle Out time

PASSED

PASSED

PASSED

Dashboard Specific Test Cases

FSM/DSS/01

Dashboard

Dashboard

Validate a pie-chart for Request by gender in FSM Dashboard in Desktop

1.Login as a FSM DSS in mSeva Portal in Desktop 2.Navigate to Dashboard and then in FSM 3.Validate a pie-chart for Request by gender in FSM DSS Dashboard is Present

It is Validated a pie-chart for Request by gender in FSM DSS Dashboard is Present in Desktop version

It is Validated a pie-chart for Request by gender in FSM DSS Dashboard is Present in Desktop version

PASSED

PASSED

PASSED

FSM/DSS/02

Dashboard

Dashboard

Validate that the view of DSS Dashbord is in 2x2 ( ColumnxRow)

1.Login as a FSM DSS in mSeva Portal 2.Navigate to Dashboard and then in FSM 3.Validate that the view of DSS Dashbord is in 2x2 ( ColumnxRow)

It is Validated that the view of DSS Dashbord is in 2x2 ( ColumnxRow)

It is Validated that the view of DSS Dashbord is in 2x2 ( ColumnxRow)

PASSED

PASSED

PASSED

FSM/DSS/03

Dashboard

Dashboard

Validate the DSS Dashboard is seen with gender info in Mobile Version

1.Login as a FSM DSS in mSeva Portal in Mobile 2.Navigate to Dashboard and then in FSM 3.Validate the DSS Dashboard is seen with gender info in Mobile Version

It is Validated that DSS Dashboard is seen with gender info in Mobile Version

It is Validated that DSS Dashboard is seen with gender info in Mobile Version

PASSED

PASSED

PASSED

FSM/DSS/04

Dashboard

Dashboard

Validate the FSM Dashboard is Shareable and can be downloaded in PDF

1.Login as a FSM DSS in mSeva Portal in Mobile 2.Navigate to Dashboard and then in FSM 3.Validate the DSS Dashboard is sharable 4.Validate the DSS Dashboard can be Downloaded in PDF

It is Validated that DSS Dashboard is Shareable and can be downloaded as well

It is Validated that DSS Dashboard is Shareable and can be downloaded as well

PASSED

PASSED

PASSED

PASSED

PASSED

PASSED

FSM/FSM-CREATOR_EMP_01

Employee Creator

Creator- Application creation

Check whether FSM-CREATOR can Create an application request with property type institutional , with capacity of vehicle as 5000 litres and number os trips 3 - the auto calculated amount should be = 2400 * 3 = Rs.7200/- -- ENGLISH

1. Login as citizen/creator and create an application 2. Login as editor and check if you are able toedit the application 3. Check if the number of trips is editable by selecting INSTITUTIONAL 4. Total Price calculated should be no of trips * price for each price

Calculated amount should display = 2400 * 3 = Rs.7200/-

Calculated amount should display = 2400 * 3 = Rs.7200/-

FSM/FSM-CREATOR_EMP_03

Employee Creator

Creator- Application creation

Check whether FSM-CREATOR can Create an application request with property type commercial ,with capacity as 1000 and number of trips 1 - the auto calculated amount should be = 1000*1 = Rs.1000/- -- ENGLISH

1. Login as FSM-CREATOR_EMP 2. FSM-CREATOR enter login ID and password, choosing city as Amritsar 3. Navigte to application creation page 4. Entr all the required fields, make sure to select COMMERCIAL , with capacity as 1000 and number of trips 1 5. Auto Calculated amount should display = 1000*1 = Rs.1000/-

calculated amount should be = 1000*1 = Rs.1000/-

calculated amount should be = 1000*1 = Rs.1000/-

PASSED

PASSED

PASSED

FSM/FSM-CREATOR_EMP_05

Employee Creator

Creator- Application creation

Check whether FSM-CREATOR can Create an application request with property type residential , with capacity of vehicle as 5000 litres with slum data and number os trips 3 - the auto calculated amount should be = 1500 * 3 = Rs.4500/- -- ENGLISH

1. Login as FSM-CREATOR_EMP 2. FSM-CREATOR enter login ID and password, choosing city as Amritsar 3. Navigte to application creation page 4. Entr all the required fields, make sure to select RESIDENTIAL , with capacity of vehicle as 5000 litres with slum data and number os trips 3 5. Auto calculated amount should be = 1500 * 3 = Rs.4500/-

calculated amount should be = 1500 * 3 = Rs.4500/-

calculated amount should be = 1500 * 3 = Rs.4500/-

PASSED

PASSED

PASSED

FSM/FSM-CREATOR_EMP_07

Employee Creator

Creator- Application creation

Check whether FSM-CREATOR can Create an application request with property type institutional , with capacity of vehicle as 5000 litres and number os trips 3 - the auto calculated amount should be = 2400 * 3 = Rs.7200/- -- HINDI

1. Login as FSM-CREATOR_EMP 2. FSM-CREATOR enter login ID and password, choosing city as Amritsar 3. Navigte to application creation page 4. Entr all the required fields, make sure to select INSTITUTIONAL , with capacity of vehicle as 5000 litres and number os trips 3 5. Auto calculated amount should display = 2400 * 3 = Rs.7200/-

Calculated amount should display = 2400 * 3 = Rs.7200/-

Calculated amount should display = 2400 * 3 = Rs.7200/-

PASSED

PASSED

PASSED

FSM/FSM-CREATOR_EMP_09

Employee Creator

Creator- Application creation

Check whether FSM-CREATOR can Create an application request with property type commercial ,with capacity as 1000 and number of trips 1 - the auto calculated amount should be = 1000*1 = Rs.1000/- -- HINDI

1. Login as FSM-CREATOR_EMP 2. FSM-CREATOR enter login ID and password, choosing city as Amritsar 3. Navigte to application creation page 4. Entr all the required fields, make sure to select COMMERCIAL , with capacity as 1000 and number of trips 1 5. Auto Calculated amount should display = 1000*1 = Rs.1000/-

calculated amount should be = 1000*1 = Rs.1000/-

calculated amount should be = 1000*1 = Rs.1000/-

PASSED

PASSED

PASSED

PASSED

PASSED

PASSED

FSM-EDITOR_Waiting_For_Dsiposal_Disposed_01

Employee

Show vehicle trip status in employee inbox along with fsm application

Check whther below status is updated 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality --ENGLISH

1. Login as a FSM-CREATOR 2. Creatte an applciation and submit 3. Login as FSM-EDITOR and go to inbox and look for the application created above 4. complete the DSO assignment process 5. Login with DSO and complete DSO process 6. Now the application status should be waiting for disposal since FSTPO is yet to be acted upon this 7. Login with FSM-EDITOR and go to inbox and check the status of the application and it should show as "Waiting for Disposal" 8. Now login with FSM-FSTPO and complete the application process 9. Now login with FSM-EDITOR and check the status under inbox it should as "Disposed" 10. Once the status is chagned to disposed, verify if the status is changed to "customer feedback pending" on the applcition--existing functionality

FSM-EDITOR All the 3 below status should be updated accordingly 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality

FSM-EDITOR All the 3 below status should be updated accordingly 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality

PASSED

PASSED

PASSED

FSM-EDITOR_SLA_for_Waiting_For_Dsiposal_Disposed_02

Employee

Show vehicle trip status in employee inbox along with fsm application

Check for SLA column for below status is present as - (No value) 1. Waiting for disposal 2. Disposed --ENGLISH

"1. Login as a FSM-CREATOR 2. Creatte an applciation and submit 3. Login as FSM-EDITOR and go to inbox and look for the application created above 4. complete the DSO assignment process 5. Login with DSO and complete DSO process 6. Now the application status should be waiting for disposal since FSTPO is yet to be acted upon this 7. Login with FSM-EDITOR and go to inbox and check the SLA status oshould be displayed as - (no value) for app status as ""Waiting for Disposal"" 8. Now login with FSM-FSTPO and complete the application process 9. Now login with FSM-EDITOR and check the status under inbox it should as SLA status should be displayed as - (no value) for applicationstatus as "disposed"

FSM-EDITOR SLA should be displayed as - for both the status of application

FSM-EDITOR SLA should be displayed as - for both the status of application

PASSED

PASSED

PASSED

FSM-EMP_FSTPO_Waiting_For_Dsiposal_Disposed_03

Employee

Show vehicle trip status in employee inbox along with fsm application

Check whther below status is updated 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality --ENGLISH

1. Login as a FSM-CREATOR 2. Creatte an applciation and submit 3. Login as FSM-EMP_FSTPO and go to inbox and look for the application created above 4. complete the DSO assignment process 5. Login with DSO and complete DSO process 6. Now the application status should be waiting for disposal since FSTPO is yet to be acted upon this 7. Login with FSM-EMP_FSTPO and go to inbox and check the status of the application and it should show as "Waiting for Disposal" 8. Now login with FSM-FSTPO and complete the application process 9. Now login with FSM-EMP_FSTPO and check the status under inbox it should as "Disposed" 10. Once the status is chagned to disposed, verify if the status is changed to "customer feedback pending" on the applcition--existing functionality

FSM-EMP_FSTPO All the 3 below status should be updated accordingly 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality

FSM-EMP_FSTPO All the 3 below status should be updated accordingly 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality

PASSED

PASSED

PASSED

FSM-EMP_FSTPO_SLA_for_Waiting_For_Dsiposal_Disposed_04

Employee

Show vehicle trip status in employee inbox along with fsm application

Check for SLA column for below status is present as - (No value) 1. Waiting for disposal 2. Disposed --ENGLISH

"1. Login as a FSM-CREATOR 2. Creatte an applciation and submit 3. Login as FSM-EMP_FSTPO and go to inbox and look for the application created above 4. complete the DSO assignment process 5. Login with DSO and complete DSO process 6. Now the application status should be waiting for disposal since FSTPO is yet to be acted upon this 7. Login with FSM-EMP_FSTPO and go to inbox and check the SLA status of the application vehcile trip status as ""Waiting for Disposal"" should be displayed as - (no value) 8. Now login with FSM-FSTPO and complete the application process 9. Now login with FSM-EMP_FSTPO and check the status under inbox it should as SLA status should be displayed as - (no value) for applicationstatus as "disposed"

FSM-EMP_FSTPO SLA should be displayed as - for both the status of application

FSM-EMP_FSTPO SLA should be displayed as - for both the status of application

PASSED

PASSED

PASSED

FSM-EDITOR_Waiting_For_Dsiposal_Disposed_HINDI_05

Employee

Show vehicle trip status in employee inbox along with fsm application

Check whther below status is updated 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality --HINDI

1. Login as a FSM-CREATOR 2. Creatte an applciation and submit 3. Login as FSM-EDITOR and go to inbox and look for the application created above 4. complete the DSO assignment process 5. Login with DSO and complete DSO process 6. Now the application status should be waiting for disposal since FSTPO is yet to be acted upon this 7. Login with FSM-EDITOR and go to inbox and check the status of the application and it should show as "Waiting for Disposal" 8. Now login with FSM-FSTPO and complete the application process 9. Now login with FSM-EDITOR and check the status under inbox it should as "Disposed" 10. Once the status is chagned to disposed, verify if the status is changed to "customer feedback pending" on the applcition--existing functionality

FSM-EDITOR All the 3 below status should be updated accordingly 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality

FSM-EDITOR All the 3 below status should be updated accordingly 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality

PASSED

PASSED

PASSED

FSM-EDITOR_SLA_for_Waiting_For_Dsiposal_Disposed_HINDI_06

Employee

Show vehicle trip status in employee inbox along with fsm application

Check for SLA column for below status is present as - (No value) 1. Waiting for disposal 2. Disposed --HINDI

"1. Login as a FSM-CREATOR 2. Creatte an applciation and submit 3. Login as FSM-EDITOR and go to inbox and look for the application created above 4. complete the DSO assignment process 5. Login with DSO and complete DSO process 6. Now the application status should be waiting for disposal since FSTPO is yet to be acted upon this 7. Login with FSM-EDITOR and go to inbox and check the SLA status oshould be displayed as - (no value) for app status as ""Waiting for Disposal"" 8. Now login with FSM-FSTPO and complete the application process 9. Now login with FSM-EDITOR and check the status under inbox it should as SLA status should be displayed as - (no value) for applicationstatus as "disposed"

FSM-EDITOR SLA should be displayed as - for both the status of application

FSM-EDITOR SLA should be displayed as - for both the status of application

PASSED

PASSED

PASSED

FSM-EMP_FSTPO_Waiting_For_Dsiposal_Disposed_HINDI_07

Employee

Show vehicle trip status in employee inbox along with fsm application

Check whther below status is updated 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality --HINDI

1. Login as a FSM-CREATOR 2. Creatte an applciation and submit 3. Login as FSM-EMP_FSTPO and go to inbox and look for the application created above 4. complete the DSO assignment process 5. Login with DSO and complete DSO process 6. Now the application status should be waiting for disposal since FSTPO is yet to be acted upon this 7. Login with FSM-EMP_FSTPO and go to inbox and check the status of the application and it should show as "Waiting for Disposal" 8. Now login with FSM-FSTPO and complete the application process 9. Now login with FSM-EMP_FSTPO and check the status under inbox it should as "Disposed" 10. Once the status is chagned to disposed, verify if the status is changed to "customer feedback pending" on the applcition--existing functionality

FSM-EMP_FSTPO All the 3 below status should be updated accordingly 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality

FSM-EMP_FSTPO All the 3 below status should be updated accordingly 1. Waiting for disposal 2. Disposed 3. Customer Fedback Rating-- Existing functionality

PASSED

PASSED

PASSED

FSM/Emp/01

Employee

Show vehicle trip status in employee inbox along with fsm application

Check for SLA column for below status is present as - (No value) 1. Waiting for disposal 2. Disposed --HINDI

"1. Login as a FSM-CREATOR 2. Creatte an applciation and submit 3. Login as FSM-EMP_FSTPO and go to inbox and look for the application created above 4. complete the DSO assignment process 5. Login with DSO and complete DSO process 6. Now the application status should be waiting for disposal since FSTPO is yet to be acted upon this 7. Login with FSM-EMP_FSTPO and go to inbox and check the SLA status of the application vehcile trip status as ""Waiting for Disposal"" should be displayed as - (no value) 8. Now login with FSM-FSTPO and complete the application process 9. Now login with FSM-EMP_FSTPO and check the status under inbox it should as SLA status should be displayed as - (no value) for applicationstatus as "disposed"

FSM-EMP_FSTPO SLA should be displayed as - for both the status of application

FSM-EMP_FSTPO SLA should be displayed as - for both the status of application

PASSED

PASSED

PASSED

FSM/Emp/02

Employee

Show vehicle trip status in employee inbox along with fsm application

Validate "Waiting for disposal" application status is added in filter _English

1. User should be able to Filter out the application on basis of "Waiting for disposal" Filter. 2. User is able to see "Waiting for disposal" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Waiting for disposal" Filter. 2. User is able to see "Waiting for disposal" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Waiting for disposal" Filter. 2. User is able to see "Waiting for disposal" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/03

Employee

Show vehicle trip status in employee inbox along with fsm application

Validate "Disposed" application status is added in filter_English

1. User should be able to Filter out the application on basis of "Disposed" Filter. 2. User is able to see"Disposed" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Disposed" Filter. 2. User is able to see"Disposed" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Disposed" Filter. 2. User is able to see"Disposed" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/04

Employee

Show vehicle trip status in employee inbox along with fsm application

Validate "Citizen Feedback Pending" application status is added in filter _English

1. User should be able to Filter out the application on basis of "Citizen Feedback Pending" Filter. 2. User is able to show "Citizen Feedback Pending" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Citizen Feedback Pending" Filter. 2. User is able to show "Citizen Feedback Pending" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Citizen Feedback Pending" Filter. 2. User is able to show "Citizen Feedback Pending" under “Application Status” and see “-” under “SLA Days Remaining” 3)Status should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/05

Employee

Show vehicle trip status in employee inbox along with fsm application

Validate Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status is Present in filter_English

1. User should be able to see Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status in filter column 2. User is able to see above status under “Application Status” and see “num of days” under “SLA Days Remaining” 3.Status should also reflect on application Timeline when user click on application

1. User should be able to see Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status in filter column 2. User is able to see above status under “Application Status” and see “num of days” under “SLA Days Remaining” 3.Status should also reflect on application Timeline when user click on application

1. User should be able to see Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status in filter column 2. User is able to see above status under “Application Status” and see “num of days” under “SLA Days Remaining” 3.Status should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/06

Employee

Show vehicle trip status in employee inbox along with fsm application

Validate "Waiting for disposal" application status is added in filter_Hindi

1. User should be able to Filter out the application on basis of "Waiting for disposal" Filter. 2. User is able to see "Waiting for disposal" under “Application Status” and see “-” under “SLA Days Remaining”

1. User should be able to Filter out the application on basis of "Waiting for disposal" Filter. 2. User is able to see "Waiting for disposal" under “Application Status” and see “-” under “SLA Days Remaining”

1. User should be able to Filter out the application on basis of "Waiting for disposal" Filter. 2. User is able to see "Waiting for disposal" under “Application Status” and see “-” under “SLA Days Remaining”

PASSED

PASSED

PASSED

FSM/Emp/07

Employee

Show vehicle trip status in employee inbox along with fsm application

Validate "Disposed" application status is added in filter_Hindi

3. atus should also reflect on application Timeline when user click on application

3. atus should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/08

Employee

Show vehicle trip status in employee inbox along with fsm application

Validate "Citizen Feedback Pending" application status is added in filter_Hindi

1. User should be able to Filter out the application on basis of "Citizen Feedback Pending" Filter. 2. User is able to show "Citizen Feedback Pending" under “Application Status” and see “-” under “SLA Days Remaining” 3.Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Citizen Feedback Pending" Filter. 2. User is able to show "Citizen Feedback Pending" under “Application Status” and see “-” under “SLA Days Remaining” 3.Status should also reflect on application Timeline when user click on application

1. User should be able to Filter out the application on basis of "Citizen Feedback Pending" Filter. 2. User is able to show "Citizen Feedback Pending" under “Application Status” and see “-” under “SLA Days Remaining” 3.Status should also reflect on application Timeline when user click on application

PASSED

PASSED

PASSED

FSM/Emp/09

Employee

Show vehicle trip status in employee inbox along with fsm application

Validate Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status is Present in filter_Hindi

1. User should be able to see Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status in filter column 2. User is able to see above status under “Application Status” and see “num of days” under “SLA Days Remaining”

1. User should be able to see Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status in filter column 2. User is able to see above status under “Application Status” and see “num of days” under “SLA Days Remaining”

1. User should be able to see Application Created, Pending DSO Assignment, Pending for Payment, Pending for DSO Approval, DSO Rejected, DSO InProgress application status in filter column 2. User is able to see above status under “Application Status” and see “num of days” under “SLA Days Remaining”

PASSED

PASSED

PASSED

FSTPO_01

FSTPO

FSTPO Vehicle Log Inbox

Check whther "Application number for each vehicle log for each trip should be shown in the inbox"

1. Login as FSTPO 2. Click on Inbox 3. Check whther "Application number for each vehicle log for each trip should be shown in the inbox"

Application number for each vehicle log for each trip should be shown in the inbox

Application number for each vehicle log for each trip should be shown in the inbox

PASSED

PASSED

PASSED

FSTPO_02

FSTPO

FSTPO Vehicle Log Inbox

Check whether "Search criteria via Application umber must be made available to view all the trips taken in that application."

1. Login as FSTPO 2. Click on Inbox 3. Check whther "Search criteria via Application umber must be made available to view all the trips taken in that application."

Search criteria via Application umber must be made available to view all the trips taken in that application.

Search criteria via Application umber must be made available to view all the trips taken in that application.

PASSED

PASSED

PASSED

FSTPO_FLOW_01

FSTPO

FSTPO - View error message

check whtether "FSTPO must have number of cards generated for each disposal based on the number of trips entered."

1. Login as citizen/Creator and create the application 2. Login as Editor and update applciation 3. Login as collector and complete payment 4. Login as Editor and assign DSO 5. Login as DSO and assignvehicle with 2 or 3 trips 6. Now login as FSTPO and check "FSTPO must have number of cards generated for each disposal based on the number of trips entered."

FSTPO must have number of cards generated for each disposal based on the number of trips entered.

FSTPO must have number of cards generated for each disposal based on the number of trips entered.

PASSED

PASSED

PASSED

FSTPO_FLOW_02

FSTPO

FSTPO - View error message

Check whether "User must not be allowed to enter the Trip No: (should not be user selection)"

1. Login as citizen/Creator and create the application 2. Login as Editor and update applciation 3. Login as collector and complete payment 4. Login as Editor and assign DSO 5. Login as DSO and assignvehicle with 2 or 3 trips 6. Now login as FSTPO and check "User must not be allowed to enter the Trip No: (should not be user selection)."

User must not be allowed to enter the Trip No: (should not be user selection)

User must not be allowed to enter the Trip No: (should not be user selection)

PASSED

PASSED

PASSED

FSTPO_FLOW_03

FSTPO

FSTPO - View error message

Check whether"Trip must be provided with “_of (no of trips entered by the DSO) eg: 2 of 3 in each screen each time."

1. Login as citizen/Creator and create the application 2. Login as Editor and update applciation 3. Login as collector and complete payment 4. Login as Editor and assign DSO 5. Login as DSO and assignvehicle with 2 or 3 trips 6. Now login as and check whether "Trip must be provided with “_of (no of trips entered by the DSO) eg: 2 of 3 in each screen each time.."

Trip must be provided with “_of (no of trips entered by the DSO) eg: 2 of 3 in each screen each time.

Trip must be provided with “_of (no of trips entered by the DSO) eg: 2 of 3 in each screen each time.

PASSED

PASSED

PASSED

FSTPO_FLOW_04

FSTPO

FSTPO - View error message

Check whether "Take action and submit screen must be shown only after FSTP operator has entered the last screen with in and out time and the Trip number is for eg, 4 of 4 trips."

1. Login as citizen/Creator and create the application 2. Login as Editor and update applciation 3. Login as collector and complete payment 4. Login as Editor and assign DSO 5. Login as DSO and assignvehicle with 2 or 3 trips 6. Now login as and check whether "Take action and submit screen must be shown only after FSTP operator has entered the last screen with in and out time and the Trip number is for eg, 4 of 4 trips..."

Take action and submit screen must be shown only after FSTP operator has entered the last screen with in and out time and the Trip number is for eg, 4 of 4 trips.

Take action and submit screen must be shown only after FSTP operator has entered the last screen with in and out time and the Trip number is for eg, 4 of 4 trips.

PASSED

PASSED

PASSED

FSTPO_FLOW_05

FSTPO

FSTPO - View error message

Check whether "After using the previous option, that option must be removed and cannot be used the next time."

1. Login as citizen/Creator and create the application 2. Login as Editor and update applciation 3. Login as collector and complete payment 4. Login as Editor and assign DSO 5. Login as DSO and assignvehicle with 2 or 3 trips 6. Now login as and check whether "After using the previous option, that option must be removed and cannot be used the next time...."

After using the previous option, that option must be removed and cannot be used the next time.

After using the previous option, that option must be removed and cannot be used the next time.

PASSED

PASSED

PASSED

FSTPO_FLOW_06

FSTPO

FSTPO - View error message

Check whether "API Validation : the in time for the next team should not be before the out time of the previous trip."

1. Login as citizen/Creator and create the application 2. Login as Editor and update applciation 3. Login as collector and complete payment 4. Login as Editor and assign DSO 5. Login as DSO and assignvehicle with 2 or 3 trips 6. Now login as and check whether "API Validation : the in time for the next team should not be before the out time of the previous trip.."

API Validation : the in time for the next team should not be before the out time of the previous trip.

API Validation : the in time for the next team should not be before the out time of the previous trip.

PASSED

PASSED

PASSED

FSM Dashboard View_01

Dashboad

FSM Dashboard View

Check whether under dashboard view user is able to see " pie chart for gender data"

1. Login as FSM Dashboard ViewER QADV/eGov@123 https://qa.digit.org/employee/user/login 2. Go to Dashboard on left hand side 3. Click on FSM 4. Validte if pie chart is available for gender data

Show pie chart for gender data

Show pie chart for gender data

PASSED

PASSED

PASSED

FSM Dashboard View_02

Dashboad

FSM Dashboard View

Check if drill-down (by Date, ULB) on payment chart is available

1. Login as FSM Dashboard ViewER QADV/eGov@123 https://qa.digit.org/employee/user/login 2. Go to Dashboard on left hand side 3. Click on FSM 4. Check if drill-down (by Date, ULB) on payment chart is available

Check if drill-down (by Date, ULB) on payment chart is available

Check if drill-down (by Date, ULB) on payment chart is available

PASSED

PASSED

PASSED

FSM Dashboard View_03

Dashboad

FSM Dashboard View

Check above charts on mobile and desktop versions

1. Login as FSM Dashboard ViewER QADV/eGov@123 https://qa.digit.org/employee/user/login 2. Go to Dashboard on left hand side 3. Click on FSM 4. Check above graphs on mobile and desktop versions

Check above two graphs on mobile and desktop versions

Check above two graphs on mobile and desktop versions

PASSED

PASSED

PASSED

FSM Dashboard View_04

Dashboad

FSM Dashboard View

Check if chart should be shareable and downloadable

1. Login as FSM Dashboard ViewER QADV/eGov@123 https://qa.digit.org/employee/user/login 2. Go to Dashboard on left hand side 3. Click on FSM 4. check if chart should be shareable and downloadable

check if chart should be shareable and downloadable

check if chart should be shareable and downloadable

PASSED

PASSED

PASSED

https://digit-discuss.atlassian.net/browse/SM-1282
https://digit-discuss.atlassian.net/browse/SM-1281
https://digit-discuss.atlassian.net/browse/SM-1273
https://digit-discuss.atlassian.net/browse/SM-1980
https://digit-discuss.atlassian.net/browse/SM-1980
https://digit-discuss.atlassian.net/browse/SM-1982
https://digit-discuss.atlassian.net/browse/SM-1981
https://digit-discuss.atlassian.net/browse/SM-493
https://digit-discuss.atlassian.net/browse/SM-508
https://digit-discuss.atlassian.net/browse/SM-50
https://digit-discuss.atlassian.net/browse/SM-495
https://digit-discuss.atlassian.net/browse/SM-512
https://digit-discuss.atlassian.net/browse/SM-51
https://digit-discuss.atlassian.net/browse/SM-507
https://digit-discuss.atlassian.net/browse/SM-510
https://digit-discuss.atlassian.net/browse/SM-51
https://digit-discuss.atlassian.net/browse/SM-491
https://digit-discuss.atlassian.net/browse/SM-498
https://digit-discuss.atlassian.net/browse/SM-500
https://digit-discuss.atlassian.net/browse/SM-800
https://digit-discuss.atlassian.net/browse/SM-497
https://digit-discuss.atlassian.net/browse/SM-830
https://digit-discuss.atlassian.net/browse/SM-858
https://digit-discuss.atlassian.net/browse/SM-496
https://digit-discuss.atlassian.net/browse/SM-806
https://digit-discuss.atlassian.net/browse/SM-490
https://digit-discuss.atlassian.net/browse/SM-828
https://digit-discuss.atlassian.net/browse/SM-829
To verify that Editor can able to
increase or de
ease
the trips when citizen has paid some advance
https://digit-discuss.atlassian.net/browse/SM-504
https://digit-discuss.atlassian.net/browse/SM-528
https://digit-discuss.atlassian.net/browse/SM-1329
https://digit-discuss.atlassian.net/browse/SM-1333 https://digit-discuss.atlassian.net/browse/SM-1378
https://digit-discuss.atlassian.net/browse/SM-1427
https://digit-discuss.atlassian.net/browse/SM-1701
https://digit-discuss.atlassian.net/browse/SM-1700
https://digit-discuss.atlassian.net/browse/SM-1752
https://digit-discuss.atlassian.net/browse/SM-1727
https://digit-discuss.atlassian.net/browse/SAN-1024
https://digit-discuss.atlassian.net/browse/SAN-848
https://digit-discuss.atlassian.net/browse/SAN-116
https://digit-discuss.atlassian.net/browse/SAN-795
https://digit-discuss.atlassian.net/browse/SAN-736
https://digit-discuss.atlassian.net/browse/SAN-802
https://digit-discuss.atlassian.net/browse/SAN-817
https://digit-discuss.atlassian.net/browse/SAN-818
https://digit-discuss.atlassian.net/browse/SAN-790
https://digit-discuss.atlassian.net/browse/SAN-790
https://digit-discuss.atlassian.net/browse/SAN-823
https://digit-discuss.atlassian.net/browse/SAN-829
https://digit-discuss.atlassian.net/browse/SAN-803
1. User should be able to Filter out the application on basis of "Disposed" Filter. 2. User is able to see"Disposed" under “Application Status” and see “-” under “SLA Days Remaining”
3.S
1. User should be able to Filter out the application on basis of "Disposed" Filter. 2. User is able to see"Disposed" under “Application Status” and see “-” under “SLA Days Remaining” 3.Status should also reflect on application Timeline when user click on application
https://digit-discuss.atlassian.net/browse/SAN-688
https://digit-discuss.atlassian.net/browse/SAN-800
https://digit-discuss.atlassian.net/browse/SAN-785
https://digit-discuss.atlassian.net/browse/SAN-840
https://digit-discuss.atlassian.net/browse/SAN-803
1. User should be able to Filter out the application on basis of "Disposed" Filter. 2. User is able to see"Disposed" under “Application Status” and see “-” under “SLA Days Remaining”
1. User should be able to Filter out the application on basis of "Disposed" Filter. 2. User is able to see"Disposed" under “Application Status” and see “-” under “SLA Days Remaining”
1. User should be able to Filter out the application on basis of "Disposed" Filter. 2. User is able to see"Disposed" under “Application Status” and see “-” under “SLA Days Remaining” 3. atus should also reflect on application Timeline when user click on application
https://digit-discuss.atlassian.net/browse/SAN-891
https://digit-discuss.atlassian.net/browse/SAN-854
https://digit-discuss.atlassian.net/browse/SAN-848