Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

Faecal sludge management (FSM) is a system that enables citizen to raise a request for septic tank cleaning with there ULB’s directly or reaching out to ULB counter. Citizen can track the application, make a payment for the charges and rate the service. This document contains the details about how to setup the fsm and describes the functionalities it provides.

...

  1. Deploy the latest version of fsm

  2. Add fsm-persister.yml file in config folder in git and add that path in persister . (The file path is to be added in environment yaml file in param called persist-yml-path )

  3. If index are to be created add the indexer config path in indexer service. (The file path is to be added in environment yaml file in param called egov-indexer-yaml-repo-path)

Configuration Details

MDMS Configuration

Add master data in MDMS service with module name as FSM. Following is some sample master data for

Application Channel ( Source )

Code Block
{
    "tenantId": "pb",
    "moduleName": "FSM",
    "ApplicationChannel": [
        {
            "name": "Telephone",
            "code": "TELEPHONE",
            "active": true,
            "citizenOnly":false
        },
        {
            "name": "Counter",
            "code": "COUNTER",
            "active": true,
            "citizenOnly":false
        },
        {
            "name": "Online",
            "code": "ONLINE",
            "active": true,
            "citizenOnly":true
        }
    ]
}


CheckList ( Checklist to be answered by citizen while rating )

Code Block
{
	"tenantId": "pb",
	"moduleName": "FSM",
	"CheckList": [{
			"code": "SPILAGE",
			"active": true,
			"required": true,
			"type": "SINGLE_SELECT",
			"options": [
				"YES",
				"NO",
				"NA"
			]
		},
		{
			"code": "SAFETY_GEARS_USED",
			"active": true,
			"type": "MULTI_SELECT",
			"required": true,
			"options": [
				"EYE_GEAR",
				"HAND_GLOVES",
				"NOSE_MASK"
			]
		}
	]
}


Config ( Configuration at application level )

Code Block
{
    "tenantId": "pb",
    "moduleName": "FSM",
    "Config": [
        {
            "code":"noOfTrips",
            "override":false,
            "default":1,
            "active":true,
            "description":"override:true indicates, noOfTrips poperty is allowed to override in FSM."
        },
        {
            "code":"additionalDetails.tripAmount",
            "override":false,
            "active":true,
            "description":"override:true indicates, tripAmount poperty is allowed to override in FSM."
        },
        {
            "code":"slumName",
            "override":true,
            "active":true,
            "description":"override:true indicates, tripAmount poperty is allowed to override in FSM."
        },
        {
            "code":"ALLOW_MODIFY",
            "WFState":"CREATED",
            "override":[
                "propertyUsage",
                "vehicleType",
                "sanitationtype",
                "address.pincode",
                "address.city",
                "address.locality",
                "address.street",
                "address.doorNo",
                "address.landmark",
                "pitDetail"
            ],
            "active":true,
            "description":"properties in override allowed to modify when FSM application moving from CREATED Status to next status."
        }
        
    ]
}


FSTP Plant Info ( FSTP information for each city )

Code Block
{
    "tenantId": "pb",
    "moduleName": "FSM",
    "FSTPPlantInfo": [
        {
            "PlantCode": "AMR001",
            "PlantName": "Amritsar FSTP",
            "active": true,
            "PlantType":"FSTP",
            "PlantLocation":"Amritsar",
            "PlusCode":"JQ2R+7G Khapar Kheri, Punjab",
            "PlantOperationalTimings":"10.00am-08.00pm",
            "PlantOperationalCapacityKLD":"50",
            "ULBS":"ppb.jalandhar,pb.amritsar"
        },
        {
            "PlantCode": "MOH002",
            "PlantName": "Mohali SeTPP",
            "active": true,
            "PlantType":"SeTP",
            "PlantLocation":"Mohali",
            "PlusCode":"MPFQ+V2 Sahibzada Ajit Singh Nagar, Punjab",
            "PlantOperationalTimings":"10.00am-06.00pm",
            "PlantOperationalCapacityKLD":"100",
            "ULBS":"pb.mohali"
        }
    ]
}


PitType ( Type of pit )

Code Block
{
    "tenantId": "pb",
    "moduleName": "FSM",
    "PitType": [
        {
            "name": "Conventional septic tank",
            "code": "CONVENTIONAL_SPECTIC_TANK",
            "active": true,
            "dimension":"lbd"
        },
        {
            "name": "Septic tank with soak pit",
            "code": "SEPTIC_TANK_WITH_SOAK_PIT",
            "active": true,
            "dimension":"dd"
        }
    ]
}


Property Type

Code Block
{
  "tenantId": "pb",
  "moduleName": "FSM",
  "PropertyType": [
    {
      "name": "Residential",
      "code": "RESIDENTIAL",
      "active": true,
      "minAmount":"100",
      "maxAmount":"500"
    },
     {
      "name": "Independent House",
      "code": "RESIDENTIAL.INDEPENDENT_HOUSE",
      "active": true,
      "propertyType": "RESIDENTIAL",
      "minAmount":"100",
      "maxAmount":"300"
    },
    {
      "name": "Apartment",
      "code": "RESIDENTIAL.APARTMENT",
      "active": true,
      "propertyType": "RESIDENTIAL",
      "minAmount":"400",
      "maxAmount":"600"
    },
    {
      "name": "Row Houses",
      "code": "RESIDENTIAL.ROW_HOUSES",
      "active": true,
      "propertyType": "RESIDENTIAL",
      "minAmount":"700",
      "maxAmount":"900"
    },
    {
      "name": "Commercial",
      "code": "COMMERCIAL",
      "active": true,
      "minAmount":"2000",
      "maxAmount":"5000"
    },
    {
      "name": "Community Toilets",
      "code": "COMMERCIAL.COMMUNITY_TOILETS",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"1000",
      "maxAmount":"1200"
    },
    {
      "name": "Hotel",
      "code": "COMMERCIAL.HOTEL",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"1300",
      "maxAmount":"1500"
    },
    {
      "name": "Restaurant",
      "code": "COMMERCIAL.RESTAURANT",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"1600",
      "maxAmount":"1800"
    },
    {
      "name": "Shopping Mall",
      "code": "COMMERCIAL.SHOPPING_MALL",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"1900",
      "maxAmount":"2100"
    },
    {
      "name": "Community hall",
      "code": "COMMERCIAL.COMMUNITY_HALL",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"2200",
      "maxAmount":"2500"
    },
    {
      "name": "Bank",
      "code": "COMMERCIAL.BANK",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"2600",
      "maxAmount":"2800"
    },
    {
      "name": "Private office",
      "code": "COMMERCIAL.PRIVATE_OFFICE",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"2900",
      "maxAmount":"3200"
    },
    {
      "name": "Market",
      "code": "COMMERCIAL.MARKET",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"3300",
      "maxAmount":"3500"
    },
    {
      "name": "Hostel",
      "code": "COMMERCIAL.HOSTEL",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"3600",
      "maxAmount":"3900"
    },
    {
      "name": "Warehouse",
      "code": "COMMERCIAL.WAREHOUSE",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"400",
      "maxAmount":"4200"
    },
    {
      "name": "Petrol pumps",
      "code": "COMMERCIAL.PETROL_PUMPS",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"4300",
      "maxAmount":"4500"
    },
    {
      "name": "Resort",
      "code": "COMMERCIAL.RESORT",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"4600",
      "maxAmount":"4800"
    },
    {
      "name": "Theme park",
      "code": "COMMERCIAL.THEME_PARK",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"4900",
      "maxAmount":"5100"
    },
    {
      "name": "Sports center",
      "code": "COMMERCIAL.SPORTS_CENTER",
      "active": true,
      "propertyType": "COMMERCIAL",
      "minAmount":"5200",
      "maxAmount":"5500"
    },
     {
      "name": "Institutional",
      "code": "INSTITUTIONAL",
      "active": true,
      "minAmount":"1000",
      "maxAmount":"3000"
    },
     {
      "name": "Temple",
      "code": "INSTITUTIONAL.TEMPLE",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"5600",
      "maxAmount":"5900"
    },
     {
      "name": "Mosque",
      "code": "INSTITUTIONAL.MOSQUE",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"6000",
      "maxAmount":"6200"
    },
     {
      "name": "Church",
      "code": "INSTITUTIONAL.CHURCH",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"6300",
      "maxAmount":"6500"
    },
     {
      "name": "Gurudwara",
      "code": "INSTITUTIONAL.GURUDWARA",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"6600",
      "maxAmount":"6800"
    },
     {
      "name": "Monastery",
      "code": "INSTITUTIONAL.MONASTERY",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"6900",
      "maxAmount":"7200"
    },
     {
      "name": "School",
      "code": "INSTITUTIONAL.SCHOOL",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"7300",
      "maxAmount":"7500"
    },
     {
      "name": "College",
      "code": "INSTITUTIONAL.COLLEGE",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"7600",
      "maxAmount":"7900"
    },
     {
      "name": "University",
      "code": "INSTITUTIONAL.UNIVERSITY",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"8000",
      "maxAmount":"8200"
    },
     {
      "name": "Anganwadi",
      "code": "INSTITUTIONAL.ANGANWADI",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"8300",
      "maxAmount":"8500"
    },
     {
      "name": "Training Institutes",
      "code": "INSTITUTIONAL.TRAINING_INSTITUTES",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"8600",
      "maxAmount":"8800"
    },
     {
      "name": "Hospital",
      "code": "INSTITUTIONAL.HOSPITAL",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"8900",
      "maxAmount":"9200"
    },
     {
      "name": "Nursing home",
      "code": "INSTITUTIONAL.NURSING_HOME",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"9300",
      "maxAmount":"9500"
    },
     {
      "name": "Community health center",
      "code": "INSTITUTIONAL.COMMUNITY_HEALTH_CENTER",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"9400",
      "maxAmount":"9600"
    },
     {
      "name": "Jail",
      "code": "INSTITUTIONAL.JAIL",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"9700",
      "maxAmount":"1000"
    },
     {
      "name": "Police station",
      "code": "INSTITUTIONAL.POLICE_STATION",
      "active": true,
      "propertyType": "INSTITUTIONAL",
      "minAmount":"10100",
      "maxAmount":"10500"
    }
  
  ]
}


Slum ( Slums mapped to the locality of the city )

Code Block
{
	"tenantId": "pb",
	"moduleName": "FSM",
	"Slum": [{
			"code": "SL0001",
			"active": true,
			"name": "Kathagada juanga sahi",
			"locality": "SUN20"
		},
		{
			"code": "SL0002",
			"active": true,
			"name": "Kathagada Parbatia Sahi",
			"locality": "SUN20"
		},
		{
			"code": "SL0003",
			"active": true,
			"name": "Gangadhar Sahi",
			"locality": "SUN35"
		},
		{
			"code": "SL0004",
			"active": true,
			"name": "Pandab Nagar",
			"locality": "SUN35"
		},
		{
			"code": "SL0005",
			"active": true,
			"name": "Haridakhandi Harijana sahi",
			"locality": "SUN35"
		},
		{
			"code": "SL0006",
			"active": true,
			"name": "Haridakhandi Kadalibada Sahi",
			"locality": "SUN55"
		},
		{
			"code": "SL0007",
			"active": true,
			"name": "Haridakhandi Bada sahi",
			"locality": "SUN55"
		},
		{
			"code": "SL0008",
			"active": true,
			"name": "Haridakhandi Redika Sahi",
			"locality": "SUN55"
		},
		{
			"code": "SL0009",
			"active": true,
			"name": "Golapali Sahi",
			"locality": "SUN18"
		},
		{
			"code": "SL0010",
			"active": true,
			"name": "Surya Nagar",
			"locality": "SUN18"
		},
		{
			"code": "SL0011",
			"active": true,
			"name": "Damba Sahi",
			"locality": "SUN18"
		},
		{
			"code": "SL0012",
			"active": true,
			"name": "Raju Dhoba Sahi",
			"locality": "SUN08"
		}
	]
}


Business Service / Workflow Configuration

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

Code Block
{
  "RequestInfo": {
    "apiId": "Rainmaker",
    "action": "",
    "did": 1,
    "key": "",
    "msgId": "20170310130900|en_IN",
    "requesterId": "",
    "ts": 1513579888683,
    "ver": ".01",
    "authToken": "{{devAuth}}",
    "userInfo": {
      "id": 73,
      "userName": null,
      "name": null,
      "type": "EMPLOYEE",
      "mobileNumber": null,
      "emailId": null,
      "roles": [
        {
          "id": 2,
          "name": "Customer Support Representative",
          "code": null,
          "tenantId": null
        }
      ],
      "tenantId": null,
      "uuid": "uuid"
    }
  },
  "BusinessServices": [
   {
    "tenantId": "pb.amritsar",
    "uuid": "047a541b-ed5e-46aa-9fee-24c9674be9c3",
    "businessService": "FSM",
    "business": "fsm",
    "businessServiceSla": 5184000000,
    "states": [
        {
            "tenantId": "pb.amritsar",
            
            "sla": null,
            "state": null,
            "applicationStatus": null,
            "docUploadRequired": false,
            "isStartState": true,
            "isTerminateState": false,
            "isStateUpdatable": true,
            "actions": [
                {
                   
                    "tenantId": "pb.amritsar",
                    "action": "CREATE",
                    "nextState": "CREATED",
                    "roles": [
                        "CITIZEN"
                    ]
                },
                {
                  
                    "tenantId": "pb.amritsar",
                    "action": "APPLY",
                    "nextState": "PENDING_APPL_FEE_PAYMENT",
                    "roles": [
                        "FSM_CREATOR_EMP"
                    ]
                }
            ]
        },
        {
           
            "tenantId": "pb.amritsar",
            "sla": null,
            "state": "CREATED",
            "applicationStatus": "CREATED",
            "docUploadRequired": false,
            "isStartState": false,
            "isTerminateState": false,
            "isStateUpdatable": true,
            "actions": [
                {
                    "tenantId": "pb.amritsar",
                    "action": "SUBMIT",
                    "nextState": "PENDING_APPL_FEE_PAYMENT",
                    "roles": [
                        "FSM_EDITOR_EMP"
                    ]
                },
                {
                    "tenantId": "pb.amritsar",
                    "action": "REJECT",
                    "nextState": "REJECTED",
                    "roles": [
                        "FSM_ADMIN"
                    ]
                }
            ]
        },
        {
            
            "tenantId": "pb.amritsar",
            "sla": null,
            "state": "PENDING_APPL_FEE_PAYMENT",
            "applicationStatus": "PENDING_APPL_FEE_PAYMENT",
            "docUploadRequired": false,
            "isStartState": false,
            "isTerminateState": false,
            "isStateUpdatable": true,
            "actions": [
                {
                    "tenantId": "pb.amritsar",
                    "action": "CANCEL",
                    "nextState": "CANCELED",
                    "roles": [
                        "FSM_ADMIN"
                    ]
                },
                {
                    "tenantId": "pb.amritsar",
                    "action": "PAY",
                    "nextState": "ASSIGN_DS0",
                    "roles": [
                        "CITIZEN",
                        "FSM_COLLECTOR"
                    ]
                },
                {
                    "tenantId": "pb.amritsar",
                    "action": "SENDBACK",
                    "nextState": "CREATED",
                    "roles": [
                        "FSM_ADMIN"
                    ]
                }
            ]
        },
        {
            "tenantId": "pb.amritsar",
            "sla": null,
            "state": "ASSING_DSO",
            "applicationStatus": "ASSING_DSO",
            "docUploadRequired": false,
            "isStartState": false,
            "isTerminateState": false,
            "isStateUpdatable": true,
            "actions": [
                {
                    "tenantId": "pb.amritsar",
                    "action": "CANCEL",
                    "nextState": "CANCELED",
                    "roles": [
                        "FSM_ADMIN"
                    ]
                },
                {
                    "tenantId": "pb.amritsar",
                    "action": "ASSIGN",
                    "nextState": "PENDING_DSO_APPROVAL",
                    "roles": [
                        "FSM_EDITOR_EMP"
                    ]
                },
                {
                    "tenantId": "pb.amritsar",
                    "action": "SENDBACK",
                    "nextState": "PENDING_APPL_FEE_PAYMENT",
                    "roles": [
                        "FSM_ADMIN"
                    ]
                }
            ]
        },
        {
            "tenantId": "pb.amritsar",
            "sla": null,
            "state": "DSO_REJECTED",
            "applicationStatus": "DSO_REJECTED",
            "docUploadRequired": false,
            "isStartState": false,
            "isTerminateState": false,
            "isStateUpdatable": true,
            "actions": [
                {
                    "tenantId": "pb.amritsar",
                    "action": "ASSIGN",
                    "nextState": "PENDING_DSO_APPROVAL",
                    "roles": [
                        "FSM_EDITOR_EMP"
                    ]
                },
                {
                    "tenantId": "pb.amritsar",
                    "action": "CANCEL",
                    "nextState": "CANCELED",
                    "roles": [
                        "FSM_ADMIN"
                    ]
                },
                {
                    "tenantId": "pb.amritsar",
                    "action": "SENDBACK",
                    "nextState": "PENDING_DSO_APPROVAL",
                    "roles": [
                        "FSM_ADMIN"
                    ]
                }
            ]
        },
        {
            "tenantId": "pb.amritsar",
            "sla": null,
            "state": "DSO_INPROGRESS",
            "applicationStatus": "DSO_INPROGRESS",
            "docUploadRequired": false,
            "isStartState": false,
            "isTerminateState": false,
            "isStateUpdatable": true,
            "actions": [
                {
                    "tenantId": "pb.amritsar",
                    "action": "COMPLETED",
                    "nextState": "CITIZEN_FEEDBACK_PENDING",
                    "roles": [
                        "FSM_DSO",
                        "FSM_EDITOR_EMP"
                    ]
                },
                {
                    "tenantId": "pb.amritsar",
                    "action": "DECLINE",
                    "nextState": "ASSIGN_DS0",
                    "roles": [
                        "FSM_DSO"
                    ]
                },
                {
                    "tenantId": "pb.amritsar",
                    "action": "CANCEL",
                    "nextState": "CANCELED",
                    "roles": [
                        "FSM_ADMIN"
                    ]
                }

...


            ]
       

...

 },
        {
            "tenantId": "pb.amritsar",

...


            

...

"sla": 

...

null,
            

...

"

...

state": "PENDING_DSO_APPROVAL",
            

...

"applicationStatus": "PENDING_DSO_APPROVAL",
            "docUploadRequired": false,
            "

...

isStartState": false,
            "isTerminateState": false,
     

...

       "isStateUpdatable": true,
        

...

    "actions": [
       

...

         

...

{
       

...

             "tenantId": "pb.amritsar",
                    "

...

action": 

...

"DSO_ACCEPT",
            

...

        "nextState": "

...

DSO_

...

INPROGRESS",
            

...

        "roles": [
     

...

 

...

             

...

 

...

    "FSM_DSO"
        

...

 

...

           ]
 

...

 

...

             

...

 },
                {
                    "tenantId": "pb.amritsar",
                    "action": "

...

CANCEL",
                    "nextState": "

...

CANCELED",
                    "roles": [
                        "FSM_

...

ADMIN"
                    ]
                },
                {
                    "tenantId": "pb.amritsar",
                    "action": "

...

SENDBACK",
                    "nextState": "

...

ASSIGN_DS0",
                    "roles": [
                        "FSM_ADMIN"
                    ]
                },
                {
                    "tenantId": "pb.amritsar",
                    "action": "

...

DSO_REJECT",
                    "nextState": "

...

DSO_

...

REJECTED",
                    "roles": [
                        "FSM_

...

DSO"
                    ]
                }

...


            ]
   

...

     },
        

...

{
   

...

        
            "

...

tenantId": "

...

pb.amritsar",
            "sla": null,
            "

...

state": "

...

COMPLETED",
            "applicationStatus": "COMPLETED",
      

...

 

...

     "docUploadRequired": false,
            

...

"isStartState": false,
            "isTerminateState": true,
     

...

       "isStateUpdatable": false,
        

...

    

...

"actions": null
        },
        {

...


            

...

"tenantId": "pb.amritsar",
            "sla": null,
            "state": "

...

REJECTED",
            "applicationStatus": "

...

REJECTED",
            "docUploadRequired": false,
            "isStartState": false,
            "isTerminateState": true,
            "isStateUpdatable": false,
            "actions": null
        },
            {
                "tenantId": "pb.amritsar",
                "sla": null,
                "state": "

...

CANCELED",
                "applicationStatus": "

...

CANCELED",
                "docUploadRequired": false,
                "isStartState": false,
                "isTerminateState": true,
                "isStateUpdatable": false,
                "actions": null
            },
            {
                
                "tenantId": "pb.amritsar",
                "sla": null,
                "state": "

...

CITIZEN_FEEDBACK_PENDING",
                "applicationStatus": "

...

CITIZEN_FEEDBACK_PENDING",
                "docUploadRequired": false,
                "isStartState": false,
                "isTerminateState": 

...

false,
                "isStateUpdatable": false,
                "actions": 

...

[
            

...

        

...

{
                        

...

"tenantId": "pb.amritsar",

...


           

...

 

...

            

...

"

...

action": "

...

SUBMIT_FEEDBACK

...

",

...


      

...

 

...

                 "

...

nextState": 

...

"COMPLETED",
                

...

        

...

"roles": 

...

[
          

...

 

...

                 "

...

CITIZEN"

...


...

                     

...

   ]
                    

...

}
                

...

]
      

...

 

...

     }
    ]
}
  

...

]
}

Localization Setup

Using /localization/messages/v1/_upsert , add localisation (templates) for notification messages to be sent. Following are the product notification templates:

Code Block
{
  

...

"messages":[
         {
            

...

"

...

code": 

...

"FSM_SMS_CREATED_CREATE",
            "message": "Dear Applicant,Your application for cleaning septic tank/pit is created with application reference no.<2>.You will be 

...

notified to make an application fee shortly.Request is expected to be completed within 24hrs of making the payment.",
       

...

     "module": "rainmaker-common",
            "locale": "en_IN"

...

        },
        

...

  {
          

...

 

...

 

...

Using /localization/messages/v1/_upsert , add localisation (templates) for notification messages to be sent. Following are the product notification templates:

...

"

...

code": "FSM_SMS

...

_PENDING_APPL_FEE_PAYMENT_SUBMIT",
            "message": "Dear Applicant,

...

 Please pay the application fee Rs.<AMOUNT_TO_BE_PAID>/- for cleaning the septic tank/pit 

...

with 

...

request 

...

number 

...

<2>.

...

Click 

...

this 

...

link 

...

<PAY_LINK> to make 

...

the payment.Request is expected to be completed within 24hrs of making the payment.",
            "module": "rainmaker-common",
            "locale": "en_IN"
        },
        

...

{
            "code": "FSM_SMS_PENDING_APPL_FEE_PAYMENT_

...

APPLY",
            "message": "Dear Applicant, 

...

Your application 

...

for cleaning 

...

septic tank /pit is created with 

...

application number <2>.

...

Please click this link <PAY_LINK> to 

...

pay the application fee for processing the 

...

application.Request is expected to be completed within 24hrs of making the payment.",
            "module": "rainmaker-common",
            "locale": "en_IN"
        },
        {
            "code": "FSM_SMS_

...

ASSING_

...

DSO_PAY",
            "message": "Dear Applicant,

...

 Amount of Rs.<AMOUNT_TO_BE_PAID>/- is received towards the payment of cleaning septic tank /pit with reference no. <RECEIPT_NO>.You will be notified when an operator is 

...

assigned 

...

to 

...

a 

...

request. 

...

Please click this link 

...

<RECEIPT_LINK> to 

...

download the 

...

receipt",

...

 

...

 

...

 

...

 

...

 

...

 

...

 

...

 

...

 

...

 

...

 

...

 "module": "rainmaker-common",
            "locale": "en_IN"
        },
        {
            "code": "FSM_SMS_

...

DSO_INPROGRESS_DSO_

...

ACCEPT",
            "message": "Dear Applicant, 

...

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>.",
            "module": "rainmaker-common",
            "locale": "en_IN"
        },
        {
            "code": "FSM_SMS_

...

CITIZEN_

...

FEEDBACK_

...

PENDING_

...

COMPLETED",
            "message": "Dear Applicant, 

...

Your request for cleaning septic tank/pit 

...

is completed.Please take some time to 

...

rate 

...

us using the link <FSM_APPL_LINK>.",
            "module": "rainmaker-common",
            "locale": "en_IN"
        },
        {
            "code": "FSM_SMS_

...

REJECTED_REJECT",
            "message": "Dear Applicant, 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.",
            "module": "rainmaker-common",
            "locale": "en_IN"
        },
        {
            "code": "FSM_SMS_

...

CANCELED_

...

CANCEL",
            "message": "Dear Applicant, 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.",
            "module": "rainmaker-common",
            "locale": "en_IN"
        }

...


    

...

]
}

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.


Action Configuration

Code Block
{
      "

...

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": ""
    },  


Role Action Mapping

Code Block
[
 {
 

...

   "rolecode": "CITIZEN",
    "

...

actionid": "{{

...

PLACEHOLDER1}}",
    

...

"

...

actioncode": "

...

",
    

...

"

...

tenantId": "

...

pb"
  },
  {
    "

...

rolecode": "FSM

...

_CREATOR_EMP",

...


    "

...

actionid": 

...

"{{PLACEHOLDER1}}",
    

...

"

...

actioncode": "",
    

...

"tenantId": "

...

pb"

...


  

...

},
  {
    "

...

rolecode": "CITIZEN",
    

...

"

...

actionid": "

...

{{PLACEHOLDER2}}",
    

...

"

...

actioncode": "",
    "tenantId": "pb"
  },
 

...

 

...

{
    "rolecode": "

...

FSM_CREATOR_EMP",
    "actionid": "{{

...

PLACEHOLDER2}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

EDITOR_EMP",
    "actionid": "{{

...

PLACEHOLDER2}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "

...

FSM_VIEW_EMP",
    "actionid": "{{PLACEHOLDER2}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

ADMIN",
    "actionid": "{{PLACEHOLDER2}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

DSO",
    "actionid": "{{PLACEHOLDER2}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

DRIVER",
    "actionid": "{{PLACEHOLDER2}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

EMP_FSTPO",
    "actionid": "{{PLACEHOLDER2}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

COLLECTOR",
    "actionid": "{{PLACEHOLDER2}}",
    "actioncode": "",
    "tenantId": "pb"
  },
   {
    "rolecode": "FSM_

...

EDITOR_EMP",
    "actionid": "{{

...

PLACEHOLDER3}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

ADMIN",
    "actionid": "{{

...

PLACEHOLDER3}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

DSO",
    "actionid": "{{

...

PLACEHOLDER3}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  

...

{
    "rolecode": "FSM_

...

DRIVER",
    "actionid": "{{PLACEHOLDER3}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "

...

CITIZEN",
    "actionid": "{{PLACEHOLDER3}}",
    "actioncode": "",
    "tenantId": "pb"
  },
   {
    "rolecode": "FSM_

...

ADMIN",
    "actionid": "{{

...

PLACEHOLDER4}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

DSO",
    "actionid": "{{

...

PLACEHOLDER4}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "

...

FSM_DRIVER",
    "actionid": "{{

...

PLACEHOLDER4}}",
    "actioncode": "",
    "tenantId": "pb"
  },

...


  {
    "rolecode": "FSM_

...

COLLECTOR",
    "actionid": "{{PLACEHOLDER4}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "

...

CITIZEN",
    "actionid": "{{PLACEHOLDER4}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

EDITOR_EMP",
    "actionid": "{{PLACEHOLDER4}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_VIEW_

...

EMP",
    "actionid": "{{PLACEHOLDER4}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "CITIZEN",
    "actionid": "{{

...

PLACEHOLDER5}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

CREATOR_EMP",
    "actionid": "{{

...

PLACEHOLDER5}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

EDITOR_EMP",
    "actionid": "{{

...

PLACEHOLDER5}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "

...

FSM_VIEW_EMP",
    "actionid": "{{PLACEHOLDER5}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

ADMIN",
    "actionid": "{{PLACEHOLDER5}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

DSO",
    "actionid": "{{PLACEHOLDER5}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

DRIVER",
    "actionid": "{{PLACEHOLDER5}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

EMP_FSTPO",
    "actionid": "{{PLACEHOLDER5}}",
    "actioncode": "",
    "tenantId": "pb"
  },
  {
    "rolecode": "FSM_

...

COLLECTOR",
    "actionid": "{{PLACEHOLDER5}}",
    "actioncode": "",
    "tenantId": "pb"
  }

...


]

Infra Ops Configuration


Configurations that we can manage through values.yml fsm-calculator in infraops repo as follows
values.yml for fms-calculator can be found here

Description

name in values.yml

Current Value

id-gen host, to generate the application number

EGOV_IDGEN_HOST

egov-idgen from egov-service-host

Kafka Consumer Group

SPRING_KAFKA_CONSUMER_GROUP_ID

egov-fsm-service

kafka topic to which service push data to save new fsm application

PERSISTER_SAVE_FSM_TOPIC

save-fsm-application

kafka topic to which service push data to save workflow status

PERSISTER_UPDATE_FSM_WORKFLOW_TOPIC

update-fsm-workflow-application

kafka topic to which service push data to update the existing fsm application

PERSISTER_UPDATE_FSM_TOPIC

update-fsm-application

mdms service host

EGOV_MDMS_HOST

egov-mdms-service from egov-service-host

billing-service host

EGOV_BILLINGSERVICE_HOST

billing-service from egov-service-host

fsm-calculator service host

EGOV_FSM_CALCULATOR_HOST

fsm-calculator from egov-service-host

workflow v2 service host

WORKFLOW_CONTEXT_PATH

egov-workflow-v2 from egov-service-host

ui host, to return send the url of new application in sms notification

EGOV_UI_APP_HOST

egov-services-fqdn-name from egov-service-host

vendor service host, to get DSO details

EGOV_VENDOR_HOST

vendor from egov-service-host

Vehicle service host, to get vehicle details and manage vehicleTrip

EGOV_VEHICLE_HOST

vehicle from egov-service-host

Collection service host, to get the payment details

EGOV_COLLECTION_SERVICE_HOST

collection-services from egov-service-host

localization service host, to get the locale data

EGOV_LOCALIZATION_HOST

egov-localization from egov-service-host

user service host, to get the locale data

EGOV_USER_HOST

egov-user from egov-service-host

pdf service host, to get the locale data

EGOV_PDF_HOST

pdf-service from egov-service-host

url shortening service host, to get the short url for the long once

EGOV_URL_SHORTNER_HOST

egov-url-shortening from egov-service-host

Sample values.yml
Code Block
 - name: EGOV_IDGEN_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: egov-idgen
  - name: EGOV_MDMS_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: egov-mdms-service
  - name: EGOV_URL_SHORTNER_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: egov-url-shortening
  - name: EGOV_PDF_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: pdf-service
  - name: EGOV_USER_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: egov-user
  - name: EGOV_LOCATION_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: egov-location
  - name: EGOV_LOCALIZATION_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: egov-localization
  - name: EGOV_BILLINGSERVICE_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: billing-service
  - name: EGOV_COLLECTION_SERVICE_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: collection-services
  - name: EGOV_FSM_CALCULATOR_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: fsm-calculator
  - name: EGOV_VEHICLE_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: vehicle
  - name: EGOV_VENDOR_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: vendor
  - name: EGOV_UI_APP_HOST
    valueFrom:
      configMapKeyRef:
        name: egov-config
        key: egov-services-fqdn-name
  - name: WORKFLOW_CONTEXT_PATH
    valueFrom:
      configMapKeyRef:
        name: egov-service-host
        key: egov-workflow-v2
  - name: WORKFLOW_TRANSITION_PATH
    value: "egov-workflow-v2/egov-wf/process/_transition"
  - name: EGOV_IDGEN_FSM_APPLICATIONNUM_FORMAT
    value: "[CITY.CODE]-FSM-[cy:yyyy-MM-dd]-[SEQ_EGOV_FSM]"
  - name: SPRING_KAFKA_CONSUMER_GROUP_ID
    value: egov-fsm-service
  - name: PERSISTER_SAVE_FSM_TOPIC
    value: save-fsm-application
  - name: PERSISTER_UPDATE_FSM_TOPIC
    value: update-fsm-application
  - name: PERSISTER_UPDATE_FSM_WORKFLOW_TOPIC
    value: update-fsm-workflow-application

Users

User

Role

Description

How to create

FSM Creator

FSM_CREATOR_EMP

Can create FSM Application on behalf of Citizen

Through HRMS with role

FSM Editor

FSM_EDITOR_EMP

  • Can edit the application created by citizen for demand generation

  • Assing/ Re-Assign DSO

  • Complete the Application

Through HRMS with role

FSM Admin

FSM_ADMIN

  • Can cancel the application at any stage of workflow

Through HRMS with role

DSO

FSM_DSO

  • can accept/Reject the assigned Application

  • can complete the FSM Application

Through vendor service, use the create DSO Request from postman Collection

FSTP Operator

FSM_EMP_FSTPO

  • Can mark the vehicle Trip as disposed. Not FSM Service User

Through HRMS with role

Collector

FSM_COLLECTOR

  • Can collect the payment amount for application based on demand

Through HRMS with role

- User with userType employee and role FSM_CREATOR_EMP role,

Integration

Integration Scope

...

Title 

Link

 Workflow Technical Document

 Workflow Service

 User Technical Document

User Service  

MDMS Technical Document

NEEDS TO BE UPDATED

IDGen Technical Document

NEEDS TO BE UPDATED

Localization Technical Document

NEEDS TO BE UPDATED

Persister Technical Document

NEEDS TO BE UPDATED

SMS Notification Technical Document

NEEDS TO BE UPDATED

HRMS Technical Document

NEEDS TO BE UPDATED

API List

...