Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This service is used to issue a license to the user after verification. The service is designed in such a way that it can be used to serve different type of licenses. Currently used to issue trade licenses, perform stakeholder registration and issue lockdown pass. The service is integrated with workflow where we can define the steps for approval of the application. Once the application is approved the license is generated.
Before you proceed with the documentation, make sure the following pre-requisites are met -
Java 8
Kafka server is up and running
egov-persister service is running and has tl-services persister config path added in it
PSQL server is running and database is created
Used for license generations in trade licenses, stakeholder registration and issue lockdown pass
Define roles to applicants on successful application to access Building Plan Approval services at the time of stakeholder registration
Generate application number and license number
Support workflows
Provide notification on various status changes for an application
Add MDMS configs required for Trade License and BPA stakeholder registration and restart MDMS service
Deploy the latest version of tl-services service
Add tl-service persister yaml path in persister configuration and restart persister service
Add Role-Action mapping for API’s
Create businessService (workflow configuration) according to trade license and stakeholder registration
Add tl-service indexer yaml path in indexer service configuration and restart indexer service
Following application properties in the Trade License service are configurable.
Property
Value
Remarks
egov.idgen.tl.applicationNum.format
PB-TL-[cy:yyyy-MM-dd]-[SEQ_EG_TL_APL]
The format of the TL application number
egov.idgen.tl.licensenumber.format
PB-TL-[cy:yyyy-MM-dd]-[SEQ_EG_PT_LN]
The format of the TL license number
egov.idgen.bpa.applicationNum.format
PB-SK-[cy:yyyy-MM-dd]-[SEQ_EG_TL_APL]
The format of the Stake holder application number
egov.idgen.bpa.licensenumber.format
PB-SK-[cy:yyyy-MM-dd]-[SEQ_EG_PT_LN]
The format of the Stake holder license number
egov.tl.max.limit
100
Max number of records to be returned
citizen.allowed.search.params
tenantId, applicationNumber, limit, offset, licenseNumbers
The search parameters on which citizen can search
employee.allowed.search.params
tenantId, applicationNumber, applicationType, status, mobileNumber, fromDate, toDate, licenseNumbers, oldLicenseNumber, limit, offset
The search parameters on which employee can search
persister.save.tradelicense.topic
save-tl-tradelicense
The name of kafka topic on which create request is published
persister.update.tradelicense.topic
update-tl-tradelicense
The name of kafka topic on which update request is published
persister.update.tradelicense.workflow.topic
update-tl-workflow
The name of kafka topic on which update request is published
The trade-license service is currently used to issue trade licenses, perform stakeholder registration and issue lockdown pass.
Provide backend support for the different license registration process.
Mseva and SMS notifications on application status changes.
The elastic search index for creating visualizations and Dashboards.
Bpa Stakeholder registration provides new roles to the user to access the Building Plan Approval system.
Supports workflow which is configurable
To integrate, host of tl-services service should be overwritten in the helm chart.
{servicename}/_create/ _create should be added as the create endpoint for creating any license in the system
{servicename}/_search/ _search should be added as the search endpoint. This method handles all requests to search existing records depending on different search criteria
{servicename}/_update/ _update should be added as the update endpoint. This method is used to update fields in existing records or to update the status of the application based on workflow.
Title
Link
Local Setup
API Swagger Documentation (Trade License)
In all below endpoints if the service name is BPAREG it is treated as a stakeholder registration application and if it is TL or if it is absent then the application is treated as trade license application.
Stakeholder registration APIs:- https://www.getpostman.com/collections/d18b79ccfb69ee8bb526
Trade-License APIs:- https://www.getpostman.com/collections/99f98723c45f97024831
Link
{servicename}/_create, _create
This API is used to create an application for the license in the system. Whenever an application is created an application number is generated and assigned to the application for future reference.
{servicename}/_search, /_search
This API is used to search the applications in the system based on various search parameters like mobile number, the application number, status etc.
{servicename}/_update, _update
The _update API is used to update the application information or to forward the application from one state to another.
In the case of the stakeholder registration if the application reaches the last stage the role depending on the license type is given to the user.
{servicename}/{jobname}/_batch, /_batch
Searches trade licenses which are expiring and send a reminder SMS to owner's of the licenses
All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.
DIGIT offers key municipal services such as Public Grievance & Redressal, Trade License, Water & Sewerage, Property Tax, Fire NOC, and Building Plan Approval.
Config/Service Name
Path/Build
Persister yml for bulk migration
pgr-services
pgr-services-db:pgr-migration-2475ec38-56
rainmaker-pgr
rainmaker-pgr-db:pgr-migration-c046a264-20
The above build’s has to be deployed to perform migration. The batch persister config has to be added in config Repo. After adding the file in repo, update the persister path in environment yml file. Make sure the persister.bulk.enabled is set to true. Once done restart the persister pod.
To start the migration call the following API with tenantId as param it will migrate data belonging to that tenantId. The API does not have role action mapping and should be used by port forwarding rainmaker-pgr pod.
*(Last query related to document might need little modification as values in NOT IN clause can be more than the 2 specified)
null value is stored in action for adding comments in old system it’s mapped to COMMENT in new system.
Locality attribute in new eg_pgr_address_v2 table does not allow NULL values whereas the locality attribute in old eg_pgr_address in Punjab prod data has NULL values. Those values are filled in migration with dummy value NOT_AVAILABLE.
For 128 records accountId is NULL and so they won’t be associated with any citizen login.
For some records in media column corrupt data is present. For example on one case instead of fileStore uuid some normal text describing the complaint is present. While some other records have values like no . For data with such text having length greater than 64 are set to null, else DB validation’s are violated.
In old system id is stored for referencing user data. In new systems we use uuid to refer user, therefore all id are mapped to respective uuid which are then migrated to new system. If some user has uuid as NULL default value NOT_SPECIFIED will be used.
Some 1104 complaints has value in column named feedback which seems to be from some set pf predefined values like "Resolution Time","Quality of work",”others” etc. New structure don’t have any such column so we will be storing this in additionalDetails.
Address and landmark column in eg_pgr_service has values in some column they are also stored in additionalDetails.
Phone column contains phone numbers, we are not migrating that column as it has PII data and will be already present in user service as well.
If sla is not found in old config (will only happen if some complaint category is removed from MDMS and complaints are present in system of that category) default SLA value will be used.
This service is the major service supporting bpa-services which handles the data of the land like land details, owner information, unit, address and documents which has the complete information of the land.
Which can be used as input for the bpa-services to create and process the Building Plan Application.
This section covers the high-level details of the functionalities available Land Service
UI integrated as part of BPA screens
Ability to create/update Land Details
Knowledge of Java/J2EE(preferably Java 8 version)
Knowledge of Spring Boot and spring-boot microservices.
Knowledge of Git or any version control system.
Knowledge of RESTful Web services.
Knowledge of the Lombok library will helpful.
knowledge of eGov-mdms service, eGov-persister, eGov-idgen, eGov-user, eGov-localization will be helpful.
The Application is present among the municipal services group of applications available in the eGov-services git repository with the folder name land-services. The spring boot application needs the Lombok* extension added in your IDE to load it. Once the application is up and running API requests can be posted to the URL and ids can be generated.
in case of IntelliJ, the plugin can be installed directly, for eclipse the Lombok jar location has to be added in eclipse.ini file in this format javaagent:lombok.jar
Please refer to Swagger API for YAML file details. Link - API Specs.
Here we are listing the configs apart from dependent service host, url’s, DB and Flyway configs.
kafka topics persister configs for eGov persister to save and update land Data
persister.save.landinfo.topic=save-landinfo
persister.update.landinfo.topic=update-landinfo
egov-user - ( Manage user )
egov-filestore ( To store the documents uploaded by the user )
egov-idgen ( To generate the application No, Permit No )
egov-indexer ( To index the bpa data )
egov-localization ( To use the localized messages )
egov-location ( To store the address locality )
egov-mdms ( Configurations/master data used in the application is served by MDMS )
egov-persister ( Helps to persist the data )
There is not MDMS config for Land Service exists as of now.
Access MDMS Config
Action Test : URL Actions adding
Access to the Roles for the above Actions
NA
NA
NA
For every building plan application, there is a need to get the No objection certificate from the concerned departments. Based on the configuration we have for the NOCs, for every application, there will be a set of NOCs required. There should be a provision to allow the NOC department user to login to our system and upload the required NOC. We are providing a user to one NOC department. Based on the workflow mode(online/offline) of each NOC type, the NOC department user can perform the action.
Online mode – NOC department user can log in to the system and approve/reject the application.
Offline mode – NOC application will be auto-approved.
Knowledge of Java/J2EE(preferably Java 8 version)
Knowledge of Spring Boot and spring-boot microservices.
Knowledge of Git or any version control system.
Knowledge of RESTful Web services.
Knowledge of the Lombok library will helpful.
knowledge of eGov-mdms service, eGov-persister, eGov-idgen, eGov-user, eGov-localization will be helpful.
egov-user (Manage user)
egov-idgen (To generate the application No)
egov-localization (To use the localized messages)
egov-location (To store the address locality)
egov-mdms (Configurations/master data used in the application is served by MDMS)
egov-notification-sms (Service to send SMS to the users involved in the application)
egov-persister (Helps to persist the data)
egov-workflow-v2 (Workflow configuration for different BPA application is configured)
Please refer to Swagger API for YAML file details. Link - API Specs.
Fire Noc: online configuration
Airport Authority: online configuration
NA
NA
Public Grievances & Redressal (PGR) is a system that enables citizens to raise a complaint with the ULBs. A citizen can track the complaint, upload image related to the complaint, re-open the complaint if he/she is not satisfied and rate the service. This document contains the details about how to setup PGR service and describes the functionalities it provides
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 pgr-services persister config path added in it
PSQL server is running and database is created to store complaint data
(Optional) Indexer config for pgr-services is added in egov-indexer yaml paths to index the generated data. Index is required for data visualisation in Kibana or in DSS.
(Optional) Report config for pgr-services is added in Report service config paths. Required if reports are to be provided to the user.
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
egov-hrms
A citizen can file, track and rate the complaint
A citizen can add image and comments related to the complaint
A citizen can re-open the complaint in a certain given period of time after resolution
ULB can setup the complaint workflow according to their requirements and staff capacity
ULB can track the SLA for resolving each complaint and can use it as a metric to streamline the process for resolving complaints
Department wise assignment of the complaint to the LME
Deploy the latest version of pgr-services
Add pgr-service-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 any Report Config is created, the config should be added to the config folder in git and that path should be added in Report service. (The file path is to be added in a file called “reportFileLocationsv1.txt” in Config folder)
If 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)
Add master data in MDMS service with the module name as RAINMAKER-PGR. Following is some sample master data for the service:
Create businessService (workflow configuration) using the __/businessservice/_create. Following is the product configuration for PGR:
Using /localization/messages/v1/_upsert , add localisation (templates) for notification messages to be sent. Following are the product notification templates:
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.
PGR service can be integrated with any organisation or system which wants to track customer queries or complaint. The organisations can customise the workflow depending on their product requirements.
Easy tracking and resolution of complaints
Configurable workflow according to client requirement
Customer can raise a complaint using the /requests/_create
.
Organisation or System can search the complaint using /requests/_searchendpoint
.
Once the complaint is raised the organisation or system can call /requests/_update
endpoint to move the application further in workflow until it gets resolved.
Construction or renovation of buildings is regulated by Municipal Body in India. One must get permission from the ULB prior to construction. This process involves submitting the building plan to ULB along with other documents, ULB verifies the plan with other documents and approves the construction. The document which authorizes the construction is called “Permit Order” One must have this permit order with him till the completion of construction. ULB officials will inspect various stages of construction and make sure it is compliance with the plan. When construction completed, after inspection Secretary provides “Completion certificate” and finally will provide “Occupancy Certificate”. This entire process is known as “Building Plan Approval”.
This section covers the high-level details of the functionalities available in the Building Plan Application system.
Centralized login page for citizen, official and stakeholders
Citizen functionalities
Online application submission - New construction
Occupancy certificate request
FieldInspection Report Capture
Pay fee online and generate permit order online
Inspection of applications and online status
Configurable workflow
Auto fee calculation
Online and offline payment collection
Rejection process
Revocation process
Configurable functionalities
Knowledge of Java/J2EE(preferably Java 8 version)
Knowledge of Spring Boot and spring-boot microservices
Knowledge of Git or any version control system
Knowledge of RESTful Web services
Knowledge of the Lombok library will helpful
knowledge of eGov-mdms service, eGov-persister, eGov-idgen, eGov-sms, eGov-email,eGov-user, eGov-localization, eGov-workflow-service,dcr, land-services, bpa-calculator will be helpful
in case of IntelliJ, the plugin can be installed directly, for eclipse the Lombok jar location has to be added in eclipse.ini file in this format javaagent:lombok.jar
Here we are listing the configs apart from dependent service host, URLs, DB and Flyway configs.
kafka topics persister configs for eGov persister to save and update BPA Data
persister.save.buildingplan.topic=save-bpa-buildingplan
persister.update.buildingplan.topic=update-bpa-buildingplan
persister.update.buildingplan.workflow.topic=update-bpa-workflow
persister.update.buildingplan.adhoc.topic=update-bpa-adhoc-buildingplan
Receipt kafka topics where BPA application listens to move the application Status after payment completion
kafka.topics.receipt.create=egov.collection.payment-create
Config for Demand Business service codes for different fees to be paid for BPA
egov.receipt.businessservice=
BPA.NC_APP_FEE := Building Plan Approval Application Fee
BPA.NC_SAN_FEE := Building Plan Approval Sanction Fee
BPA.LOW_RISK_PERMIT_FEE := Building Plan Approval Low Risk Permit Fee
BPA.NC_OC_APP_FEE := Building Plan Approval Occupancy Certificate Application Fee
BPA.NC_OC_SAN_FEE := Building Plan Approval Occupancy Certificate Sanction Fee
Application and Permit Number Formats
egov.idgen.bpa.applicationNum.format=PB-BP-[cy:yyyy-MM-dd]-[SEQ_EG_BP_APN]
egov.idgen.bpa.permitNum.format=PB-BP-[cy:yyyy-MM-dd]-[SEQ_EG_BP_PN]
SMS Notification Topic to push the SMS and Notification’s to be sent by BPA module
kafka.topics.notification.sms=egov.core.notification.sms
Payment Notification Config
egov.ui.app.host=https://egov-micro-dev.egovernments.org
egov.usr.events.create.topic=persist-user-events-async
egov.usr.events.pay.link=citizen/otpLogin?mobileNo=$mobile&redirectTo=egov-common/pay?consumerCode=$applicationNo&tenantId=$tenantId&businessService=$businessService
egov.usr.events.pay.code=PAY
List of Application Statuses on which payment notification to be sent
egov.usr.events.pay.triggers=PENDING_SANC_FEE_PAYMENT,PENDING_APPL_FEE,PENDING_FEE
Validity of the permit order generated in no of months
egov.bpa.validity.date.in.months=36
Workflow code for the combination of applicationType , ServiceType
appSrvTypeBussSrvCode={"BUILDING_PLAN_SCRUTINY":{"NEW_CONSTRUCTION":"BPA,BPA_LOW"},"BUILDING_OC_PLAN_SCRUTINY":{"NEW_CONSTRUCTION":"BPA_OC"}}
Application Status on which SKIP_PAYMENT action to be considered
egov.bpa.skippayment.status=PENDING_APPL_FEE,PENDING_SANC_FEE_PAYMENT,PENDING_FEE
Business Service Code for WorkflowCode and Application Status
workflowStatusFeeBusinessSrvMap={"BPA":{"PENDING_APPL_FEE":"BPA.NC_APP_FEE","PENDING_SANC_FEE_PAYMENT":"BPA.NC_SAN_FEE"},"BPA_LOW":{"PENDING_FEE":"BPA.LOW_RISK_PERMIT_FEE"},"BPA_OC":{"PENDING_APPL_FEE":"BPA.NC_OC_APP_FEE","PENDING_SANC_FEE_PAYMENT":"BPA.NC_OC_SAN_FEE"}}
NOC application Integration configs
Config to validate the status of applicable noc’s status to allow application to move forward from NOC_VERIFICATION_PENDING Workflow State
validate.required.nocs.statuses=APPROVED,AUTO_APPROVED,REJECTED,VOIDED
NOC workflow initiate action code to initiate the workflow of the NOC when appliation reachers the respective nocTrigerState
egov.noc.initiate.action=INITIATE
NOC workflow void action code to void the applicable NOC’s, when the application moved to REJECTED State
egov.noc.void.action=VOID
NOC workflow action goes for AutoAprove to auto-approve offline NOC , while moving from NOC_VERIFICATION_PENDING to next state
egov.noc.autoapprove.action=AUTO_APPROVE
egov-user - (Manage user)
tl-services - Stakeholder Registration (Registration process of Stakeholder is handled by this service)
egov-user-event (What’s New and Events)
egov-filestore (To store the documents uploaded by the user)
egov-idgen (To generate the application No, Permit No)
egov-indexer (To index the BPA data)
egov-localization (To use the localized messages)
egov-location (To store the address locality)
egov-mdms (Configurations/master data used in the application is served by MDMS)
egov-notification-sms (Service to send SMS to the users involved in the application)
egov-persister (Helps to persist the data)
egov-searcher (Search query used to simplify the search)
egov-workflow-v2 (Workflow configuration for different BPA application is configured)
pdf-service (Receipt’s, permit order etc.. and prepared)
billing-service (Create demands and bills for the fees to be collected)
collection-services (Create a receipt for the payment received for the bills)
bpa-calculator (Calculates the fees to be collected at different stages)
land-services (land information related to BPA application is stored)
dcr-services (get and validate EDCR data)
noc-services (NOC application)
Under the data/<state code> folder you can find the BPA which has all the MDMS JSON’s
master-config.json for BPA
Action Test : URL Actions adding
Access to the Roles for the above Actions
BusinessService Config for Fee’s to be collected
Application Fee, Sanction Fee BPA High/Medium Risk
Application Fee, Sanction Fee for BPA Low Risk
Application Fee, Sanction Fee for BPA OC
Tax Head for BPA High/Medium Risk
TaxHead config for BPA Low Risk
TaxHead config for BPA OC
TaxPeriod MDMS for BPA High/Medium Risk
TaxPeriod MDMS for BPA Low Risk
TaxPeriod Config for BPA OC
BPA Application Number format Config
BPA Permit Number format Config
BPA Receipt Number format config
BPA OC Receipt Number format config
BPA and BPA OC Workflow Stages
BPA workflow configuration is for Building Plan Approval Apply High and Medium Risk Types.
BPA OC workflow configuration is for Building Plan Approval Occupancy Certificate irrespective of RiskTypes
Both the workflow flows as depicted below
In the above Flow Chart
Rectangle Indicates the Workflow State
Line connecting two states indicates the action
Action name is in black colour text
User Role who can take action is in Blue colour Text
Specific Configurations and How To’s
System allows configuring the Documents that can be visible, allowed to upload and Mandatory to move from the current state in DocumentTypeMapping MDMS as described in MDMS Details Table DocumentTypeMapping Row
Application Creation Sage
Process
DCR system is integrated to get the applicationType, serviceType and riskType based on the EDCR Number populated by the architect.
DCR system is integrated to validate the status of the EDCRNumber populated
New BPA or BPAOC application cannot be created if there is existing un ended( application status other than approved or rejected is considered as unended) application with the same EDCR
How To add new Document
Should add new documentType group in DocumentTypeMapping MDMS with the applicable applicationType, serviceType, riskType, wfState (refer existing sample for understanding)
Can configure allow, required as well as the order for each documentType
Initiated Stage
Process
NOC’s from the NocTypeMapping MDMS matching to the application data will get created
How To add new NocType
Should add new NOCType in NocTypeMapping MDMS
New NocType should add in noc-services application as well
Citizen Approval Pending Stage
Process
According to the example in the NocTypeMapping Data in the MDMS Details Table, Once BPA or BPA OC reaches this Staus all the Applicable Noc’s workflow would be initiated.
How to change NOC workflow initiation step
Should change the nocTriggerState in NocTypeMapping to the desired application status.
InProgress Stage
Process
Application fee Demand gets generated by the bpa-calculator
Notification to the Stakeholder and owner will be sent regarding the fee payment
How To change the Fee Amount
Will be discussed in bpa-calculator service
Document Verification Pending Stage
Process
Nothing Specific
How To
NA
FieldInspection Pending Stage
Process
At this stage, FieldInspector should answer the checklist questions and attached the documents which will be configured in checklist MDMS, as described in MDMS Details Table CheckList Row
Field Inspector can create multiple FieldInspection Reports
How to add new questions and documents
Should add/modify the questions for the desired combination of applicationType, serviceType, risktype
with the localization code for question text
specify the fieldType ( ass of now only YES/NO/NA only supported )
Should add/modify documents for the desired combination of applicationType, serviceType, risktype
Noc Verification Pending State
Process
NOC verifier can upload the Documents to the NOC application’s if available.
Offline Noc’s would get auto-approved while NOC verifier is forwarding the BPA or BPAOC application from the current state
BPA or BPAOC application cannot be forwarded if any NOC is not in matching the status configured for validate.required.nocs.statuses in application.properties
How to change the NOC application status to be verified to move forward
should update the validate.required.nocs.statuses property in value in application.properties with the list of status to be considered to move forward
Approval Pending Stage
Process
Approver can select the predefined conditions for approval updated in CheckList MDMS, as described in MDMS Details Table checkList Row
Approver can add new conditions as well for approval
Sanction fee Demand gets generated by the bpa-calculator
Notification to the Stakeholder and owner will be sent regarding the fee payment
How to add/remove/modify conditions
Should add/modify the conditions array for the desired combination of applicationType, serviceType, riskType
Approved Stage
Process
System generates PermitOrder for the application
System Stamps the validate date for the permit Order by adding the no of months configured for the property egov.bpa.validity.date.in.months in application.properties
How to change the validity period of the permit order which will generate from now
Change the value of the property egov.bpa.validity.date.in.months in application.properties file to the desired no of months
How to change Permit Order
Can be changed by changing the data and format configs of the permit order, please refer PDF’s section of Permit Order
Rejected Stage
Process
NA
BPA LOW Workflow
BPA with riskType low has a separate workflow, which is almost same as the BPA workflow as depicted below
In the above Flow Chart
Rectangle Indicates the Workflow State
Line connecting two states indicates the action
Action name is in black colour text
User Role who can take action is in Blue colour Text
Specific Configurations and How To’s which are not common to BPA Workflow
InProgress Stage
Process
Application and Sanction Fee together gets calculated and Demand gets generated by the bpa-calculator
Notification to the Stakeholder and owner will be sent regarding the fee payment
How To change the Fee Amount
Will be discussed in bpa-calculator service
Document Verification Pending Stage
Process
System generates PermitOrder for the application
System Stamps the validate date for the permit Order by adding the no of months configured for the property egov.bpa.validity.date.in.months in application.properties
How to change the validity period of the permit order which will generate from now
Change the value of the property egov.bpa.validity.date.in.months in application.properties file to the desired no of months
Approved Stage
Process
NA
Revocated Stage
Process
System generates Revocation letter
How to change Revocation Letter format
Can be changed by changing the data and format configs of the revocation letter, please refer PDF’s section of Revocation letter
On Workflow action of Every Stage, System verifies the Documents Configured for the given stage of the workflow from the DocumentTypeMapping MDMS and validates the required Documents attached to move forward
DropDown values to be validated against the MDMS values, Value in those fields should be one of the MDMS value.
Notifications Message codes for SMS and User Events are prepared as follows
ApplicationType_ServiceType_WorkflowAction_ApplicationStatus.
Example BPA Apply Application (i.e applicationType is BUILDING_PLAN_SCRUTINY) with ServiceType NEW_CONSTRUCTION and the current application status is DOCUMENT_VERIFICATION_PENDING and workflow Action of the request is FORWARD then the localized message for this notification will be looked for the code: BUILDING_PLAN_SCRUTINY_NEW_CONSTRUCTION_FORWARD_DOCUMENT_VERIFICATION_PENDING
The message text for the above code is sent through SMS and Notification filling the owner, serviceType, application Number and other values.
BPA supports below PDF’s
Java 1.8
Eclipse
Postgres
PhpPgAdmin
Postman (Application)
Respective Git MiddleWare
Kubectl
Kafka
Take the code pull from the git:
Need to consider 2 repositories for code to run locally
Municipal services - where our BPA code exists and some dependency services also available here https://github.com/egovernments/municipal-services.git - Connect to preview
Core Services - Where dependency services exist to run our code locally https://github.com/egovernments/core-services.git - Connect to preview
Import the required projects to eclipse
From municipal-services import bpa-services, bpa-calculator and land-services. From core-services import user service, idgen service, mdms service, location service, localization service, workflow service, egov-persister.
Before running the application make sure the following setups are complete to ensure the application runs smoothly.
kafka set up in your system which is running fine. Download the latest version of kafka from here. https://kafka.apache.org/downloads
Run the below commands based on your system types
For linux: in kafka folder path
Example: D:\kafka_2.13-2.4.0
> bin/zookeeper-server-start.sh config/zookeeper.properties > bin/kafka-server-start.sh config/server.properties
Ref: https://kafka.apache.org/quickstart
For Windows: in windows path
Example: D:\kafka_2.13-2.4.0\bin\windows start zookeeper-server-start.bat ....\config\zookeeper.properties start kafka-server-start.bat ....\config\server.properties
And lombok setup for eclipse For ref: https://www.journaldev.com/18124/java-project-lombok
Kubectl setup based on the requirement To get the pods: kubectl get pods To port forward: kubectl port-forward <<pod name>> <<port number>>:8080 To get the logs: kubectl get logs
After all the setups are done successfully, try to run the application locally.
BPA-Services How to run the application in local:
Check the services which are connected to local and which are connected to dev
Which are connected to dev no need to change anything.
If it is connected to local check the services are in below list IDGEN – can run locally or can point to dev from cmd prompt PERSISTER – can run locally MDMS – can directly point to dev or can run in local LOCATION – can directly point to dev WORKFLOW – can point to dev or can run locally LOCALIZATIONS – we can directly point this to dev USER-SERVICE – need to point to dev from cmd prompt LAND-SERVICE – need to run locally BPA-CALCULATOR – can run locally or can point to dev.
If the changes are from these services follow the below process to run those respective services.
For core services:
IDGEN:
Approach 1: Directly point this to dev from the application.properties in bpa-services Approach 2: Point this to local and give the port forward to dev by using kubctl.
Note: We are not running this service locally.
PERSISTER:
U need to run it in local and need to add respective yaml files in persister resource folder which are bpa-persister.yml and egov-workflow-v2-persister.yml and also land-persister.yml
And need to add these in persister application.properties repo path
Note: Please check whether data is is saving or not in local data base(DB).
MDMS:
to run local: For running this in local need to change in 2 file that is application.properties and MDMSApplicationRunnerImpl
In application.properties need to change the paths for the master-config url as path of master-config.json and for config path as upto pb/bh
In MDMS ApplicationRunnerImpl need to change the data in a function from the path to file.
to point to dev: Approach 1: Directly point this to dev from the application.properties in bpa-services
Approach 2: Give it as local connection in BPA application.properties and port forward to dev by using kubectl.
Postman Collection https://www.getpostman.com/collections/c59b5c6190719ecd306a
LOCATION
Approach 1: Give it a local connection in BPA application.properties and port forward to dev by using kubectl.
Approach 2: Directly point this to dev from the application.properties in bpa-services
Note: Not tried it in local / may got errors so pointing to dev.
Postman collection https://www.getpostman.com/collections/4f6a25a4fb32572af5ff
WORKFLOW
to point to dev: Approach 1: Directly point this to dev from the application.properties in bpa-services
Approach 2: Give it as local connection in BPA application.properties and port forward to dev by using kubectl.
to run local:
can run locally by pointing to the local database, but for this need to create the workflow locally using the workflow create API.
Postman collection https://www.getpostman.com/collections/aa30be8a8b9de4c13aa8
USER-SERVICE Approach 1: Give it as local connection in BPA application.properties and port forward to dev by using kubectl.
Approach 2: Directly point this to dev from the application.properties in bpa-services
Note: In local not able to run the application successfully, so the following dev.
Postman Collection: https://www.getpostman.com/collections/60bbd6aed27605dcc270
LOCALIZATIONS
Approach 1: Directly point this to dev from the application.properties in bpa-services
Approach 2: Give it as local connection in BPA application.properties and port forward to dev by using kubectl.
Postman Collection https://www.getpostman.com/collections/12cc4c3855be9699c278
Changes from Municipal services
BPA-Calculator:
to run local:
can run locally by pointing to the local database.
to point to dev: Approach 1: Directly point this to dev from the application.properties in bpa-services
Approach 2: Give it as local connection in BPA application.properties and port forward to dev by using kubectl.
Land-Service:
to run local:
can run locally by pointing to the local database.
to point to dev: Approach 1: Directly point this to dev from the application.properties in bpa-services
Approach 2: Give it as local connection in BPA application.properties and port forward to dev by using kubectl.
Other than these services can directly by pointing to dev url.
Note: After running the application successfully please check if the data is saving in db or not.
egov-user - (Manage user)
tl-services - Stakeholder Registration (Registration process of Stakeholder is handled by this service)
egov-user-event (What’s New and Events)
egov-filestore (To store the documents uploaded by the user)
egov-idgen (To generate the application No, Permit No)
egov-indexer (To index the BPA data)
egov-localization (To use the localized messages)
egov-location (To store the address locality)
egov-mdms (Configurations/master data used in the application is served by MDMS)
egov-notification-sms (Service to send SMS to the users involved in the application)
egov-persister (Helps to persist the data)
egov-searcher (Search query used to simplify the search)
egov-workflow-v2 (Workflow configuration for different BPA application is configured)
pdf-service (Receipt’s, permitorder etc.. and prepared)
billing-service (Create demands and bills for the fees to be collected)
collection-services (Create a receipt for the payment received for the bills)
bpa-calculator (Calculates the fees to be collected at different stages)
land-services (land information related to BPA application is stored)
dcr-services (get and validate EDCR data)
BPA application and BPA Occupancy Certificate application has Fee involved. Based on the Application Type, RiskType and ServiceType Fee to be calculated and generates a demand for the calculated amount for Payment. This service used to generate Application Fee, Sanction Fee, Low Application Permit Fee, Deviation Charges for BPA application and Occupancy Certificate Application.
Knowledge of Java/J2EE(preferably Java 8 version)
Knowledge of Spring Boot and spring-boot microservices.
Knowledge of Git or any version control system.
Knowledge of RESTful Web services.
Knowledge of the Lombok library will helpful.
knowledge of eGov-mdms service, eGov-persister, eGov-idgen, eGov-sms, eGov-email, eGov-user, eGov-localization, bpa-services will be helpful.
bpa calculator services present in municipal services provide multiple functionalities like calculating Application Fee, Sanction Fee, Low Permit Fee, OC Deviation Charges, generating demands for a particular BPA, BPA OC applications, updating demands, The different functionalities provided by sewerage calculator services are:
The is present among the municipal services group of applications available in the eGov-services git repository with the folder name bpa-calculator. The spring boot application needs the Lombok* extension added in your IDE to load it. Once the application is up and running API requests can be posted to the URL and ids can be generated.
in case of IntelliJ, the plugin can be installed directly, for eclipse the Lombok jar location has to be added in eclipse.ini file in this format javaagent:lombok.jar
Business service codes for
BPA High/Medium Risk Application Fee
egov.demand.appl.businessservice=BPA.NC_APP_FEE
BPA High/Medium Risk Sanction Fee
egov.demand.sanc.businessservice=BPA.NC_SAN_FEE
BPA Low Risk Permit Fee
egov.demand.lowriskpermit.businessservice=BPA.LOW_RISK_PERMIT_FEE
BPA OC Application Fee
egov.demand.oc.appl.businessservice=BPA.NC_OC_APP_FEE
BPA OC Sanction Fee
egov.demand.oc.sanc.businessservice=BPA.NC_OC_SAN_FEE
Tax Head Code for
BPA High/Medium Risk Application Fee
egov.appl.fee=BPA_APPL_FEES
BPA High/Medium Risk Sanction Fee
egov.sanc.fee= BPA_SANC_FEES
BPA Low Risk Sanction Fee
egov.low.sanc.fee= BPA_LOW_SANC_FEES
BPA Low Risk Application Fee
egov.low.appl.fee=BPA_LOW_APPL_FEES
BPA OC Application Fee
egov.oc.appl.fee=BPA_OC_APPL_FEES
BPA OC Sanction Fee
egov.oc.sanc.fee= BPA_OC_SANC_FEES
External Application references
dcr-services (Use Edcr data )
egov-mdms ( Configurations/master by MDMS )
billing-service ( Generate and update demands )
bpa-services (Get the bpa application data for fee calculation )
bpa-calculator/v1/_calculate End point to calculate the Fee and create Demand with the applicable businessService and TaxHeads
Access MDMS Config
bpa-calculator cannot be accessed publicly, Only called by the bpa-calculator
Billing Service MDMS Config
BusinessService Config for Fee’s to be collected
Application Fee, Sanction Fee BPA High/Medium Risk
Application Fee, Sanction Fee for BPA Low Risk
Application Fee, Sanction Fee for BPA OC
TaxHead MDMS
Tax Head for BPA High/Medium Risk
TaxHead config for BPA Low Risk
TaxHead config for BPA OC
TaxPeriod MDMS Config
TaxPeriod MDMS for BPA High/Medium Risk
TaxPeriod MDMS for BPA Low Risk
TaxPeriod Config for BPA OC
NA
NA
NA
NA
NA
All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.
All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.
All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.
All content on this page by is licensed under a .
The is present among the municipal services group of applications available in the eGov-services git repository with the folder name bpa-services. The spring boot application needs the Lombok* extension added in your IDE to load it. Once the application is up and running API requests can be posted to the URL and ids can be generated.
Please refer to Swagger API for YAML file details. Link - .
``
``
Setup the locality Search query in the as a new entry. Add RoleAction Test and Role Action for the URL “
/egov-searcher/locality/bpa-services/_get
“
- Building Plan Approval Apply High/Medium Risk
– Building Plan Approval Apply Low Risk
- Building Plan Approval Occupancy Certificate Apply
Make sure the new documentType added exists in documentType of
All content on this page by is licensed under a .
All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.
All content on this page by is licensed under a .
MDMS Name
Path
Description
Example Json
CalculationType
Used by bpa-calculator Service which Defines the Fee to be collected for Given ApplicationType, ServiceType, RiskType and feeType
2. Second Example defines the calculation logic to figure out the fee for the Service, considering the different parameters from EDCR information of the BPA.
ParameterPath indicates the EDCR Response Data path to get the data point.
from
Indicates the from value of the data point to be considered
to
Indicates the to value of the data point to be considered
MF
multiplication factor to be considered to multiple the datapoint value to calculate the value when data point value falls between from and to
UOM
UOM to be considered to multiple the datapoint value and MF to calculate the Fee when data point value falls between from and to
{ "applicationType": "BUILDING_PLAN_SCRUTINY", "serviceType": "ALL", "riskType": "LOW", "feeType": "SanctionFee", "amount": 500 }, { "applicationType": "BUILDING_PLAN_SCRUTINY", "serviceType": "NEW_CONSTRUCTION", "riskType": "ALL", "feeType": "ApplicationFee", "amount": 120 }, { "applicationType": "BUILDING_PLAN_SCRUTINY", "serviceType": "NEW_CONSTRUCTION", "riskType": "LOW", "feeType": "Low_ApplicationFee", "amount": 100 }, { "applicationType": "BUILDING_OC_PLAN_SCRUTINY", "serviceType": "ALL", "riskType": "ALL", "feeType": "SanctionFee", "amount": 500, "calsiLogic": [ { "parameter": "builtuparea", "tolerancelimit": 10, "calculationType": "number", "deviation": [ { "from": 11, "to": 50, "MF": 1, "uom": 100 }, { "from": 51, "to": 100, "MF": 2, "uom": 150 }, { "from": 101, "to": 499, "MF": 3, "uom": 200 } ], "paramPath": "edcrDetail[0].planDetail.virtualBuilding.totalBuitUpArea" } ] }
From the above example
indicates SanctionFee is Rs 500 for applicationType=BuildingPlanScrutiny, RiskType=LOW and any ServiceType
indicates applicationFee is Rs 120 for applicationType=BuildingPlanScrutiny, ServiceType=NEW_CONSTRUCTION and any RiskType
indicates applicationFee is Rs 100 for applicationType=BuildingPlanScrutiny, ServiceType=NEW_CONSTRUCTION and RiskType=LOW
Title
Link
Workflow Technical Document
User Technical Document
Link
/requests/_create
/requests/_update
/requests/_search
/requests/_count
MDMS Name
MDMS Path
Description
Example
ServiceType
Values for ServiceType Dropdown
NA
Application Type
Values for Application Type Dropdown
NA
Occupancy Type
Values for Occupancy Type Dropdown
NA
SubOccupancy Type
Values for SubOccupancy Type Dropdown
NA
DocumentTypeMapping
List’s out the documents required at the given stage of the application for Given ApplicationType, ServiceType, RiskType and WorklowState.
In the docTypes we have
Order - Indicates the sequence of the document
Code - Refers to the DocumentType parentGroup from DocumentTypes from common masters MDMS
allow - Indicates allow to edit
required - Mandatory at given stage
{ "applicationType": "BUILDING_PLAN_SCRUTINY", "ServiceType": "NEW_CONSTRUCTION", "RiskType": "LOW", "WFState": "INPROGRESS", "docTypes": [ { "code": "APPL.IDENTITYPROOF", "required": false, "allow": "false", "order": 1 }, { "code": "APPL.ADDRESSPROOF", "required": true, "allow": "true", "order": 2 } ]}
Above example indicates Documents from the common-master documentTypes starting with code(s) in the above example should be displayed in BPA Application UI when the Application of ApplicationType -BUILDINGPLAN_SCRUTINY ServiceType- NEW_CONSTRUCTION RiskType- LOW Workflow State - INPROGRESS Out of this, IDENTITY documentType is not allowed to upload in this stage and not mandatory. ADDRESSPROOF documentType is allowed to upload in this stage and mandatory to move forward from this stage.
CalculationType
Used by bpa-calculator Service which Defines the Fee to be collected for Given ApplicationType, ServiceType, RiskType and feeType
{ "applicationType": "BUILDING_PLAN_SCRUTINY", "serviceType": "ALL", "riskType": "LOW", "feeType": "SanctionFee", "amount": 500 }, { "applicationType": "BUILDING_PLAN_SCRUTINY", "serviceType": "NEW_CONSTRUCTION", "riskType": "ALL", "feeType": "ApplicationFee", "amount": 120 }, { "applicationType": "BUILDING_PLAN_SCRUTINY", "serviceType": "NEW_CONSTRUCTION", "riskType": "LOW", "feeType": "Low_ApplicationFee", "amount": 100 },
From the above example
indicates SanctionFee is Rs 500 for applicationType=BuildingPlanScrutiny, RiskType=LOW and any ServiceType
indicates applicationFee is Rs 120 for applicationType=BuildingPlanScrutiny, ServiceType=NEW_CONSTRUCTION and any RiskType
indicates applicationFee is Rs 100 for applicationType=BuildingPlanScrutiny, ServiceType=NEW_CONSTRUCTION and RiskType=LOW
RiskTypeComputation
Helps to Defines the RiskType of the Application based on the building Height and plotArea received from the EDCR System
{"fromPlotArea": 500, "toPlotArea": 9999999999, "fromBuildingHeight": 15, "toBuildingHeight":9999999999, "riskType": "HIGH", "note": "(Heigh 15 Mt or More) or ( Plot area >=800 sq.Mt)" }
CheckList
Used to Define the List of Questions and Documents to be attached on Field Inspection Pending Stage by Field Inspector.
The Example indicates
Four Questions with fieldType “YES/NO/NA“ ( Which indicates that field of type dropdown with Yes, NO and NA options) should be asked.
Readable question will be available in
2. Used to configure the conditions for Approval Stage
Condition checkboxes to be shown before approve which can be considered as Conditions for Approval
Field Inspection Questions & Documents { "applicationType": "BUILDING_PLAN_SCRUTINY", "ServiceType": "NEW_CONSTRUCTION", "RiskType": "LOW", "WFState": "FIELDINSPECTION_PENDING", "questions": [ { "question": "RIVER_EXISTS_ON_SITE", "fieldType": "YES/NO/NA", "active": true }, { "question": "TREE_EXISTS_ON_SITE", "fieldType": "YES/NO/NA", "active": true }, { "question": "PLAN_AS_PER_THE_SITE", "fieldType": "YES/NO/NA", "active": true }, { "question": "ROADWIDTH_AS_PER_THE_PLAN", "fieldType": "YES/NO/NA", "active": true } ], "docTypes": [ { "code": "FI.FIR", "required": true }, { "code": "FI.SINS", "required": true }, { "code": "FI.SISS", "required": true }, { "code": "FI.SIES", "required": true }, { "code": "FI.SIWS", "required": true } ] }
2. Conditions for Approval Stage { "applicationType": "BUILDING_PLAN_SCRUTINY", "ServiceType": "NEW_CONSTRUCTION", "RiskType": "HIGH", "WFState": "PENDINGAPPROVAL", "conditions": [ "The development shall be undertaken strictly according to plans enclosed with necessary permission endorsement.", "The land in question must be in lawful ownership and peaceful possession of the applicant.", "The permission is valid for period of X(this is the validity period in years) years with effect from the date of issue.", "Permission accorded under the provision cannot be construed as evidence in respect of right title interest of the plot over which the plan is approved.", "Any dispute arising out of land record or in respect of right/ title/ interest after this approval the plan shall be treated automatically cancelled during the period of dispute.", "Adequate safety precaution shall be provided at all stages of construction for safe guarding the life of workers and any public hazard.", "The land/ Building shall be used exclusively for the above occupancy for which you applied and the uses shall not be changed to any other use without prior approval of this Authority.", "Adequate space mentioned in the approved plan shall be kept open for parking and no part of it will be built upon.", "The land over which construction is proposed is accessible by an approved means of access with sufficient road width." ] }
NocTypeMapping
Mapping of the NOC Types applicable for BPA ApplicationType, ServiceType and riskType
From the Example
AIRPORT_AUTHORITY, NOC_FIRE NOC’s are applicable for applicationType → BULDING_PLAN_SCRUTINY
serviceType-> NEW_CONSTRUCTION
riskType-> ALL ( Any )
NocTypes-> list out the NOC Type object
and NOC Applications get created when BPA is created by the NOC’s Workflow would be initiated when the BPA application Status is equl to the nocTriggerState configured. ( According to this example, when the application status changes to Citizen Approval Pending, all the NOc’s workflow would be initiated)
{ "applicationType": "BUILDING_PLAN_SCRUTINY", "serviceType": "NEW_CONSTRUCTION", "riskType": "ALL", "nocTriggerState": "CITIZEN_APPROVAL_INPROCESS", "nocTypes": [ { "type": "AIRPORT_AUTHORITY", "required": true }, { "type": "FIRE_NOC", "required": false } ] }
PDF Name
Description
Config’s
BPA Permit Order
PDF Generated for the Permit Order on approval of the BPA HIGH and MEDIUM RISK Applications
BPA LOW Permit Order
PDF Generated for the Permit Order on approval of the BPA LOW RISK Applications
Revocation Letter
PDF of the Revocation Letter Generated when the LOW RISK BPA Application is Rejected
Occupancy Certificate
PDF Germinated for the Occupancy Certificate on Approval of the Occupancy Certificate Application