Faecal Sludge Management (FSM) is a system that enables a citizen to raise a request for septic tank cleaning with there ULB’s directly or by reaching out to the ULB counter. The Citizen can track the application, make a payment for the charges and rate the service. This document contains the details about how to set up the FSM services and describes the functionalities it provides.
Pre-requisites
Before you proceed with the configuration, make sure the following pre-requisites are met -
Java 8
Kafka server is up and running
egov-persister service is running and has fsm-persister config path added in it
PSQL server is running and a database is created to store FSM Application data
(Optional) Indexer config for FSM is added in egov-indexer yaml paths to index the generated data. An index is required for data visualisation in kibana or in DSS.
Following services should be up and running:
egov-user
egov-workflow-v2
egov-perister
egov-localization
egov-notification-sms
egov-mdms
egov-idgen
egov-url-shortening
vehicle
vendor
fsm-calculator
billing-service
collection-services
Key Functionalities
A Citizen can file, track and rate the application for cleaning septic tank
ULB Employee can file an application for cleaning septic tank on behalf of Citizen
ULB Employee can assign DSO to the given application with a possible service date
DSO can accept or reject the application
DSO or ULB Employee can Complete the FSM Application after cleaning the septic tank
FSM Admin in ULB can cancel the application at any stage before completing the application
ULB Employee or Admin can view the audit log of the given application
Deployment Details
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 )
If an index is 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 the module name as FSM. Following is some sample master data for Application Channel (Source).
Using /localization/messages/v1/_upsert , add localisation (templates) for notification messages to be sent.
Following are the product notification templates
{
"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"
},
{
"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 APIs in MDMS. Following are the required entries. They should be mapped to both CITIZEN and appropriate employee roles.
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/_searchendpoint
Once the application is filed the organisation or system can call /fsm/v1/_update endpoint to move the application further in workflow until it gets 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 the time parameter, in order to create a periodic application. For that we added the periodic service master where we configure the time limit and whether the schedular is enabled or not. Please find the below configuration and location.
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.
We are using fsm/v1/_schedular API. This API reads the master data for each tenant and based on the time limit configured for that tenant, it gets all eligible applications and creates periodic applications for those FSM applications.
Infra changes
We added a new chart called mdms-read-cronjob. Please find the below chart location.