BPA Service Setup and Configuration

Softwares to be installed:

  • 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

  1. Municipal services - where our bpa code exists and some dependency services also available here
    https://github.com/egovernments/municipal-services.git .

  2. Core Services - Where dependency services exists to run our code locally
    https://github.com/egovernments/core-services.git.

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 u run the application u should have following setups to run the application smoothly

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

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 MDMSApplicationRunnerImpl need to change the data in a function from 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 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 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 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 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.

All Dependent Services:

  • 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 simply 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 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 )