...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
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.
This document contains the details about the features enhancements being released as part of FSM v1.1 release. For core fsm functionalities and how to setup the fsm please refer FSM v1.0 documentation.
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 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. Index are 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
Citizen can file, track and rate the application for cleaning septic tank
ULB Employee can file application for cleaning septic tank on behalf of Citizen
ULB Employee can assign DSO to the given application with 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
Capture citizen gender information if not present or pre-populate the gender information when Citizen is creating FSM application.
Add citizen's choice for payment
Introducing Pre pay and Post pay service
Post Pay service : Workflow changes (Desludging Application and Vehicle Trip)
Post Pay service: Employee Flow Enhancements
Add payment selection for DSO
Post Pay service: Number of trips is made editable and price calculation will be now based on number of trips entered by the DSO.
Capture DSO and FSTPO gender
Show citizen gender on FSM DSS
Select vehicle capacity instead of vehicle make.
Citizen Notifications | Payment Options | Timeline Enhancements
FSTPO Vehicle Log Inbox Enhancements
FSTPO can decline the vehicle trip
Add owner attribute for vehicle
Add ULB contact details in FSM application flow
DSO can edit pit and property usage details
Show vehicle trip status in employee inbox along with Desludging application
Unrestricted assignment of service requests to a single vehicle
Vehicle logging at FSTP decoupled from FSM module
Photo and attachment view in the application of the ULB employee UI
Dashboard enhancement
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
) 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
...
https://github.com/egovernments/configs/commit/634a4fdd842ec69bdf735e8c985e36499661512f
Dashboard Analytics Configuration
Following are the changes that need to be integrate in dashboard-analytics and restart the “dashboard-analytics” service
...
https://github.com/egovernments/configs/commit/3d9faae0f42550a4e15dcad69630846ba0482de8
Business Service / Workflow Configuration
Create businessService (workflow configuration) using the /businessservice/_create
. Following is the product configuration for FSM:
...
Workflow Configuration Changes FSM 1.2.1
Localization Setup
Using /localization/messages/v1/_upsert
, add localisation (templates) for notification messages to be sent. Following are the product notification templates:
...
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", "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": "" } |
data/pg/ACCESSCONTROL-ACTIONS-TEST/actions-test.json
https://github.com/egovernments/egov-mdms-data/commit/3979963cd0281245c69f015da233a5501fb5f99f
...
https://github.com/egovernments/egov-mdms-data/commit/0140a43e110d9677ac69de11d1c1fd1344aa12cd
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" }, ] |
...
https://github.com/egovernments/egov-mdms-data/commit/9f9b1340b42f25bca44fdcfa474a3413cc21ec03
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
...
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 | |
/vehicle/trip/v1/_create |
=====================================
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.
This document contains the details about the features enhancements being released as part of FSM v1.1 release. For core fsm functionalities and how to setup the fsm please refer FSM v1.1.0 documentation.
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 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. Index are 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
FSTO User Flow
DSO/Employee - Application assignment to Vehicle
Pictures uploaded by DSO should be viewed by ULB employees
Post-service: DSO/Employee mode of payment entry in timeline
Post-service: Employee mode of payment entry
Dashboard enhancement for FSM
Configuration Details
eGov Persister Configuration
...
https://github.com/egovernments/configs/commit/2e536376408a0f09a2afe03c478201f5d81edfe4
eGov Indexer Configuration
Following are the changes that need to be integrate in eGov Indexer and restart the “egov-indexer” service
...
https://github.com/egovernments/configs/commit/3d9faae0f42550a4e15dcad69630846ba0482de8
Dashboard Analytics Configuration
Following are the changes that need to be integrate in dashboard-analytics and restart the “dashboard-analytics” service
...
https://github.com/egovernments/configs/commit/c1c4b2ed5e5eb1b153c2648c3307f006566a5a6b
MDMS Configuration
These are the below changes that needs to be integrated and restart the “egov-mdms-service” service
...
https://github.com/egovernments/egov-mdms-data/commit/4fac292e055665e5fbe4bfeaa7991c574a2289dc
Action & Role Mapping
Integrate the changes related to action and role mapping and restart the “egov-accesscontrol” service
...
https://github.com/egovernments/releasekit/tree/master/localisation/FSM%201.2.1
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 |
/vehicle/trip/v1/_create | |