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.
...
Deploy the latest version of fsm
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
) and restart the egov-persister service.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
) and restart egov-indexer service.
Configuration Details
MDMS Configuration
Add master data in MDMS service with module name as FSM
and restart the egov-mdms-service . Following is some sample master data for
...
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" ] }, ] } |
...
Code Block |
---|
{ "tenantId { "code": "pbNUMBER_OF_TRIPS", "active": "moduleNametrue, "type": "FSMDROP_DOWN", "required": "Configfalse, "options": [ { "code":"noOfTrips", " "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" ] } ] } |
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."
}
]
} |
...
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":"ppbpb.jalandhar,pb.amritsar,pb.nayagaon" }, { "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,pb.phagwara,pb.nawanshahr,pb.derabassi" } ] } |
PitType ( Type of pit )
...
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,172800000, "states": [ { "tenantId": "pb.amritsar", "sla": null, "state": null, "applicationStatus": null, "docUploadRequired": false, "isStartState": true, "isTerminateState": false, "isStateUpdatable": true, "actions": [ { { "tenantId"tenantId": "pb.amritsar", "action": "CREATEAPPLY", "nextState": "CREATEDPENDING_APPL_FEE_PAYMENT", "roles": [ "CITIZEN" "FSM_CREATOR_EMP" ] }, }, { { "tenantId": "pb.amritsar", "action": "APPLYCREATE", "nextState": "PENDING_APPL_FEE_PAYMENTCREATED", "roles": [ "FSM_CREATOR_EMP" "CITIZEN" ] ] } ] }, { ] "tenantId": "pb.amritsar", }, "sla": null, { "state": "CREATED", "applicationStatustenantId": "CREATEDpb", "docUploadRequired": false, "sla": null, "isStartState": false, "isTerminateStatestate": false"CREATED", "isStateUpdatable": true, "applicationStatus": "CREATED", "actions": [ "docUploadRequired": false, { "tenantIdisStartState": "pb.amritsar"false, "actionisTerminateState": "SUBMIT"false, "nextStateisStateUpdatable": "PENDING_APPL_FEE_PAYMENT"true, "rolesactions": [ "FSM_EDITOR_EMP"{ ] }"tenantId": "pb", { "action": "REJECT", "tenantId": "pb.amritsar", "actionnextState": "REJECTREJECTED", "nextState": "REJECTED", "roles": [ "roles": [ "FSM_ADMIN" ] ] } ] }, }, { { "tenantId": "pb.amritsar", "slatenantId": null"pb", "state": "PENDING_APPL_FEE_PAYMENT", "applicationStatusaction": "PENDING_APPL_FEE_PAYMENTSUBMIT", "docUploadRequired": false, "isStartStatenextState": false,"PENDING_APPL_FEE_PAYMENT", "isTerminateState": false, "isStateUpdatableroles": true,[ "actions": [ { "FSM_EDITOR_EMP" "tenantId": "pb.amritsar", ] "action": "CANCEL", } "nextState": "CANCELED", ] "roles": [ }, { "FSM_ADMIN" "tenantId": "pb", ] }, "sla": null, { "tenantId": "pb.amritsar"state": "PENDING_APPL_FEE_PAYMENT", "actionapplicationStatus": "PAYPENDING_APPL_FEE_PAYMENT", "nextStatedocUploadRequired": "ASSIGN_DS0"false, "rolesisStartState": [ false, "CITIZENisTerminateState": false, "FSM_COLLECTOR"isStateUpdatable": true, ]"actions": [ }, { { "tenantId": "pb.amritsar", "action": "SENDBACKREJECT", "nextState": "CREATEDREJECTED", "roles": [ "FSM_ADMIN" ] ] } ] }, }, { { "tenantId": "pb.amritsar", "sla": null, "statetenantId": "ASSING_DSOpb", "applicationStatus": "ASSING_DSO", "docUploadRequiredaction": false"SENDBACK", "isStartState": false, "isTerminateStatenextState": false"CREATED", "isStateUpdatable": true, "actionsroles": [ { "tenantIdFSM_ADMIN": "pb.amritsar", "action": "CANCEL", ] "nextState": "CANCELED", }, "roles": [ { "FSM_ADMIN" "tenantId": "pb", ] }, "action": "PAY", { "tenantIdnextState": "pb.amritsarASSING_DSO", "actionroles": "ASSIGN",[ "nextState": "PENDING_DSO_APPROVAL", "CITIZEN", "roles": [ "FSM_EDITOR_EMPCOLLECTOR" ] ] }, {} ] "tenantId": "pb.amritsar", }, "action": "SENDBACK", { "nextStatetenantId": "PENDING_APPL_FEE_PAYMENTpb", "rolessla": [null, "state": "FSMASSING_ADMINDSO", ] "applicationStatus": "ASSING_DSO", } "docUploadRequired": false, ] }, "isStartState": false, { "tenantId": "pb.amritsar", "isTerminateState": false, "sla": null, "stateisStateUpdatable": "DSO_REJECTED"true, "applicationStatus": "DSO_REJECTED", "docUploadRequiredactions": false,[ "isStartState": false, { "isTerminateState": false, "isStateUpdatable": true, "actionstenantId": ["pb", { "action": "CANCEL", "tenantId": "pb.amritsar", "actionnextState": "ASSIGNCANCELED", "nextStateroles": "PENDING_DSO_APPROVAL", [ "roles": [ "FSM_ADMIN" "FSM_EDITOR_EMP" ] ] }, { "tenantId": "pb.amritsar", "action": "CANCELASSIGN", "nextState": "CANCELEDPENDING_DSO_APPROVAL", "roles": [ "FSM_EDITOR_ADMINEMP" ] ] }, } { ] "tenantId": "pb.amritsar", }, "action": "SENDBACK", { "nextStatetenantId": "PENDING_DSO_APPROVALpb", "rolessla": null, [ "state": "DSO_REJECTED", "FSM_ADMIN" "applicationStatus": "DSO_REJECTED", ] }"docUploadRequired": false, ] "isStartState": }false, { "tenantIdisTerminateState": "pb.amritsar"false, "sla": null, "isStateUpdatable": true, "state": "DSO_INPROGRESS", "applicationStatusactions": "DSO_INPROGRESS",[ "docUploadRequired": false, { "isStartState": false, "isTerminateState": false, "isStateUpdatabletenantId": true"pb", "actions": [ "currentState": "DSO_REJECTED", { "tenantId": "pb.amritsar", "action": "CANCEL", "actionnextState": "COMPLETEDCANCELED", "nextState": "CITIZEN_FEEDBACK_PENDING", "roles": [ "roles": [ "FSM_ADMIN" "FSM_DSO", ] "FSM_EDITOR_EMP" ] }, }, { { "tenantId": "pb.amritsar", "action "currentState": "DECLINEDSO_REJECTED", "nextStateaction": "ASSIGN_DS0REASSING", "rolesnextState": ["PENDING_DSO_APPROVAL", "FSM_DSOroles": [ ] "FSM_EDITOR_EMP" }, { ] "tenantId": "pb.amritsar", }, "action": "CANCEL", { "nextState": "CANCELED", "tenantId": "roles": [pb", "currentState": "FSMDSO_ADMINREJECTED", ] "action": "SENDBACK", } ] },"nextState": "PENDING_DSO_APPROVAL", { "tenantIdroles": "pb.amritsar", [ "sla": null, "state": "PENDINGFSM_DSO_APPROVAL",ADMIN" "applicationStatus": "PENDING_DSO_APPROVAL", ] "docUploadRequired": false, "isStartState": false, } "isTerminateState": false, ] "isStateUpdatable": true, "actions": [ }, { "tenantId": "pb.amritsar", "actionsla": "DSO_ACCEPT"null, "nextStatestate": "DSO_INPROGRESS", "rolesapplicationStatus": [ "DSO_INPROGRESS", "FSM_DSOdocUploadRequired": false, ] "isStartState": false, }, "isTerminateState": false, { "tenantIdisStateUpdatable": "pb.amritsar"true, "actionactions": "CANCEL",[ "nextState": "CANCELED", { "roles": [ "tenantId": "pb", "FSM_ADMIN" "currentState": "DSO_INPROGRESS", ] }, "action": "SENDBACK", { "tenantIdnextState": "pb.amritsarPENDING_DSO_APPROVAL", "actionroles": "SENDBACK",[ "nextState": "ASSIGN_DS0", "FSM_ADMIN" "roles": [ ] "FSM_ADMIN" ]}, }, { { "tenantId": "pb.amritsar", "actioncurrentState": "DSO_REJECTINPROGRESS", "nextStateaction": "DSO_REJECTEDDECLINE", "rolesnextState": [ "ASSING_DSO", "FSM_DSOroles": [ ] "FSM_DSO", } ] }, {"FSM_EDITOR_EMP" "tenantId": "pb.amritsar", ] "sla": null, "state": "COMPLETED" }, "applicationStatus": "COMPLETED", { "docUploadRequired": false, "isStartState": false, "isTerminateStatetenantId": true"pb", "isStateUpdatable": false, "actionscurrentState": null "DSO_INPROGRESS", }, { "tenantIdaction": "pb.amritsarCOMPLETED", "sla": null, "statenextState": "REJECTEDCITIZEN_FEEDBACK_PENDING", "applicationStatus": "REJECTED", "docUploadRequiredroles": false, [ "isStartState": false, "isTerminateStateFSM_DSO":, true, "isStateUpdatable": false, "actions": null "FSM_EDITOR_EMP" }, { ] "tenantId": "pb.amritsar", "sla": null}, "state": "CANCELED", { "applicationStatus": "CANCELED", "docUploadRequiredtenantId": false"pb", "isStartState": false, "isTerminateStatecurrentState": true"DSO_INPROGRESS", "isStateUpdatable": false, "actions"action": null"CANCEL", }, { "nextState": "CANCELED", "tenantIdroles": "pb.amritsar", [ "sla": null, "state": "CITIZENFSM_FEEDBACK_PENDINGADMIN", "applicationStatus": "CITIZEN_FEEDBACK_PENDING", ] "docUploadRequired": false, "isStartState": false}, "isTerminateState": false, { "isStateUpdatable": false, "actionstenantId": [ "pb", { "tenantIdcurrentState": "pb.amritsarDSO_INPROGRESS", "action": "SUBMIT_FEEDBACKREASSING", "nextState": "COMPLETEDPENDING_DSO_APPROVAL", "roles": [ "CITIZEN" "FSM_EDITOR_EMP" ] ] } } ] ] } ] } ] } |
Localization Setup
...
, |
...
Code Block |
---|
{ "messages":[ { { "code": "FSM_SMS_CREATED_CREATE", "messagetenantId": "Dear Applicantpb",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.", "sla": null, "modulestate": "rainmaker-commonPENDING_DSO_APPROVAL", "locale": "en_IN" }, "applicationStatus": "PENDING_DSO_APPROVAL", { "codedocUploadRequired": "FSM_SMS_PENDING_APPL_FEE_PAYMENT_SUBMIT",false, "messageisStartState": "Dear Applicantfalse, 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.","isTerminateState": false, "moduleisStateUpdatable": "rainmaker-common"true, "locale "actions": "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.","tenantId": "pb", "currentState": "PENDING_DSO_APPROVAL", "module": "rainmaker-common", "localeaction": "enDSO_INREJECT" , }, { "codenextState": "FSM_SMS_ASSING_DSO_PAYREJECTED", "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", "roles": [ "FSM_DSO" "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>.", "moduletenantId": "rainmaker-commonpb", "locale "currentState": "enPENDING_DSO_INAPPROVAL", }, { "codeaction": "FSM_SMS_CITIZEN_FEEDBACK_PENDING_COMPLETEDDSO_ACCEPT", "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>.","nextState": "DSO_INPROGRESS", "module": "rainmaker-common", "localeroles": "en_IN"[ }, { "code": "FSM_SMS_REJECTED_REJECTDSO", "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" { }, { "codetenantId": "FSM_SMS_CANCELED_CANCEL",pb", "messagecurrentState": "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.","PENDING_DSO_APPROVAL", "action": "CANCEL", "modulenextState": "rainmaker-commonCANCELED", "localeroles": "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.
...
Code Block |
---|
{ "id": {{PLACEHOLDER1}}, "name": "Create FSM Application",FSM_ADMIN" "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", "displayNametenantId": "Search FSM Appliacationspb", "orderNumber": 1, "enabled": false, "serviceCode": "FSM", "codecurrentState": "nullPENDING_DSO_APPROVAL", "path": "" }, { "idaction": {{PLACEHOLDER3}},"REASSING", "name": "Update FSM Application", "url": "/fsm/v1/_update", "displayNamenextState": "Update FSMPENDING_DSO_APPROVAL", "orderNumber": 0, "enabled": false, "serviceCode": "FSM", "coderoles": "null",[ "path": "" }, { "id": {{PLACEHOLDER4}}, "name": "FSM Application Charge Payment Search","FSM_EDITOR_EMP" "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, "parentModuletenantId": "pb", "enabled": false, "serviceCode": "", "codesla": "null", "path": "" }, |
...
Code Block |
---|
[ { "rolecodestate": "CITIZENCOMPLETED", "actionid": "{{PLACEHOLDER1}}", "actioncodeapplicationStatus": "COMPLETED", "tenantId": "pb" }, { "rolecodedocUploadRequired": "FSM_CREATOR_EMP"false, "actionid": "{{PLACEHOLDER1}}", "actioncodeisStartState": ""false, "tenantId": "pb" }, { "rolecodeisTerminateState": "CITIZEN"true, "actionid": "{{PLACEHOLDER2}}", "actioncode": "", "tenantIdisStateUpdatable": "pb"false }, { "rolecode": "FSM_CREATOR_EMP", }, "actionid": "{{PLACEHOLDER2}}", "actioncode": "", "tenantId": "pb" { }, { "rolecode": "FSM_EDITOR_EMP", "actionid": "{{PLACEHOLDER2}}", "actioncodesla": "",null, "tenantId": "pb" }, { "rolecodestate": "FSM_VIEW_EMPREJECTED", "actionid": "{{PLACEHOLDER2}}", "actioncode": "", "tenantIdapplicationStatus": "pbREJECTED", }, { "rolecode": "FSM_ADMIN", "actioniddocUploadRequired": "{{PLACEHOLDER2}}"false, "actioncode": "", "tenantId": "pb" }, { "rolecodeisStartState": "FSM_DSO",false, "actionid": "{{PLACEHOLDER2}}", "actioncodeisTerminateState": ""true, "tenantId": "pb" }, { "rolecodeisStateUpdatable": "FSM_DRIVER",false, "actionid "actions": "{{PLACEHOLDER2}}", null "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_EMP_FSTPO", "actionid": "{{PLACEHOLDER2}}", { "actioncode": "", "tenantId": "pb" }, { "rolecodetenantId": "FSM_COLLECTORpb", "actionid": "{{PLACEHOLDER2}}", "actioncode": "", "tenantIdsla": "pb" null, }, { "rolecode": "FSM_EDITOR_EMP", "actionidstate": "{{PLACEHOLDER3}}CANCELED", "actioncode": "", "tenantId": "pb" }, { "rolecodeapplicationStatus": "FSM_ADMINCANCELED", "actionid": "{{PLACEHOLDER3}}", "actioncode": "", "tenantIddocUploadRequired": "pb" false, }, { "rolecode": "FSM_DSO", "actionidisStartState": "{{PLACEHOLDER3}}"false, "actioncode": "", "tenantId": "pb" }, { "rolecodeisTerminateState": "FSM_DRIVER"true, "actionid": "{{PLACEHOLDER3}}", "actioncode": "", "tenantIdisStateUpdatable": "pb" false, }, { "rolecode": "CITIZEN", "actionidactions": "{{PLACEHOLDER3}}", null "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_ADMIN", "actionid": "{{PLACEHOLDER4}}", "actioncode": "", "tenantId": "pb" }, { "rolecodetenantId": "FSM_DSOpb", "actionid": "{{PLACEHOLDER4}}", "actioncode": "", "tenantIdsla": "pb"null, }, { "rolecode": "FSM_DRIVER", "actionidstate": "{{PLACEHOLDER4}}CITIZEN_FEEDBACK_PENDING", "actioncode": "", "tenantId": "pb" }, { "rolecodeapplicationStatus": "FSMCITIZEN_FEEDBACK_COLLECTORPENDING", "actionid": "{{PLACEHOLDER4}}", "actioncode": "", "tenantIddocUploadRequired": "pb"false, }, { "rolecode": "CITIZEN", "actionidisStartState": "{{PLACEHOLDER4}}"false, "actioncode": "", "tenantId": "pb" }, { "rolecodeisTerminateState": "FSM_EDITOR_EMP"false, "actionid": "{{PLACEHOLDER4}}", "actioncode": "", "tenantIdisStateUpdatable": "pb" false, }, { "rolecode": "FSM_VIEW_EMP", "actionidactions": "{{PLACEHOLDER4}}", [ "actioncode": "", "tenantId": "pb" }, { "rolecode": "CITIZEN", { "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecodetenantId": "FSM_CREATOR_EMPpb", "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecodecurrentState": "FSMCITIZEN_EDITORFEEDBACK_EMPPENDING", "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecodeaction": "FSM_VIEW_EMPRATE", "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecodenextState": "FSM_ADMINCOMPLETED", "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecoderoles": "FSM_DSO",[ "actionid": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { "rolecode": "FSM_DRIVER", "actionidCITIZEN": "{{PLACEHOLDER5}}", "actioncode": "", "tenantId": "pb" }, { ] "rolecode": "FSM_EMP_FSTPO", "actionid": "{{PLACEHOLDER5}}",} "actioncode": "", "tenantId": "pb" ] }, { "rolecode": "FSM_COLLECTOR", "actionid": "{{PLACEHOLDER5}}",} "actioncode": "", ] "tenantId": "pb" } ] |
Infra Ops Configuration
...
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: } |
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 <SLA_HOURS>hrs of making the payment.", "module": "rainmaker-common", "locale": "en_IN" }, { "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 <SLA_HOURS>hrs of making the payment.", name"module": egov-service-host"rainmaker-common", key: egov-idgen - name"locale": EGOV_MDMS_HOST "en_IN" valueFrom: }, configMapKeyRef: { name: egov-service-host key: egov-mdms-service - name: EGOV_URL_SHORTNER_HOST "code": "FSM_SMS_PENDING_APPL_FEE_PAYMENT_APPLY", valueFrom: configMapKeyRef"message": "Dear Applicant, Your application for cleaning septic tank name: egov-service-host key: egov-url-shortening - name: EGOV_PDF_HOST valueFrom: configMapKeyRef: /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 <SLA_HOURS>hrs of making the payment.", name: egov-service-host "module": "rainmaker-common", key: pdf-service - name: EGOV_USER_HOST valueFrom:"locale": "en_IN" configMapKeyRef: }, name: egov-service-host { key: egov-user - name"code": EGOV_LOCATION_HOST"FSM_SMS_ASSING_DSO_PAY", valueFrom: configMapKeyRef: name: egov-service-host key: egov-location - name: EGOV_LOCALIZATION_HOST valueFrom: configMapKeyRef: "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", name: egov-service-host "module": "rainmaker-common", key: egov-localization - name: EGOV_BILLINGSERVICE_HOST "locale": "en_IN" valueFrom: configMapKeyRef: }, name: egov-service-host { key: billing-service - name"code": EGOV_COLLECTION_SERVICE_HOST"FSM_SMS_DSO_INPROGRESS_DSO_ACCEPT", valueFrom: configMapKeyRef"message": "Dear Applicant, Vehicle <VEHICLE_REG_NO> will be reaching your name: egov-service-host key: collection-services - name: EGOV_FSM_CALCULATOR_HOST valueFrom: configMapKeyRef: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>.", name"module": egov-service-host"rainmaker-common", key: fsm-calculator - name"locale": EGOV_VEHICLE_HOST"en_IN" valueFrom: }, configMapKeyRef: { name: egov-service-host key: vehicle"code": "FSM_SMS_CITIZEN_FEEDBACK_PENDING_COMPLETED", - name: EGOV_VENDOR_HOST valueFrom"message": "Dear Applicant, Your request for cleaning configMapKeyRef:septic tank/pit is completed.Please take some time to rate name: egov-service-host us using the link <FSM_APPL_LINK>.", key: vendor - name: EGOV_UI_APP_HOST "module": "rainmaker-common", valueFrom:"locale": "en_IN" configMapKeyRef: }, name: egov-config { key: egov-services-fqdn-name - name"code": WORKFLOW_CONTEXT_PATH"FSM_SMS_DSO_REJECTED_DSO_REJECT", valueFrom: configMapKeyRef: name: egov-service-host key: egov-workflow-v2 - name: WORKFLOW_TRANSITION_PATH"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.", 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
FSM can be integrated with any ULB or system which wants to track FSM application. The organisations can customise the workflow depending on there product requirements
Integration Benefits
Easy tracking and resolution FSM Application
Configurable workflow according to client requirement
Steps to Integration
Citizen/ULB Employee can file Application request using the
/fsm/v1/_create
Organisation or System can search the FSM Applications using
/fsm/v1/_search
endpointOnce the Application is files the organisation or system can call
/fsm/v1/_update
endpoint to move the application further in workflow until it get resolved
Interaction Diagram
...
Reference Docs
API Contract
Postman Collection
...
"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": ""
},
{
"id": {{PLACEHOLDER6}},
"name": "Search FSM Application",
"url": "/fsm/v1/_plainsearch",
"displayName": "Search FSM Appliacations",
"orderNumber": 1,
"enabled": false,
"serviceCode": "FSM",
"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": ""
} |
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"
},
{
"rolecode": "FSM_EDITOR_EMP",
"actionid": {{PLACEHOLDER6}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_VIEW_EMP",
"actionid": {{PLACEHOLDER6}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_ADMIN",
"actionid": {{PLACEHOLDER6}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_DSO",
"actionid": {{PLACEHOLDER6}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_DRIVER",
"actionid": {{PLACEHOLDER6}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_EMP_FSTPO",
"actionid": {{PLACEHOLDER6}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_COLLECTOR",
"actionid": {{PLACEHOLDER6}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_ADMIN",
"actionid": {{PLACEHOLDER7}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_ADMIN",
"actionid": {{PLACEHOLDER8}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_EMP_FSTPO",
"actionid": {{PLACEHOLDER8}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "PT_CEMP",
"actionid": {{PLACEHOLDER9}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "CITIZEN",
"actionid": {{PLACEHOLDER9}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SUPERUSER",
"actionid": {{PLACEHOLDER9}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_EMP_FSTPO",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_COLLECTOR",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_EDITOR_EMP",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_VIEW_EMP",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_CREATOR_EMP",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_ADMIN",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "FSM_DSO",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "PT_CEMP",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "PT_DOC_VERIFIER",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "PT_FIELD_INSPECTOR",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "PT_APPROVER",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "TL_CEMP",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "TL_DOC_VERIFIER",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "TL_FIELD_INSPECTOR",
"actionid": {{PlaceHolder10}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "TL_APPROVER",
"actionid": {{PlaceHolder10}},
"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 |
|
|
Kafka Consumer Group |
|
|
kafka topic to which service push data to save new fsm application |
|
|
kafka topic to which service push data to save workflow status |
|
|
kafka topic to which service push data to update the existing fsm application |
|
|
mdms service host |
|
|
billing-service host |
|
|
fsm-calculator service host |
|
|
workflow v2 service host |
|
|
ui host, to return send the url of new application in sms notification |
|
|
vendor service host, to get DSO details |
|
|
Vehicle service host, to get vehicle details and manage vehicleTrip |
|
|
Collection service host, to get the payment details |
|
|
localization service host, to get the locale data |
|
|
user service host, to get the locale data |
|
|
pdf service host, to get the locale data |
|
|
url shortening service host, to get the short url for the long once |
|
|
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 |
| Can create FSM Application on behalf of Citizen | Through HRMS with role |
FSM Editor |
|
| Through HRMS with role |
FSM Admin |
|
| Through HRMS with role |
DSO |
|
| Through vendor service, use the create DSO Request from postman Collection |
FSTP Operator |
|
| Through HRMS with role |
Collector |
|
| Through HRMS with role |
- User with userType employee and role FSM_CREATOR_EMP
role,
Integration
Integration Scope
FSM can be integrated with any ULB or system which wants to track FSM application. The organisations can customise the workflow depending on there product requirements
Integration Benefits
Easy tracking and resolution FSM Application
Configurable workflow according to client requirement
Steps to Integration
Citizen/ULB Employee can file Application request using the
/fsm/v1/_create
Organisation or System can search the FSM Applications using
/fsm/v1/_search
endpointOnce the Application is files the organisation or system can call
/fsm/v1/_update
endpoint to move the application further in workflow until it get resolved
Inbox api
Introduced new inbox service to get the fsm applications in registered ULB employee inbox, With this ULB employee can track the application or perform the actions based on employee role.
ULB employee can also apply the filter to check the particular state or applications or any other filter as required.
FSM apply as service
As of now we are providing fsm as adhoc service. In order to avoid multiple times user has to create the fsm request every time, In the system itself after some particular days, we will create same fsm application and if user wants service, he will pay the amount .
MDMS changes
As we mentioned above, we need to define time paramter, in order to create periodic application.For that we added the periodic service master where we will configure the time limit and either schedular is enabled or not. Please find the below configuration and location.
https://github.com/egovernments/egov-mdms-data/blob/DEV/data/pb/amritsar/FSM/PeriodicService.json
{ "tenantId": "pb.amritsar",
"moduleName": "FSM",
"PeriodicService":[
{
"timeLimit" : 864000000,
"isSchedularConfiguration":true
}
]
}
cronjob will read the cron job’s configured in the cronjobapiconfig.json and based on the schedular time it will call the api which is configured.Please find the below configuration and file location.
https://github.com/egovernments/egov-mdms-data/blob/DEV/data/pb/common-masters/CronJobAPIConfig.json
{ "jobName": "daily",
"active": "true",
"method": "POST",
"url": "http://fsm.egov:8080/fsm/v1/_schedular",
"payload": {
"RequestInfo": "{DEFAULT_REQUESTINFO}" },
"header": { "Content-Type": "application/json"
}
}
We are using fsm/v1/_schedular api. This api will read the master data for each tenant and based on the time limit configured for that tenant, it will get the all eligiable aplications and create periodic applications for those fsm applications.
Infra changes
We added new chart called mdms-read-cronjob.Please find the below chart location.
Interaction Diagram
TBD
Reference Docs
Doc Links
Title | Link |
Workflow Technical Document | |
User Technical Document | |
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 Contract | |
Postman Collection |
API List
Title | Link |
|
|
|
| |
| |
| |
| |
| |
| |
/fsm/v1/_schedular |