Sanitation
PlatformDomainsAcademyDesign SystemFeedback
v1.4
v1.4
  • Introducing Water-Sanitation
  • Water-Sanitation
    • Solution Design
    • Approach
    • Release Notes
      • FSM 1.4 - Technical Release Summary
      • Service Build Update
        • Release Builds for Core
      • MDMS Changes
      • Configuration Updates
      • Test Cases
      • Localisation
      • Impel Release Notes
      • Gate 2 Checklist
      • Workflow Configuration Changes
      • Master Migration Document
      • Driver-Individual Migration Script
  • Water-Sanitation Product Suite
    • Waste Management System
      • Functional Specifications
        • TQM UI
          • How to Enable TQM UI
          • UI: Plant Operator
            • Landing and Home Page
            • Plant-User Mapping
            • Inbox/Update Tests
            • View Past Test Results/Test's Summary Screen
            • Help Section
          • UI: ULB Admin
            • ULB Admin Home Page
            • Inbox/Test Details Screen
            • View Past Test Results
            • Create Adhoc Test
        • TQM UI/UX Audit
      • Faecal Sludge Management (FSM)
        • Features
        • Sanitation Actors & Interactions
        • User Interface Design
        • FSM User Manual
          • FSM Citizen User Manual
          • Employee User Manual
          • Manage Vendor, Sanitation Worker and Vehicle Details
          • DSO User Manual
          • Septage Treatment Plant Operator User Manual
        • Test Cases
        • FSM Functional Specification
          • Sanitation Worker UI
            • FSM Registry
            • Create Sanitation Worker
            • Edit Sanitation Worker
            • Assign Sanitation Workers to FSM Applications
            • Sanitation Worker Details
          • FSM UI Docs
            • FSM Citizen UI
            • FSM Employee UI
            • FSM DSO UI
            • FSM FSTPO UI
          • FSM UI/UX Audit
        • FSM Technical Specification
          • Vehicle Technical Specification
          • Vendor Technical Specification
          • Calculator Technical Specification
        • FSM Release Notes
          • Known Issues List
        • Product Requirement Document
        • Training
        • Sanitation Worker Welfare
          • Vendor Registry
          • FSM Service
          • Sanitation Worker( FSM 1.4) UI/UX Audit
        • FSM-DSS Technical Documentation
        • Enablement toolkits(Assetization) for FSM
          • Getting started with DIGIT
          • Requirements to enable FSM Module in a new evironment
          • Dependency services of the FSM module
          • Data templates for data collection
          • Data loading steps
            • Loading Billing Slab Data
            • Loading Vendor,Vehicle and Driver Data
            • Loading Localisations
            • Plant Mapping of FSTP
            • Creating users for FSM
          • Preparation of MDMS Data for Data Loading
          • SMS Templates for FSM
        • URC Release Notes
          • Steps to Configure URC
        • Garima Release Notes
          • Steps to Configure Garima
        • User Personas
      • Treatment Quality Monitoring (TQM)
        • Features
        • User Stories
          • Treatment Quality Monitoring Dashboard KPIs
        • User Interface Design
        • User Manual
          • Employee User Manual
          • Treatment Plant Operator User Manual
        • TQM Setup
          • User Manual
        • Release Notes
          • Known Issue List
        • Product Requirement Document: Treatment Quality Monitoring (TQM)
        • PQM Technical Specification
        • TQM Impel Checklist & Roll-out Plan
    • Water & Sewerage Connections
    • NalJal
  • Technology
    • Architecture
      • PQM
        • Low Level Design
          • Services
            • PQM Service
            • PQM Anomaly Finder
            • PQM Scheduler
      • FSM
        • Low Level Design
          • Services
            • FSM Service
            • FSM Calculator
          • Registries
            • FSM Vendor Registry
            • FSM Vehicle Registry
    • Source Code
  • Reference Implementations
    • Odisha - SUJOG
      • Functional Customisation
        • Urban-Rural Convergence
        • Garima Implementation
          • User Interface Design
          • Product Requirement Document (PRD)
      • Technical Customisation
      • Technical Specification: Urban-Rural Convergence
      • Standard Operating Procedure (SOP)
      • Program Rollout Plan
      • Implementation Plan
      • Implementation Guide
      • Implementation Checklist
      • TQM Gate 2 Plans & Checklist
  • Setup
    • Setup
      • On AWS
    • Deployment Guide
      • Legacy/Re-Indexing the FSM Data
      • Legacy/Re-Indexing the PQM Data
      • FSM devops setups
      • FSM Calculator devops setup
      • Vendor registry devops setup
      • Vehicle registry devops setup
    • Development Guide
      • Backend Developer Guide
      • UI Developer Guide
    • Configuration
      • TQM
        • PQM Service
        • PQM Anomaly Finder
        • PQM Scheduler
      • FSM
        • FSM Service
        • Vendor Registry
        • Vehicle Registry
        • FSM Calculator
    • Operations Guide
  • COMMUNITY
    • Community Project: Vehicle Tracking
      • Release Notes
        • Service Build Update
          • Release Builds for Core
        • Test Cases
      • Architecture
        • Vehicle Tracking
          • High Level Design
          • Low Level Design
      • User Manuals
        • Employee User Manual
        • Driver User Manual
      • Demo
      • Product Requirement Document (PRD)
      • Deployment Guide
      • Setup
      • Source Code
    • Contribute
    • Issues
Powered by GitBook

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

On this page
  • Overview
  • Objective
  • Author
  • Document History
  • Approvals
  • Use Case
  • UI/UX Wireframe
  • Technical Components & Design

Was this helpful?

Export as PDF
  1. Reference Implementations
  2. Odisha - SUJOG

Technical Specification: Urban-Rural Convergence

Overview

Initiative to provide access to sanitation services to all gram panchayats (GPs) via urban local bodies (ULBs) located closest to them.

Objective

DIGIT Sanitation plans to provide a provision of sanitation services to rural areas to their nearby cities.

Author

Name

Role

Department

Aman Jha

Technical Lead

FSM

Document History

Date

Version

Document version and history

Document author

16-02-2023

1.0

Initial version

Kapil Gupta

17-02-2023

1.1

Updated the solution approach based on review

Aman Jha

Approvals

Date

Approver name

Remarks

15-02-2023

Ghanshyam

There is no need to use additional MDMS for Urban-Rural Convergence (URC). We can add the gram panchayat hierarchy in the existing MDMS boundary-data.json.

21-02-2023

Ghanshyam

We can go ahead with the approach in impel, but in product we can generalise this hierarchy. To do that, modification is required in location-service. We can also build the dynamic component in UI for showing a relative dropdown based on the hierarchy.

Use Case

As a ULB employee, he/she is creating applications to cater to the sanitation needs of local communities in urban areas. Similarly, he/she should also cater to the same sanitation needs of rural bodies which are close to the urban regions.

ULB employees need a provision in a system while creating a new application whereby they can either choose local municipalities or urban supported villages. Based on their choice, they will be able to select either locality/mohalla or gram panchayat (GP) areas from the respective master data dropdown list. The caveat here is if a ULB employee chooses a GP, then the trip amount field should be editable so that he/she can fill any logical amount based on the offline calculation instead of an auto-calculated amount that is already there in an application in case of urban bodies.

ULB employees or DSO operators should also be able to edit the number of trips. The final amount should be a multiple of the initial amount entered into an application with the number of trips.

Technical Components & Design

  • Need to update MDMS data: Boundary-data.json

    - Need to add a new child hierarchy for GP under city which will be parallel to a locality. A sample is given at the end of this document.

  • System will use the below URL to fetch the localities or GPs and their corresponding villages.

    - In the case of localities, 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, pass the boundaryType as “GP”.

    • https://dev.digit.org/egov-location/location/v11/boundarys/_search?hierarchyTypeCode=REVENUE&boundaryType=GP&tenantId=pb.amritsar

  • By default, the 'Urban' option will be pre-selected in the radio button in the above wireframe and the dropdown will have the locality/mohalla master data (existing behaviour). If an employee selects “ULB supported village”, then the locality/mohalla dropdown will be replaced by GPs and the village dropdown data on the fly.

    - Also, the "Amount per Trip" field will be editable with no pre-defined calculated value. Hence, the below API will not get called for URC flow (when “ULB supported village” is selected”):

  • Need to add configuration (mdms: UrcConfig.json) for configuring URC feature (Enable/Disable) and facilitating the switch on/off feature for the URC. MDMS data will be as shown below:

{
    "tenantId": "pg.angul",
    "moduleName": "FSM",
    "urcConfig": [{
        "URCEnable": true
    }
    ]
}
  • The above MDMS have two configurations:

    - URCEnable: This flag will be used to enable or disable the URC flow altogether. If this flag is false, then we will not have URC flow (no radio buttons will come) and the existing flow (urban) will happen as it is. If this flag is true, then the radio button will appear. By default, the 'Urban' option will be selected and if the user selects “ULB supported village", then the URC flow will continue as mentioned in above points.

  • Need to store GP and Village as part of additional details(in eg_fsm_address). Also add one more key as boundarytype in additional details to capture (Locality or GP/Village) 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 key(boundaryType) 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 boundarytype as additionalDetails 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"
          }
        ]
      }
    }
  ]
}

Was this helpful?

UI/UX Wireframe

https://dev.digit.org/fsm-calculator/v1/billingSlab/_search?tenantId=pb.amritsar&propertyType=RESIDENTIAL.APARTMENT&capacity=2000&slum=NO&_=1676626310996