One of the major applications of the eGov stack which helps municipalities and citizens to handle property tax payments and other related functions on the property such as assessments, mutation, and so on.
Pre-requisites
Prior Knowledge of Java/J2EE.
Prior Knowledge of Spring Boot.
Prior Knowledge of REST APIs and related concepts like path parameters, headers, JSON etc.
Prior knowledge of Git
Prior knowledge of demand-based systems.
The following services should be up and running:
user
MDMS
Persister
Location
Localization
Id-Gen
Billing-service
URL-shortener
Key Functionality
The Property Service provides multiple functionalities starting from serving as a central repository where property information is registered for reference of citizens and other municipality-provided services such as water connection and sewerage management.
An assessment can be done so as to calculate and pay tax on the property. The different services provided by the property services are
Property Registry
Assessment
Mutation
Bifurcation
Consolidation
Registry Explanation
The registry flow helps the citizen/Employee to create a property in the system with minimal information required.
Other workflows such as assessment or mutation can be triggered on the existing ACTIVE Property in the registry.
The property can be created, updated, cancelled, and searched, Followed by the process of Mutation and Assessment.
The same entry in the registry can be referred to by other modules for their business purposes(Water charges).
Configuration Details
Persister File Config
The persister File config for property services can be found in the Config repo of eGov Git, which needs to be added in the persister service - property-services-registry.yml
Workflow-configs
Each flow in the property has a workflow associated with it, which can be controlled by the following configs. The Boolean field which can enable/disable Workflow - the same field controls the update and create the workflow
Workflow Config for property create if the source is from the WATER CONNECTION module
For the creation of property from the water and sewerage module, a different workflow config is used. For each use case, to identify which workflow to use can be identified from this mdms file.
{
"tenantId": "pb",
"moduleName": "PropertyTax",
"PTWorkflow":[
{
"businessService":"PT.CREATEWITHWNS",
"initialAction":"OPEN",
"inWorkflowStatusAllowed":false,
"enable":false
},
{
"businessService":"PT.CREATE",
"initialAction":"open",
"inWorkflowStatusAllowed":true,
"enable":true
}
]
}For use case 1 which says, The property which is creating from Water and sewerage module should have one step workflow.
for this requirement in the above MDMS file businessService with PT.CREATEWITHWNS object must have enabled the field to set as true.
Then for all the property creation from Water and Sewerage module would have one step workflow and property would be created with an ACTIVE state.
Fields in the above MDMS file
MDMS Fields
Description
businessService
Name of workflow config
initialAction
Indicate the start(initial) action of the particular workflow mention in businessService.
inWorkflowStatusAllowed
This field indicate whether the property with application status as “inWorkflow” can be use with water and sewerage connection creation. If this field is true then for that particular use case, the property with “inWorkflow” status can be use with water and sewerage connection creation and vice versa
enable
If this filed is set as true, then the other fields associate with the particular object is use for property creation.
Note: The above objects indicate that for each use case, only one object (use case) enabled the field must be set as true
one-stepSample workflow config for use case 1 where property creation is from water and sewerage module with one-step workflow
To enable or disable notifications
notif.sms.enabled=true
#notif urls - makes use of the UI app host in notification service
egov.notif.commonpay = citizen/egov-common/pay?consumerCode={CONSUMERCODE}&tenantId={TENANTID}
egov.notif.view.property = citizen/property-tax/my-properties/property/{PROPERTYID}/{TENANTID}
egov.notif.view.mutation = citizen/pt-mutation/search-preview?applicationNumber={APPID}&tenantId={TENANTID}
The current localization messages for notification
[
{
"code": "PT_NOTIF_WF_STATE_LOCALE_OPEN",
"message": "Open",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_STATE_LOCALE_DOCVERIFIED",
"message": "Document Verified",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_STATE_LOCALE_FIELDVERIFIED",
"message": "Field verified",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_STATE_LOCALE_APPROVED",
"message": "Approved",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_STATE_LOCALE_REJECTED",
"message": "Rejected",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_STATE_LOCALE_PAID",
"message": "Paid",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_MT_OPEN",
"message": "Dear {OWNER_NAME}, Your application to edit ownership details of property ID {PROPERTYID} has been submitted successfully. Your application no. for future reference is {APPID}. You can track your application on the link given below - {MTURL} Thank you",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_MT_STATE_CHANGE",
"message": "Dear {OWNER_NAME}, Status for your application no. {APPID} for property {PROPERTYID} to edit ownership has been changed to {STATUS}. You can track your application on the link given below - {MTURL} Thank you",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_MT_PAYMENT_PENDING",
"message": "Dear {OWNER_NAME}, Payment is pending for your application no. {APPID} for property ID {PROPERTYID} to edit ownership. You can pay your mutation fee on the below link - {PAYLINK} or visit your ULB to pay your dues. Thank you",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_MT_PAID",
"message": "Dear {OWNER_NAME}, You’ve successfully paid mutation fee - INR {AMOUNT} for application no. {APPID} for property ID {PROPERTYID}. You can download your receipt on the below link - {MTURL} Thank you ",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_MT_APPROVED",
"message": "Dear {OWNER_NAME}, Your property ownership has been changed as per the application no. {APPID} for property {PROPERTYID}. You can download your mutation certificate on the below link - {MTURL} Thank you",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_MT_NONE",
"message": "Dear {OWNER_NAME}, Your property with property-id {PROPERTYID} has been mutated. You can view your property on the link given below - {MTURL} Thank you",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_OPEN",
"message": "Dear {OWNER_NAME}, Your application to {updated/created} property with Id {PROPERTYID} has been submitted successfully. Your application no. for future reference is {APPID}. You can track your application on the link given below - {PTURL} Thank you",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_STATUS_CHANGE",
"message": "Dear {OWNER_NAME}, Status for your application no. {APPID} for property {PROPERTYID} to {updated/created} property has been changed to {STATUS}. You can track your application on the link given below - {PTURL} Thank you",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_APPROVED",
"message": "Dear {OWNER_NAME}, Your property has been {updated/created} as per the application no. {APPID} for property {PROPERTYID}. You can view your property on the link given below - {PTURL} Thank you",
"module": "rainmaker-pt",
"locale": "en_IN"
},
{
"code": "PT_NOTIF_WF_UPDATE_NONE",
"message": "Dear {OWNER_NAME}, Your property with property-id {PROPERTYID} has been {updated/created}. You can view your property on the link given below - {PTURL} Thank you",
"module": "rainmaker-pt",
"locale": "en_IN"
}
]