Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
MuktaSoft deployment details
Package: org.egov.works.service
Source File: NotificationConsumerService.java
Dependencies: Spring Framework, Kafka, Lombok
The NotificationConsumerService class is responsible for routing Kafka messages to specific service components based on the topic they belong to within the eGov Works module.
contractNotificationService: Service for processing contract-related notifications.
estimateNotificationService: Service for processing estimate-related notifications.
notificationServiceConfiguration: Configuration settings for notification services.
expenseNotificationService: Service for processing expense-related notifications.
musterRollNotificationService: Service for processing muster roll related notifications.
measurementNotificationService: Service for processing measurement related notifications.
organizationNotificationService: Service for processing organization related notifications.
individualNotificationService: Service for processing individual related notifications.
fetchServiceBasedOnTopic(final String record, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic): Determines the appropriate service handler based on the topic of the received message and delegates the message processing to that specific service.
Instantiate and configure the NotificationConsumer class within the application context to enable message consumption from Kafka topics. Ensure that the NotificationConsumerService class is properly injected into the NotificationConsumer class for seamless message processing.
The SMS Adapter Service, part of the Mukta_IMPL repository, is a crucial component designed to facilitate SMS notifications. It listens for incoming data on specific Kafka topics and triggers the sending of SMS notifications
Repository Name: Mukta_IMPL
Branch: UAT
Branch: click here for branch link
Environment: mukta-uat
Port: 8080
Context Path: /sms-adapter
Database(Postgres): digit_works
Kafka Server
idGenService
attendanceService
workflowService
mdmsService
hrmsService
estimateService
worksProjectManagementSystemService
locationService
contractService
localizationService
urlShortnerService
organisationService
expenseCalculatorService
Package: org.egov.works.kafka
Source File: NotificationConsumer.java
Dependencies: Spring Framework, Kafka, Lombok
The NotificationConsumer class is responsible for consuming messages from Kafka topics and forwarding them to the NotificationConsumerService for further processing within the eGov Works module.
The primary functionality of the NotificationConsumer class includes:
Consuming Kafka Messages: Messages are consumed from specified Kafka topics using Kafka listeners.
Forwarding Messages: Consumed messages are forwarded to the NotificationConsumerService for processing based on the topic.
The NotificationConsumer class acts as a bridge between Kafka topics and the NotificationConsumerService, ensuring seamless message consumption and processing within the eGov Works module.
Package: org.egov.works.service
Source File: ContractNotificationService.java
Dependencies: Spring Framework, Kafka, Lombok
The ContractNotificationService class manages the notification workflow for contract-related actions within the eGov Works module. It processes contract-related Kafka messages and sends appropriate notifications to relevant stakeholders.
notificationServiceConfiguration: Configuration settings for notification services.
restTemplate: Template for making RESTful HTTP requests.
producer: Kafka producer for sending notifications.
mapper: Object mapper for JSON serialization and deserialization.
hrmsUtils: Utility class for HRMS (Human Resource Management System) operations.
estimateServiceUtil: Utility class for estimate-related operations.
projectServiceUtil: Utility class for project-related operations.
locationServiceUtil: Utility class for location-related operations.
organisationServiceUtil: Utility class for organization-related operations.
repository: Repository for service request operations.
localizationUtil: Utility class for localization operations.
contractsUtil: Utility class for contract-related operations.
process(final String record, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic): Processes the Kafka message for contract-related actions and sends notifications accordingly.
sendNotification(ContractRequest request): Sends notifications based on the type of contract action.
pushNotificationForRevisedContract(ContractRequest request): Sends notifications for revised contracts.
pushNotificationToOriginator(ContractRequest request, String message, String cboMobileNumber): Sends notifications to the originator.
pushNotificationToCreatorForRejectAction(ContractRequest request): Sends notifications to the creator for reject actions.
pushNotificationToCreatorForApproveAction(ContractRequest request): Sends notifications to the creator for approve actions.
pushNotificationToCreatorForDeclineAction(ContractRequest request): Sends notifications to the creator for decline actions.
pushNotificationToCreatorForAcceptAction(ContractRequest request): Sends notifications to the creator for accept actions.
pushNotificationToCBOForApproveAction(ContractRequest request): Sends notifications to the(CBO) for approve actions.
getDetailsForSMS(ContractRequest request, String uuid): Retrieves details required for SMS notifications.
getProjectNumber(ContractRequest request): Retrieves project details for SMS notifications.
getOrgDetailsForCBOAdmin(ContractRequest request): Retrieves organization details for CBO administrators.
getMessage(ContractRequest request, boolean isCBORole): Retrieves the message based on the contract action.
getMessage(ContractRequest request, String msgCode): Retrieves the message from localization.
buildMessageForRevisedContract(Map<String, String> userDetailsForSMS, String message, Boolean isSendBack): Builds the message for revised contracts.
buildMessageForRejectAction(Contract contract, Map<String, String> userDetailsForSMS, String message): Builds the message for reject actions.
buildMessageForApproveActionWOCBO(Contract contract, Map<String, String> userDetailsForSMS, String message): Builds the message for approve actions by WO creator.
buildMessageForWOCreator(Contract contract, Map<String, String> userDetailsForSMS, String message): Builds the message for WO creator.
buildMessageForDeclineAction_WOCreator(Contract contract, Map<String, String> userDetailsForSMS, String message): Builds the message for decline actions by WO creator.
buildMessageForAcceptAction_WOCreator(Contract contract, Map<String, String> userDetailsForSMS, String message): Builds the message for accept actions by WO creator.
getLocalisedMessages(RequestInfo requestInfo, String tenantId, String locale, String module): Retrieves localized messages.
getShortnerURL(String actualURL): Retrieves the shortened URL.
setAdditionalFields(ContractRequest request, String localizationCode,Map<String, Object> additionalField ): Sets additional fields for notifications.
checkAdditionalFieldAndPushONSmsTopic(String customizedMessage, Map<String, Object> additionalField,Map<String,String> smsDetails): Checks additional fields and pushes notifications onto the SMS topic.
Package: org.egov.works.service
Source File: MeasurementNotificationService.java
The MeasurementNotificationService class is responsible for processing notifications related to measurements within the eGov Works module. It handles the generation and sending of notifications to relevant personnel based on different actions performed on measurements, such as approval or rejection.
mapper: ObjectMapper for JSON serialization/deserialization.
notificationServiceConfiguration: Configuration settings for notification services.
measurementServiceUtil: Utility class for measurement-related operations.
producer: Kafka producer for sending notifications.
process(final String record, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic): Processes the incoming Kafka message containing measurement details and delegates the notification sending process to the appropriate method.
sendNotification(MeasurementServiceRequest request): Sends notifications to relevant personnel based on the action performed on the measurement (e.g., approval, rejection).
setAdditionalFields(MeasurementServiceRequest request, String localizationCode, Map<String, Object> additionalField): Sets additional fields for the notification if required.
checkAdditionalFieldAndPushONSmsTopic(String customizedMessage, Map<String, Object> additionalField, Map<String, String> smsDetails): Checks if additional fields are present and sends the SMS request accordingly.
getCustomMessage(String message, String measurementNumber, String projectNumber): Replaces variables in a message template with actual measurement and project numbers.
getMessage(MeasurementServiceRequest request, String msgCode): Retrieves the localized message for a given code and locale.
Instantiate and configure the MeasurementNotificationService class within the application context to handle notifications related to measurements. Ensure that dependencies such as ObjectMapper, configuration settings, and utility classes are properly injected.
Package: org.egov.works.service
Source File: EstimateNotificationService.java
Dependencies: Spring Framework, Kafka, Jackson, Lombok, Apache Commons Lang3
The EstimateNotificationService class is a part of the SMS adapter service in the eGov Works module. This service facilitates the sending of notifications related to estimate workflows via SMS.
producer: Kafka producer for sending notifications.
config: NotificationServiceConfiguration for accessing configuration settings.
hrmsUtils: HRMSUtils for fetching employee details.
projectServiceUtil: ProjectServiceUtil for fetching project details.
locationServiceUtil: LocationServiceUtil for fetching location details.
mapper: ObjectMapper for JSON serialization/deserialization.
repository: ServiceRequestRepository for fetching data from external services.
localizationUtil: LocalizationUtil for fetching localized messages.
process(final String record, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic): Processes Kafka messages containing EstimateRequest data.
sendNotification(EstimateRequest request): Determines the action type and invokes corresponding notification methods.
pushNotificationToCreatorForRejectAction(EstimateRequest request): Sends a notification for the rejection action in the estimate workflow.
pushNotificationToCreatorForApproveAction(EstimateRequest request): Sends a notification for the approval action in the estimate workflow.
getDetailsForSMS(EstimateRequest request, String uuid): Retrieves details necessary for constructing SMS notifications, such as project and user information.
getMessage(EstimateRequest request): Retrieves the appropriate message template based on the workflow action.
buildMessageForRejectAction(Estimate estimate, Map<String, String> userDetailsForSMS, String message): Constructs the SMS content for the rejection action.
buildMessageForApproveActionCreator(Estimate estimate, Map<String, String> userDetailsForSMS, String message): Constructs the SMS content for the approval action by the estimate creator.
getLocalisedMessages(RequestInfo requestInfo, String rootTenantId, String locale, String module): Retrieves localized messages based on the user's locale and module.
setAdditionalFields(EstimateRequest request, String localizationCode, Map<String, Object> additionalField): Sets additional fields required for customizing SMS content.
checkAdditionalFieldAndPushONSmsTopic(String customizedMessage, Map<String, Object> additionalField, Map<String, String> smsDetails): Checks if additional fields are required and pushes the SMS message to the appropriate Kafka topic.
The EstimateNotificationService class is utilized within the eGov Works module for sending SMS notifications related to estimate workflows. It integrates with Kafka for message processing and supports dynamic message construction based on predefined templates and user-specific data.
Package: org.egov.works.service
Source File: MusterRollNotificationService.java
The MusterRollNotificationService class is responsible for processing notifications related to muster rolls within the eGov Works module. It handles the generation and sending of notifications to CBO (Central Billing Office) personnel based on different actions performed on muster rolls.
producer: Kafka producer for sending notifications.
config: Configuration settings for notification services.
hrmsUtils: A utility class for interacting with the HRMS (Human Resource Management System).
projectServiceUtil: Utility class for project-related operations.
locationServiceUtil: Utility class for location-related operations.
mapper: Object mapper for JSON serialization/deserialization.
repository: Repository for service requests.
notificationUtil: Utility class for notification-related operations.
localizationUtil: Utility class for localization operations.
process(final String record, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic): Processes the incoming Kafka message containing muster roll details and delegates the notification sending process to the appropriate method.
sendNotificationToCBO(MusterRollRequest musterRollRequest): Sends notifications to CBO personnel based on the action performed on the muster roll (e.g., send back for correction, approval).
setAdditionalFields(MusterRollRequest request, String localizationCode,Map<String, Object> additionalField ): Sets additional fields for the notification if required.
checkAdditionalFieldAndPushONSmsTopic(String customizedMessage , Map<String, Object> additionalField,Map<String,String> smsDetails): Checks if additional fields are present and sends the SMS request accordingly.
getMessage(MusterRollRequest musterRollRequest, String msgCode): Retrieves the localized message for a given code and locale.
buildMessageReplaceVariables(String message, String musterRollName, String amount): Replaces variables in a message template with actual values.
Instantiate and configure the MusterRollNotificationService class within the application context to handle notifications related to muster rolls. Ensure that dependencies such as Kafka producer, configuration settings, and utility classes are properly injected.
Package: org.egov.works.service
Source File: ExpenseNotificationService.java
The ExpenseNotificationService class is responsible for processing notifications related to expenses within the eGov Works module. It handles the generation and sending of notifications for both purchase bills and supervision bills.
producer: Kafka producer for sending notifications.
config: Configuration settings for notification services.
hrmsUtils: Utility class for interacting with the HRMS (Human Resource Management System).
projectServiceUtil: Utility class for project-related operations.
locationServiceUtil: Utility class for location-related operations.
mapper: Object mapper for JSON serialization/deserialization.
repository: Repository for service requests.
notificationUtil: Utility class for notification-related operations.
localizationUtil: Utility class for localization operations.
process(final String record, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic): Processes the incoming Kafka message, determining whether it pertains to a purchase bill or a supervision bill, and sends the appropriate notification accordingly.
sendNotificationForPurchaseBill(BillRequest billRequest): Sends notifications for purchase bills, handling approval and rejection actions.
sendNotificationForSupervisionBill(BillRequest billRequest): Sends notifications for supervision bills.
getMessage(RequestInfo requestInfo, String tenantId, String msgCode, Map<String,Object> additionalFields): Retrieves the localized message for a given code and locale, optionally adding additional fields if required.
buildMessageReplaceVariables(String message, String billNumber, String amount): Replaces variables in a message template with actual values.
setAdditionalFields(RequestInfo requestInfo,String tenantId, String localizationCode, Map<String,Object> additionalFields): Sets additional fields for the notification if required.
checkAdditionalFieldAndPushONSmsTopic(String customizedMessage, Map<String, Object> additionalFields, String mobileNumber): Checks if additional fields are present and sends the SMS request accordingly.
Instantiate and configure the ExpenseNotificationService class within the application context to handle notifications related to expenses. Ensure that dependencies such as Kafka producer, configuration settings, and utility classes are properly injected.
Package: org.egov.works.service
Source File: OrganizationNotificationService.java
The OrganizationNotificationService class is responsible for handling notifications related to organization management within the eGov Works module. It facilitates the generation and sending of notifications to relevant parties when organizations are created or updated.
mapper: ObjectMapper for JSON serialization/deserialization.
notificationServiceConfiguration: Configuration settings for notification services.
producer: Kafka producer for sending notifications.
restTemplate: RestTemplate for making HTTP requests.
repository: ServiceRequestRepository for fetching data from external services.
process(final String record, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic, boolean isCreateOperation): Processes the incoming Kafka message containing organization details and delegates the notification sending process based on whether it's a create or update operation.
sendNotification(OrgRequest request, boolean isCreateOperation): Sends notifications for organization creation or update based on the boolean flag.
pushNotificationForCreate(OrgRequest request): Pushes notifications for organization creation to relevant personnel.
pushNotificationForUpdate(OrgRequest request): Pushes notifications for organization updates to relevant personnel.
getOrganisations(OrgSearchRequest orgSearchRequest): Fetches organization details based on search criteria.
setAdditionalFields(OrgRequest request, String localizationCode, Map<String, Object> additionalField): Sets additional fields for the notification if required.
checkAdditionalFieldAndPushONSmsTopic(String customizedMessage, Map<String, Object> additionalField, String mobileNumber): Checks if additional fields are present and pushes the SMS notification accordingly.
getDetailsForSMS(Organisation organisation): Retrieves details necessary for composing the SMS notification for organization creation.
getShortnerURL(String actualURL): Shortens the provided URL using a URL
getSMSDetailsForUpdate(OrgRequest request): Retrieves details necessary for composing the SMS notification for organization update.
getMessage(OrgRequest request, boolean isCreateOperation): Retrieves the localized message for organization creation or update based on the operation type.
getMessage(OrgRequest request, String msgCode): Retrieves the localized message for the specified code and locale.
buildMessageForCreateAction(Map<String, String> userDetailsForSMS, String message): Builds the message for organization creation based on the provided user details.
buildMessageForUpdateAction(Map<String, String> userDetailsForSMS, String message): Builds the message for organization update based on the provided user details.
getLocalisedMessages(RequestInfo requestInfo, String rootTenantId, String locale, String module): Fetches localized messages from the localization service based on the specified parameters.
getShortnerURL(String actualURL): Shortens the provided URL using a URL shortening service.
Instantiate and configure the OrganizationNotificationService class within the application context to handle notifications related to organization management. Ensure that dependencies such as ObjectMapper, configuration settings, Kafka producer, and RestTemplate are properly injected. Additionally, ensure that the ServiceRequestRepository is configured to communicate with external services for fetching data.
Package: org.egov.works.service
Source File: IndividualNotificationService.java
The IndividualNotificationService class is responsible for managing notifications related to individual entities within the eGov Works module. It handles the generation and sending of notifications when individual entities are created or updated.
config: NotificationServiceConfiguration for accessing configuration settings.
producer: Kafka producer for sending notifications.
repository: ServiceRequestRepository for fetching data from external services.
restTemplate: RestTemplate for making HTTP requests.
mapper: ObjectMapper for JSON serialization/deserialization.
process(final String record, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic, boolean isCreateOperation): Processes the incoming Kafka message containing individual details and delegates the notification sending process based on whether it's a create or update operation.
sendNotification(IndividualRequest request, boolean isCreateOperation): Sends notifications for individual creation or update based on the boolean flag.
pushNotificationForCreate(IndividualRequest request): Pushes notifications for individual creation to relevant parties.
pushNotificationForUpdate(IndividualRequest request): Pushes notifications for individual update to relevant parties.
getDetailsForSMS(IndividualRequest request): Retrieves details necessary for composing the SMS notification for individual creation or update.
getMessageForCreate(IndividualRequest request): Retrieves the localized message for individual creation.
getMessageForUpdate(IndividualRequest request): Retrieves the localized message for individual update.
getMessage(IndividualRequest request, String msgCode): Retrieves the localized message for the specified code and locale.
buildMessageForCreate(Map<String, String> userDetailsForSMS, String message): Builds the message for individual creation based on the provided user details.
buildMessageForUpdate(Map<String, String> userDetailsForSMS, String message): Builds the message for individual updates based on the provided user details.
getLocalisedMessages(RequestInfo requestInfo, String rootTenantId, String locale, String module): Fetches localized messages from the localization service based on the specified parameters.
setAdditionalFields(IndividualRequest request, String localizationCode, Map<String, Object> additionalField): Sets additional fields for the notification if required.
checkAdditionalFieldAndPushONSmsTopic(String customizedMessage, Map<String, Object> additionalField, Map<String, String> smsDetails): Checks if additional fields are present and push the SMS notification accordingly.
Instantiate and configure the IndividualNotificationService class within the application context to handle notifications related to individual entities. Ensure that dependencies such as NotificationServiceConfiguration, Kafka producer, ServiceRequestRepository, RestTemplate, and ObjectMapper are properly injected. Additionally, configure the methods to handle individual creation and update notifications as per the application's requirements.
ifms-cronjob-pa
ifms-cronjob-pa:vNA-1c0cba31-4
Not Changed
ifms-cronjob-va
ifms-cronjob-va:vNA-1c0cba31-4
Not Changed
ifms-cronjob-pis
ifms-cronjob-pis:vNA-1c0cba31-4
Not Changed
ifms-cronjob-pag
ifms-cronjob-pag:vNA-1c0cba31-4
Not Changed
ifms-cronjob-pd
ifms-cronjob-pd:vNA-1c0cba31-4
Not Changed
ifms-cronjob-fd
ifms-cronjob-fd:vNA-1c0cba31-4
Not Changed
ifms-cronjob-ftps
ifms-cronjob-ftps:vNA-1c0cba31-3
Not Changed
ifms-cronjob-ftfps
ifms-cronjob-ftfps:vNA-1c0cba31-3
Not Changed
Rate Analysis
rate-analysis:UAT-04dc8d29-8
New Service
Works PDF
works-pdf:UAT-5ec7e42d-62
Changed
Muster Roll
muster-roll:UAT-21a2d6f9-8
Changed
Statements
statements:UCEM-579-e71ad6ce-12
New Service
Expense Calculator
expense-calculator-db:UAT-0a384623-23
Changed
Works-UI
works-ui:UAT-99bd312e-296
Rate Analysis & View Statements
Works-SHG
works-shg-app:UAT-ec3eea14-19
Mobile MB
Workbench-UI
workbench-ui:MUKTA-SOR-80d1bb835a-28
Rate Analysis and Customisation
Release kit repo for localisation
1
Development is completed for all the features that are part of the release.
Yes
Shailesh, Arindam, Nirbhay
Sathish P, Elzan
2
Test cases are documented by the QA team, reviewed by the product owners and test results are updated in the test cases sheet.
Yes
Keerthi, Anuraj
Nirbhay, Shailesh, Arindam
3
The incremental demo of the features showcased during the sprint showcase and feedback incorporated.
Yes
Keerthi, Anuraj
Nirbhay
4
UI/UX Audit review by UX Architect is completed along with feedback incorporation for any changes in UI/UX.
Yes
Arindam
Andrew
5
Incremental demos to the product owners are completed as part of the sprint and feedbacks are incorporated.
Yes
Keerthi, Anuraj
Nirbhay
6
QA signoff is completed by the QA team and communicated to the product owners. All the tickets QA signoff status is updated in the JIRA.
Yes
Keerthi, Anuraj
Shailesh, Arindam
7
UAT promotion and regression testing from the QA team are complete. The QA team has shared the UAT regression test cases with the product owners.
Yes
Keerthi, Anuraj
Nirbhay
8
The API backward compatibility testing is completed.
Yes
Keerthi, Anuraj
Arindam, Shailesh
Tested with existing records and found no issues
9
The communication is shared with the product owners for the completion of UAT promotion and regression by the QA team. The product owners have to give a Product signoff within one week of this communication.
Yes
Anuraj, Keerthi
Nirbhay
QA Sign off given on below dates 12-Jul-2024 and 18-Jul-2024
10
UAT Product Signoff communication is received from the Product owners along with the release notes and User guides (if applicable).
Yes
Nirbhay
Sameer
11
The GIT tags and releases are created for the code changes for the release.
Yes
Shailesh
Sathish P
12
Verify whether the Release notes are updated
Yes
Nirbhay
Arindam
13
Verify whether all UAT Builds are updated along with the GIT tag details.
Yes
Shailesh
Sathish P
14
Verify whether all MDMS, Configs, InfraOps configs updated.
Yes
Tulika, Manas, Lokendra, Shubhang
Arindam, Shailesh
15
Yes
Nirbhay, Shailesh, Keerthi, Anuraj, Arindam, Anjoo
Anjoo
16
Verify whether all test cases are up to date and updated along with necessary permissions to view the test cases sheet. The test cases sheet is verified by the Product owner.
Yes
Keerthi, Anuraj
Nirbhay
17
Verify whether the UAT credentials sheet is updated with the details of new Users and Roles if any
Yes
Keerthi
Arindam
It will be internally shared
18
Verify whether all the localisation data was added in UAT including Hindi and updated in Release Kits.
Yes
Keerthi
Arindam
Hindi is not required. Odiya localization is added in UAT
19
Verify whether the product release notes and user guides are updated and published
Yes
Nirbhay
Sameer
20
The Demo of released features is done by the product team as part of the Sprint/Release Showcase.
Yes
Nirbhay
Release showcase was done on 22-July-2024
21
Technical and Product workshops/demos are conducted by the Engineering and Product team to the implementation team (Impel handover)
Yes
Shailesh
Arindam
As two team work together explicit handover not required
22
Plan for upgrading the staging/demo instance with the release product - within 2-4 weeks based on the period where no demos are planned from staging for the previous version of the released product.
Yes
Arindam, Shailesh
Nirbhay
23
Architect SignOff and Technical Quality Report
Yes
Shubhang, Manas
Shailesh
Issues are documented in Known Issues. Also documenting this in JIRA for tech debt fixes.
24
Success Metrics and Product Roadmap
Yes
Nirbhay
Sameer
25
Adoption Metrics
Yes
Nirbhay
Sameer
26
Program Roll-out Plan
Yes
Sameer
Sameer
27
Impel checklist
Yes
Arindam
Elzan
28
Impel roll-out plan
Yes
Arindam
Elzan
29
Gate 2
In progress
Sameer
Ex co
Gate 2 is scheduled on 26th July 2024
30
The Internal release communication along with all the release artefacts are shared by the Engineering team.
Nirbhay
This will be shared after Gate 2.
The expense calculator is an implementation-specific service that works in tandem with the expense service. This service holds all the specific business logic in computing expenses and calls the billing service with the correct payload to create a bill.
There are three types of bills in Mukta:
Wage bill - auto-generated from an approved muster roll and to be paid to wage seekers on completion of work
Purchase bill - submitted by a JE or ME on behalf of the vendor
Supervision bill - computed on top of wage and purchase bills to be paid to the CBO (community-based organisation).
The calculator performs the calculation for all three types of bills and creates a bill.
DIGIT backbone services
Persister
MDMS
IDgen
Expense
Listens for muster roll approval on a Kafka topic and creates a wage bill based on the muster roll.
Calculates supervision bill (if required) on any bills that have not been included so far and submits it to expense service
Allows update of purchase bill.
Search for meta information related to bills
HeadCodes
ApplicableCharges
LabourCharges
BusinessService
PayerList
API spec
Postman collection
The MDMS and other configuration necessary for the Mukta V2.1 upgrade is added here.
Rate analysis persister configs
API
Persister config changes required for rate analysis
Rate analysis Dev-ops changes
API
add values.yaml in helm
Rate analysis Dev-ops helms
API
,
add in helm
Rate analysis mdms config
API
Roles and access add in Mdms. NOTE: In application properties of rate analysis need to change the Labour Cess code based on whatever is present in the environment
Estimate Template mdms config
API
Mdms config changes required for Estimate template.
Statement persister config
API
Persister config for statements.
Statement dev-ops config
API
, , ,
Dev-ops changes required for Statements.
Statement Mdms config
API
Mdms config for Statement.
Role action mapping for above all
API/UI
Role actions for SOR migration, rate analysis,statement.
ID format config
API/UI
Id format config to generate ID.
Statement PDF config
API
, , ,
PDF config required for statement pdf generation.
Statement PDF dev-ops config
API
Dev-ops config required for Statement PDF generation
Mukta v2.1 Test Cases consisting of different UI screens & API's the following are the test cases:
Mukta v2.1 UI & API Test Cases
UI Test Cases
Mobile Employee Login Page & Home Page
Mobile Employee Work Order
Mobile:Measurement Book
Moving Skills dataset into SOR
search & add template to detailed estimate
CBO-Download Analysis
UI & API Test Cases:
Estimate Generate, view and download analysis
MB Generate, view and download analysis statements
Add/Edit, View Rate Analysis
Search SOR
show rate revision jobs
Shedular-Revision of SOR
The page provides detailed steps on how to deploy the MUKTASoft services.
Steps: Follow the visual map below and click on the step links to view the details.
Please refer to this link for the service builds used.
Helm charts for all MUKTASoft services are available here. To override the environment variables, please create a Helm environment chart like this for your DIGIT environment and customise the values.
Create Common Masters
Create IdFormat.json that will be used by egov-id-gen service.
Create StateInfo.json which will configure eligible languages for the tenant
Create tenants by following this doc.
Create sample boundary data. Refer to this document for more details
Create configs for -
Configure map-config for the tenant
Restart the MDMS server and restart the Zuul API gateway.
Note: Any modifications made to the configuration mentioned above will necessitate a restart of the MDMS server. Similarly, changes to the "action-test.json" and "roleactions.json" files will require a restart of the Zuul API gateway.
Refer to the section for a list of core services to be deployed.
Refer to the section for a list of Works platform services to be deployed.
Refer to the section for a list of MUKTASoft services to be deployed.
Find below the breakdown of the steps:
Step 1: Create a persister config for each backend service. The persister service will use these configurations.
Step 2: Create an indexer config for each backend service. The indexer service will use these configurations.
Step 3: Create workflow configuration for the defined business services.
Note: If you make any changes to the indexer and persister configurations, you will need to restart the indexer and persister services for the changes to take effect.
Create users following this document.
Upsert localisation following this document.
MDMS configuration is listed for each service.
Estimates
MUKTASoft v2.1
The MUKTASoft 2.1 release offers multiple new features and enhancements including rate analysis, estimate templates, Kibana dashboard and mobile application.
Rate Analysis - determines the cost of a Schedule of Rates (SOR), a unit of work, and is published by the Public Works Department (PWD).
Estimate Template - a set of SORs required to prepare an estimate for a specific type of work, allowing for easy reuse when preparing estimates for similar projects.
Analysis Statements - break down the estimated costs of all Schedule of Rates (SORs) into labour, material, and machinery - for better planning, budgeting, and resource allocation.
Utilization Statements – break down work costs from the measurement book for all Schedule of Rates (SORs) into labour, materials, and machinery, to validate wages, supervision, and purchase payments.
Mobile Application (Measurement Book) - mobile version of the measurement book, designed to help users capture measurements directly from the site and submit them for verification and approval.
Kibana Dashboard - developed with additional KPIs to help stakeholders track and monitor the progress of the MUKTA scheme.
The MUKTA CBO App has been enhanced with an employee login facility and renamed as the MUKTASoft App.
All the skills (MDMS v1) have been migrated into the Schedule of Rates registry (MDMS v2) as labor SORs.
None
Below are the known issues including Bug-bashes, ULB feedback and ULB-reports.
Data Security and Privacy (New Feature)
Work review and Project Closure (New Feature)
Bulk Purchase: Vendor Invoicing and Payments (Without a purchase order) (New Feature)
JIT Integration: Fund Allocation and Utilization Register (New Feature)
Allow addition of wage seekers after muster roll submission. (Enhancements)
Implement wage seekers search Criteria in the CBO App. (Enhancements)
Carry forward differential amounts of MB in muster roll. (Enhancements)
Reflect revised estimate costs accurately in view work orders details. (Enhancements)
Add CBO search option by various criteria during work order creation by PC MUKTA. (Enhancements)
Dashboard: Remaining KPIs, incorporating drill-down and filerts. (Enhancements)
Project types to be modified, moving from MDMS v1 to v2 (Change Request)
Service specifications for MuktaSoft
This section provides the detailed specifications, deployment and configuration details for MuktaSoft services.
Click on the service links below for details.
Revise Rates Job
This migration is mukta-specific only.
To convert Labour Skills rates to SOR rates in MDMS-v2, we need to map skill_codes to sorId. We'll use skill_codes to get rates from MDMS v1 and sorId to upload them into MDMS v2. Upload an Excel file in the required format and execute the curl command. Note: The migration script is already present in our earlier build; only the input file will be changed.
To migrate skills rate follow the steps given below:
Create skill_codes and sorId mapping :
An Excel sheet is with fields (heads, rates as total, Sor Id, Valid From, and Valid To). Example:
Use the Specific Build:
egovio/bulk-upload:UAT-f91e96b8-18
to access the branch and change details
Build and Deploy:
Deploy the build provided above or build and deploy from the code linked above if custom changes are required.
Upload the Excel file in the body.
Use the curl below to migrate the data.
Verification in DB: Query on the eg_mdms_data table and check if the Rates uploaded are present in the data. Example: select * from eg_mdms_data where schemacode ='WORKS-SOR.Rates' and data- >>'sorId' = 'Eg.SOR_000002';
Works SOR requires SOR Composition, for existing SORs it requires uploading data using script.
Checkout to the branch sor-composition-migration
Port-forward MDMS-v2
Update these details in .env
MDMS_V2_HOST url
MDMS_v2_SOR_COMPOSITION_CREATE url if it's changed - Make sure that WORKS-SOR.Composition
schema is created
Install dependencies on your local
pip3 install -f requirements.txt
Run main.py
file
This page describes the integration with the Integrated Financial Management System of Odisha state
Integration with Odisha IFMS (Integrated Financial Management System) is via the Just-in-Time (JIT) APIs provided by the Odisha treasury.
The following pieces of information are shared offline:
clientId
clientSecret
publicKey from JIT systems
Head of accounts to be used for the Mukta scheme at the state level - to be provided by HUDD
Spending unit details specific to each ULB are to be provided by HUDD.
The IFMS Adapter does not use the persister service. The adapter interacts directly with the DB and has sync blocks on certain transactions to preserve data integrity.
expense service
expense-calculator service
bank-account service
individual service
organisation service
audit-log service
IDGen service
MDMS service
encryption service
IFMS adapter manages funds summary based on the head of accounts and SSU codes. It creates sanctions for each head of accounts and SSU details based on ULB tenant ID.
There are three types of transactions that can be received from the JIT VA API -
Initial Allotment - A new sanction will be created only if AllotmentTxnType is Initial Allotment.
Additional allotment - For this type of transaction it will update the amount of existing sanction.
Allotment withdrawal - It deducts the transaction amount from the sanction for this type of transaction.
When a bill is approved this service creates payment using the expense service.
There are consumers who keep listening to the payment create Kafka topic and generate payment instructions (PI) using payment and bill details and post the PI to the IFMS system using JIT API.
A new PI will be generated when enough funds are available for any head of accounts for that tenantId.
Before posting the PI there were multiple enrichments like bankaccount details, org and individual details, etc.
After creating the PI it deducts the available balance from the funds summary.
If a PI is created for any payment then the user can not generate a PI again till the PI fails.
It keeps a log of each status call of PI and saves it in the DB
IFMS adapter connects JIT with two APIs -
authentication - webservices/jitfs/v1.0/authenticate
service request - webservices/jitfs/v1.0/get-jit-service-data
There are multiple cronjobs for the IFMS adapter, all jobs are built using a single codebase with multiple charts, these charts are required to configure cronjobs with multiple configurations.
All cronjobs uses ifms/scheduler?serviceId={SERVICE_ID} API, the business logic is defined for each service code.
Service codes are -
All requests and responses are logged in an encrypted fashion in two indexes in ES.
ifms-request-logs
ifms-error-logs
Use this index to see a history of all successful requests to JIT.
Each request that is sent to JIT will be logged in the ifms-request-logs
index. The index name is configurable in application.properties, Helm chart and environment file. There are multiple fields for the request:
id - uuid of the request
serviceId - Contains service ID of jit request like VA, PI, PIS etc
jitBillNo - Contains bill number for which it’s calling the JIT API, it’s applicable for PI, PIS, PAG, PD, FTPS, and FTFPS. Note: For Auth request jitBillNo will be AUTH
encRequest - Contains request body which is encrypted using ifms.request.enc.secret value. You can decrypt this using the same secret.
decryptionRek - Contains decryption rek which helps to decrypt the JIT response received from JIT.
encResponse - Response received from JIT.
createdtime - The time when the request was sent to the JIT system
Use this index to see all failing requests to and back from the JIT IFMS APIs.
When the user sends any request to JIT and gets an error response, then it will store the details in ifms-error-logs index. It has multiple fields
serviceId - Contains service ID of jit request like VA, PI, PIS etc
requestId - This is uuid of ifms-request-logs index
statusCode - Status code of Network response
jitEncRequest - Encrypted request which is sent to the JIT, we can not decrypt this request.
errorMsg - Error response which was received from JIT
encryptionRek - Encryption rek using which request is encrypted
decryptionRek - Contains decryption rek which helps to decrypt the JIT response
authToken - Auth token which request was sent to the JIT
sekString - sek which was received from the login
createdtime - The time when the request was sent to the JIT system
Mukta Builds
Works Frontend
Localisation
MDMS
Configs
DevOps
&
&
&
and
Verify whether all docs are published to website by the Technical Writer as part of the release.
&
Clone DIGIT-Works repository in your local
Create an excel file same as below sheet and fill the details
All other master data is configured inside the folder at a state level as well as a folder inside a ULB level.
Rate Analysis
Handles rate analysis features
Create Rate Analysis
This feature allows users to create rate analyses for given work SORs
View Rate Analysis
Users can search for specific SORs and view the rate analysis associated with it
Edit Rate Analysis
Users can edit the rate analysis
Revision of Rate
Manage functions related to revision of rates
Revise rate for selected
Users can revise the rates for selected SORs
Revise rate for all
Users can revise the rate for all the SORs without selecting any specific SOR
Show Job
Users can view the Job scheduled for rate analysis
Analysis Statements
Allows users to manage analysis statements
View Analysis Statements
Users can view analysis statements from the estimate view details
Download Analysis Statements
It allows the user to download the analysis statements from estimate view details.
Download Analysis Statement (CBO)
It allows the CBO to download the analysis statements from work order view details.
Utilization Statement
It covers the functionality of utilization statements.
View Analysis Statements
It allows the user to view the utilization statements from estimate view details.
Download Analysis Statements
It allows the user to download the utilization statements from estimate view details.
Employee Mobile Application
It covers the functionality of employee mobile application specifically MB.
Employee Login
It allows the user to login into mobile application.
Work Orders
It allows the user to search a work order to create measurement book.
View Details
It allows the user to view the work order details.
Create Measurement Book
It allows the user to create a MB.
Measurement Books
It serves the user as MB inbox.
View Measurement Book
It allows the user to view MB details.
Save as Draft Measurement Book
It allows the user to save MB as draft.
Submit Measurement Book
It allows the user to submit MB for verification.
Verify Measurement Book
It allows the user to verify MB and send for approval.
Approve Measurement Book
It allows the user to approve MB.
Estimate Template
It covers the functionality of estimate template.
Create Template
It allows the user to create template.
Search Template
It allows the user to search template.
View Template
It allows the user to view template.
Modify Template
It allows the user to modify template.
Estimate
Search and Add Template
It allows the user to search a template by code or name and add to estimate.
Overview
Urban Local Bodies
Number of Urban Local Bodies (ULBs) on-boarded
CBOs Registered
Number of Community-Based Organizations (CBOs) on-boarded
CBOs Benefited
Number of Community-Based Organizations (CBOs) that have received at least one work order
Wage Seekers Registered
Number of wage seekers on-boarded
Wage Seekers Benefited
Number of wage seekers who have been paid at least once through MUKTASoft
Onboarded Projects
Number of projects on-boarded
Estimates Submitted
Number of estimates prepared and submitted for verification
Estimates Technically Sanctioned
Number of estimates technically sanctioned
Estimates Administratively Approved
Number of estimates that have received administrative approval
Work orders issued
Number of work orders approved and sent to CBOs for acceptance
Work orders accepted
Number of work orders approved and accepted by CBOs
Upcoming Projects
Number of projects for which work orders accepted by CBOs are pending execution
Ongoing Projects
Number of projects currently in execution with at least one muster roll submitted
Value of work orders issued
Total value of approved work orders sent to CBOs for acceptance
Fund Utilized
Total amount paid for wage, purchase, and supervision bills clearance
Wage Amount
Total amount paid for wages
Purchase Amount
Total amount paid for purchases
Supervision Charges
Total amount paid for supervision charges
Performance
Work orders conversion rate
Percentage of onboarded projects with approved work orders (Projects work order approved/ Onboarded Projects*100)
Project execution rate
Percentage of approved work order value paid to beneficiaries (Total amount paid/ Value of work orders approved * 100)
Payment success rate
Percentage of successful payments out of the total payments processed (Number of successful payments/Total number of payments*100)
Average muster roll approval time (in days)
Average time in days taken to approve a muster roll (Total time taken to approve the muster rolls/Total muster rolls approved)
Average payment disbursal time (in days)
Average time taken to disburse payments to beneficiaries from bill approval (Total time taken for all disbursal / Total number of disbursal)
Urban Local Body
Urban Local Body
Onboarded Projects
Number of projects onboarded
Work orders issued
Number of work orders approved and sent to CBOs for acceptance
Value of work orders issued
Total value of approved work orders sent to CBOs for acceptance
Total amount paid
Total amount paid for wage, purchase, and supervision bills clearance
Work orders conversion rate
Percentage of onboarded projects with approved work orders (Projects work order approved/Onboarded Projects*100)
Project execution rate
Percentage of the approved work order value paid to beneficiaries (Total amount paid/Value of approved work orders * 100)
Average muster roll approval time (in days)
The average time in days taken to approve a muster roll (Total time taken to approve muster rolls/Total number of muster rolls approved)
Average payment disbursal time (in days)
The average time taken to disburse payments to beneficiaries from the approval of bills (Total time taken for all disbursal/Total number of disbursal)
Payment success rate
The percentage of payments successful of the total payments processed (Number of successful payments/Total number of payments*100)
Workflows
Estimates
Workflow status wise break shown in pie chart
Work Orders
Workflow status wise break shown in pie chart
Measurement Books
Workflow status wise break shown in pie chart
Muster Rolls
Workflow status wise break shown in pie chart
Bills
Workflow status wise break shown in pie chart
Payments
Payment status wise break shown in pie chart
Payments
Fund Utilized
Total amount paid towards wages, purchases, and supervision bills clearance
Wage Amount
Total amount paid towards wages
Purchase Amount
Total amount paid towards purchases
Supervision Charges
Total amount paid towards supervision charges
Monthly head wise payments
Monthly breakdown of the total paid amount, categorized by bill types: wage, purchase, and supervision
Weekly head wise payments
Weekly breakdown of the total paid amount, categorized by bill types: wage, purchase, and supervision
Monthly payment success rate
Monthly percentage of payments processed successfully out of the total attempted payments
Weekly payment success rate
Weekly percentage of payments processed successfully out of the total attempted payments
Monthly payment instruction wise payments
Monthly breakdown of total successful payment amount categorised by payment instruction type, i.e., original and revised payment instructions
Weekly payment instruction wise payments
Weekly breakdown of total successful payment amount categorised by payment instruction type, i.e., original and revised payment instructions
Monthly gender wise payments
Monthly breakdown of total successful payment amount processed categorised by the gender of beneficiaries
Weekly gender wise payments
Weekly breakdown of total successful payment amount processed categorised by the gender of beneficiaries
Monthly wage seekers registered vs benefited
Monthly comparison between registered and benefited wage seekers
Weekly wage seekers registered vs benefited
Weekly comparison between registered and benefited wage seekers
Monthly failure reason wise failed payments
Monthly total failed payments categorised by reasons for failure
Weekly failure reason wise failed payments
Weekly total failed payments categorised by reasons for failure
ifms-cronjob-pa
PA
It is used to create payment for approved bills, uses expense service API
ifms-cronjob-va
VA
It fetches the allotment details using JIT API's.
ifms-cronjob-pis
PIS
After PI creation it fetches whether the payment instruction's sanction is generated or not.
ifms-cronjob-pag
PAG
After receiving the PIS response it fetches for payment advice generation using JIT API.
ifms-cronjob-pd
PD
After receiving the PAG response it keeps fetching data for the PD service JIT API. The response will be received when payment is processed.
ifms-cronjob-fd
FD
It uses JITs bulk failure API and returns failed payments of the last 72hrs.
ifms-cronjob-ftps
FTPS
This same as PD - it is used for the revised transaction.
ifms-cronjob-ftfps
FTFPS
After receiving the response from FTPS API it keeps fetching data of failedrequests transactions of revised transactions.
0
0
0
0
0
0
0
345
0
345
SOR_000290
22-04-2023
30-09-2023
This bill scheduler is a cronjob scheduler for calculating the supervision bill. It runs based on environment configuration. It triggers multiple APIs to generate the supervision bill.
MDMS
User
Contract
Expense Calculator
It creates supervision bills based on ACTIVE contracts using expense-calculate service /v1/_calculate API.
Create a role in ACCESSCONTROL-ROLES/roles.json
MDMS like this.
Create a SYSTEM
user with BILL_CREATOR and SYSTEM
roles. Find the curl below.
The same username will be used to generate bills BILL_GEN_CRONJOB, it’s defined in the environment config.
Cron job duration will be configured using environment variables from here.
There are two ways to update the configuration of the scheduler:
Add the config in the DevOps environment file, and restart the service. This will trigger the scheduler based on the updated environment configuration and restart the expense-cronjob
service.
Use the commands given below: Change schedule - kubectl patch cronjobs expense-cronjob -p '{"spec" : {"schedule": "*/10 * * * *" }}'
Pause cron job - kubectl patch cronjobs expense-cronjob -p '{"spec" : {"suspend" : true }}' Resume cron job - kubectl patch cronjobs expense-cronjob -p '{"spec" : {"suspend" : false}}' Create a new cronjob scheduler - kubectl create job --from=cronjob/expense-cronjob expense-cronjob
To implement a secure bank account search service in Mukta that masks Personally Identifiable Information (PII) in the response based on the user’s role and predefined security policies. PII data - Branch name, Account number, IFSC
The response would be based on the config set in MDMS-V2 which masks the above fields in appropriate patterns.
1. Masking Methodology
Masking is applied to sensitive attributes such as accountHolderName, accountNumber, and ifscCode.
A regular expression-based masking technique is used, replacing parts of the sensitive values with asterisks (*).
Example: For a pattern - (?=.{4}), the value 12345678 would be masked as ****5678.
2. Security Policy:
Role-Based Access Control (RBAC):
Defines which roles can access attributes in plain text.
Example roles: BILL_ACCOUNTANT, MUKTA_ADMIN.
Attribute Visibility Levels:
PLAIN: The attribute is fully visible.
MASKED: Attribute is partially masked.
Policy Configuration Example:
3. Masking Pattern Configuration:
Patterns define how sensitive attributes are masked.
Example configuration:
Pattern Example:
Pattern.(?=.{4}): Masks all characters except the last 4.
Pattern (?<=.{4}).(?=.{2}): Masks characters except the first 4 and last 2.
4. Implementation Details:
The service retrieves security policies and masking patterns from MDMS.
User roles are validated to determine access levels for each attribute.
Masking is applied dynamically to sensitive data if the user’s role lacks plain text access.
5. Code Highlights:
Role Access Check: Ensures attributes are visible in plain text only if the user’s role has access.
Masking Application: Masks attribute values using patterns fetched from the configuration.
Nested JSON Handling: Retrieves and updates attribute values dynamically using JSON paths
Curl:
The Mukta Individual Search service is designed to retrieve and handle individual-related data securely. The service masks personally identifiable information (PII) based on configurable patterns and enforces role-based access control to ensure sensitive data is visible only to authorized users.
PII data - Name, Identity number, Father/ husband name, Relationship, Address, Date of birth, Gender, Mobile Number, Social category, Email ID, Photo.
The response would be based on the config set in MDMS-V2 which masks the above fields in appropriate patterns.
Masking Patterns:
Configured in the DataSecurity module.
Patterns define the masking logic for attributes, e.g.,
001: .\*(?=.{4}) masks all but the last 4 characters.
009: (?<=.{4}).(?=.{2}) masks characters except the first 4 and last 2.
Role-Based Security Policies:
Defined in the MaskingUIConfig module.
Specifies the visibility of attributes based on user roles.
Attributes can have PLAIN or MASKED visibility.
Implementation:
Attributes are extracted from the response using JSON paths.
If a user's role does not permit plain text access, the attribute is masked based on the configured pattern.
Curl:
The Mukta Organisation Search service is designed to provide secure and efficient access to organisation data. It incorporates configurable masking patterns and role-based policies to safeguard sensitive information while maintaining accessibility for authorized users.
PII data - Door No, Street Name, Locality, Mobile Number, Email ID, PAN, GSTIN.
The response would be based on the config set in MDMS-V2 which masks the above fields in appropriate patterns.
Role-Based Attribute Access:
Ensures that only authorized roles can access sensitive organisation attributes in plain text.
Configurable access levels for each role.
Configurable Masking Patterns:
Provides flexibility to define masking patterns for each attribute.
Masks sensitive information to ensure data security.
Dynamic Masking Configurations:
Uses MDMS (Master Data Management System) for dynamic retrieval of masking configurations.
For a user without plain text access:
For a user with plain text access:
MDMS Configuration Fetching:
Retrieves masking patterns and role-based policies dynamically from MDMS.
Role-Based Masking Logic:
Determines access levels for each role.
Applies appropriate masking patterns to sensitive attributes.
Dynamic Masking of Attributes:
Masks attributes such as name, registration number, and address based on user roles and configurations.
Handles complex paths within objects (e.g., geoLocation.boundaryCode).
User Request:
The user sends a search request with RequestInfo and SearchCriteria.
Configuration Fetching:
Service fetches masking patterns and role-based policies from MDMS.
Attribute Masking:
Attributes are masked/unmasked based on user roles and configurations.
Response Generation:
Returns the masked/unmasked organisation data to the user.
Curl:
Works-PDF is an intermediary service that bridges the gap between the pdf-service and client requests. Within works-pdf, there are several APIs available for producing various PDFs. This service gathers data from multiple sources, amalgamates it, and then forwards the request to the PDF service for PDF generation.
Further, Works PDF can produce an Excel file when a payment is initiated. It actively listens to the "expense-payment-create" topic, capturing relevant payment data to trigger this process.
MDMS
Project
Estimates
Muster Roll
Contract
Organization
Localization
Expense
Expense calculator
Bank account
Filestore
The system retrieves data from various sources to create multiple PDFs such as estimates, muster reports, and project documents.
When a payment is generated, it produces Excel files corresponding to the payment bills. This is triggered by a payment creation event communicated through a topic.
Users also have the option to recreate the Excel files for a specific payment using the same payment ID. This functionality allows for the regeneration of payment-related Excel documents.
Add all pdf configurations under pdf-service data config and format config
Add file type 'application/zip' under xlsx
format in egov-filestore
allowed-file-formats-map
.
Estimates PDF - Data Config, Format Config
Muster Roll PDF - Data Config, Format Config
Project PDF - Data Config, Format Config
Work order PDF - Data Config, Format Config
/egov-pdf/download/estimate/estimates
ESTIMATE_CREATOR
ESTIMATE_VERIFIER
TECHNICAL_SANCTIONER
ESTIMATE_APPROVER
ESTIMATE_VIEWER
/egov-pdf/download/musterRoll/muster-roll
MUSTER_ROLL_APPROVER
ORG_ADMIN
MUSTER_ROLL_VERIFIER
/egov-pdf/download/project/project-details
PROJECT_VIEWER
/egov-pdf/download/workOrder/work-order
ORG_ADMIN
WORK_ORDER_VIEWER
WORK_ORDER_APPROVER
/egov-pdf/bill/_generate
BILL_ACCOUNTANT
/egov-pdf/bill/_search
BILL_ACCOUNTANT
Create accounts for purchase and wage bills, for head codes where the category is deduction.
Example: Below is the head code object:
Where tenantId is pg.citya
The format of referenceId is Deduction_{tanentId}_{headcode}
Then create a bank account with the field referenceId
value Deduction_pg.citya_LC
MUKTA Services is an intermediary service that bridges the gap between the API and client requests. It helps Clients/UI gather all the required information from different services.
MDMS
MDMS V2
Estimates
Muster Roll
Contract
Measurement
Bank Accounts
Individual
Organisation
mukta-services/measurement/_search
MB_CREATOR
mukta-services/bankaccount-service/bankaccount/v1/_search
VIEW_DED_UNMASKED
mukta-services/individual/v1/_search
VIEW_WS_UNMASKED
mukta-services/org-services/organisation/v1/_search
VIEW_ORG_UNMASKED
This service handles all the measurement creation criteria and helps the UI consolidate all information. The measurement period is calculated in the mukta-services based on the same criteria.
The measurement response would be based on the config https://github.com/egovernments/egov-mdms-data/blob/UNIFIED-DEV/data/pg/works/MeasurementBFFConfig.json which transforms the final consolidated object of Estimate, Contract, measurement, and Muster roll into the user-requested object.
This service masks the search response before displaying it in the UI. This middleware eliminates the need to make major changes in the backend. The masking is done based on the user roles for sensitive PII data.
Three APIs have been defined under the data privacy controller as follows:
BankAccountSearch: Unmasking Role - VIEW_DED_UNMASKED
IndividualSearch: Unmasking Role - VIEW_WS_UNMASKED
OrganisatonSearch: Unmasking Role - VIEW_ORG_UNMAKSED
Configure master data templates for MUKTASoft
This section is designed with the objective of helping implementation parties and end-users collect the required master data through minimal interaction and iterations and ensure the quality, consistency and shape of data needed to configure the system.
This page is intended to help stakeholders as given below on data gathering activities.
State Team
eGov Onsite Team/ Implementation Team
ULB Team (Nodal and DEO)
Implementation Partners
The artefacts of this document are the data template of a configurable entity, a page with content defining the entity template and helping on how to fill the template with required data.
Download the data template attached to this page.
Find the meaning of the different headers in the Data Definition section on this page
Make sure all the headers, data type, field size and definition/ description are clear. In case of any doubt, please reach out to the person who has shared this document with you to discuss the same and clear out the doubts.
Identify the different types of user roles on the basis of ULB functions.
Start filling the data starting from serial no. and complete a record at once. Repeat this exercise until the entire data is filled into a template.
Verify the data once again by going through the checklist and taking care of each and every point mentioned in the checklist.
The checklist is a set of activities to be performed once the data is filled into a template to ensure data type, size, and format of data is as per the expectation. These activities have been divided into 2 groups as given below.
This checklist covers all the activities which are common across the entities.
1
Make sure that each and every point in this reference list has been taken care of
This checklist covers the activities specific to the entity.
1
The Code should be alphanumeric and unique
DR
2
The Name should not contain any special characters
The service generates rate analysis for SOR (Schedule of Rates) compositions using four APIs:
Job Management:
Create Job API: Creates a new job.
Search Job API: Searches for existing jobs.
Rate Analysis:
Generate Rate Analysis API: Generates rate analysis.
Create Rate Analysis API: Saves the rate analysis.
To save the rate analysis per unit, the scheduler/create API is triggered. This internally calls the Create API and computes the rates generated with the help of the Calculate API.
This streamlined process ensures accurate rate analysis for SOR compositions.
DIGIT backbone services
Persister
MDMSV2
IDgen
The Rate Analysis Save API internally calls the existing MDMSv2 API to save the rates, eliminating the need for a new database design. The Rate Analysis Create API generates the rate analysis in real-time.
The client should call the Scheduler Create API to save the generated rate analysis. This API creates a job that includes a list of SORs requiring rate revisions (even a single SOR is passed as a list).
The statements service is used to generate and save the statement. The business logic for both types of statements differs based on the request. Hence, there are 4 APIs (2- Create and 2- Search).
MUKTASoft provides two types of statements: Analysis Statements and Utilization Statements.
Analysis Statement
Purpose: Generated for estimates already created and present in the system.
Accessibility: Employees can view the Analysis Statement from the estimate view screen.
Linkage: The statement is linked to the specific estimate for which it is generated.
Utilization Statement
Purpose: Generated for measurement books already created and present in the system.
Accessibility: Employees can view the Utilization Statement from the measurement view screen.
Linkage: The statement is linked to the specific measurement for which it is generated.
DIGIT backbone services
Persister
MDMSV2
IDgen
Rate Analysis
Estimate
Measurement Book
Contract
Project types are the category of works which are included and executed under the scheme MUKTA.
1
DR
Drainage and sewerage work [Except de-siltation]
01/04/2022
Yes
2
SN
Sanitation work [Except road sweeping and drain cleaning]
3
WT
Water conservation and rain water harvesting structures
The data given in the table is sample data for reference.
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Local Language)
Text
256
No
Project type name in local language
4
Effective From
Date
NA
Yes
Date from which the project is effective
5
Effective To
Date
NA
No
Date till which the project is effective
6
Is Active
Boolean
NA
Yes
Whether the project is active or not
Dashboard reindexing is a way to refresh and update both wage bill and muster roll indices once the "gender" field is added to the additional details of an individual. The following sections explain how to do this.
In Elasticsearch, back up the original index and create a new migrate index.
Define a new migrate topic in the indexer and link it to the migrate index.
Ensure you have Python3 installed on your local system.
Start a Kafka client and set up port forwarding for Elasticsearch, pointing Kafka bootstrap servers to the Elasticsearch port (usually localhost:9200).
Launch an indexer service using indexer files.
Retrieve data from services via API, either in bulk or individual search.
Formulate an insert request for the indexer, whether for bulk or single data.
Send the insert request to the migrate topic.
Verify the data in the migrate index.
Delete the original index, create a new one, and transfer data from the migrate index to the new original index.
These steps help you update and manage Elasticsearch indices effectively.
expense-bill-index
muster-inbox
MUKTA is known as a scheme and it is configured in the system along with its HOAs.
1
MUKTA
MUKTA
ମୁକ୍ତା
The data given in the table is sample data for reference.
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Scheme Name
Text
256
Yes
Provides the name of the project type
3
HOA
Text
256
No
Project type name in local language
4
Effective From
Date
Date from which the project is effective
5
Effective To
Date
Date till which the project is effective
6
Is Active
Boolean
Whether the project is active or not
Role definition master data templates
In MUKA community-based organizations have different roles to play based on the work value. The role defined is Implementation Agengency and Implementation Partner.
1
IA
Implementation Agency
କାର୍ଯ୍ୟକାରୀ ଏଜେନ୍ସି/ସଂସ୍ଥା
2
IP
Implementation Partner
କାର୍ଯ୍ୟକାରୀ ସହଭାଗୀ
The data given in the table is sample data for reference.
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Description
Text
256
Yes
Provides the name of the project type
3
Description (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date
Date from which the project is effective
5
Effective To
Date
Date till which the project is effective
6
Is Active
Boolean
Whether the project is active or not
Overheads are the items other than SOR and Non-SOR which are included in the estimate to complete the estimation and arrive at the final value of work.
The data given in the table is sample data for reference.
Target demography are the areas which are on prime focus of Government for the employment and improvement.
The data given in the table is sample data for reference.
Unit of measurements is the units used to capture the measurement and create the estimate for work in MUKTA.
The data given in the table is sample data for reference.
The Community Based Organization are further categories and refered as sub type.
The data given in the table is sample data for reference.
These are the heads under which MUKTA expenditure is booked.
The data given in the table is sample data for reference.
Skills are defined for the wage seekers and have different wages defined for each skill category. These wages are revised by the government over a period of time.
The data given in the table is sample data for reference.
The organization's functional category define the functional area of an organization.
The data given in the table is sample data for reference.
The rank/ class of the organization defined helps the government to choose the right organization for work.
The data given in the table is sample data for reference.
The Community Based Organization and Vendors are created as 2 different type of organization.
The data given in the table is sample data for reference.
The roles defined in the system carry specific functionality and need to map with users when created in the system to enable the user to use the respective functionality.
The data given in the table is sample data for reference.
The enties which are working for the MUKTA schemes like supervision of work, supply of materials etc. are known as organization the ULBs maintained the registries of them.
The data given in the table is sample data for reference.
Wage seekers are the people who are looking for employment and willing to work on MUKTA works.
The data given in the table is sample data for reference.
These are name of sections/ departments within the ULBs which set the functional scope of employees belong to these sections.
The data given in the table is sample data for reference.
Users are the employees of the ULB who are supposed to use the system. Hence their details are collected and added to the system.
The data given in the table is sample data for reference.
Configure event notification details
Schedule of rates are the items used to estimate civil works. The schedule is common across all the ULBs in a state while the rates specific to a ULB.
The data given in the table is sample data for reference.
Click on the doc link below to access the platform service configuration details:
Refer to and run the migrate scripts using python3.
1
SC
Supervision Charge
ତଦାରଖ ଦେୟ
Yes
Percentage
7.5
2
GST
Goods and Service Tax
ଦ୍ରବ୍ୟ ଏବଂ ସେବା କର
Yes
Percentage
18
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Description
Text
256
Yes
Provides the name of the project type
3
Description (Odiya)
Text
256
No
Project type name in local language
4
Is work order value?
Boolean
5
Calculation Method
Identifier
6
Percentage/Value
Numeric
4
Effective From
Date
Date from which the project is effective
5
Effective To
Date
Date till which the project is effective
6
Is Active
Boolean
Whether the project is active or not
1
SM
Slum
ବସ୍ତି
2
SC
Area inhabited by SC
ଅନୁସୂଚିତ ଜାତି (ଏସ.ସି)ସମ୍ପ୍ରଦାୟ ବାସ କରୁଥିବା ଅଞ୍ଚଳ
3
ST
Area inhabited by ST
ଅନୁସୂଚିତ ଜନଜାତି (ଏସ.ଟି)ସମ୍ପ୍ରଦାୟ ବାସ କରୁଥିବା ଅଞ୍ଚଳ
4
MN
Area inhabited by Minorities
ସଂଖ୍ୟାଲଘୁ ସମ୍ପ୍ରଦାୟ ବାସ କରୁଥିବା ଅଞ୍ଚଳ
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date
Date from which the project is effective
5
Effective To
Date
Date till which the project is effective
6
Is Active
Boolean
Whether the project is active or not
1
CUM
Cubic Meter
ଘନ ମିଟର
2
SQM
Square Meter
ବର୍ଗ ମିଟର
3
RMT
Running Meter
ରନିଙ୍ଗ ମିଟର
4
KG
Kilogram
କିଲୋଗ୍ରାମ
5
NOS
Numbers
ସଂଖ୍ୟାଗୁଡିକ
6
CFT
Cubic Feet
ଘନ ଫୁଟ
7
SFT
Square Feet
ବର୍ଗ ଫୁଟ
8
FT
Feet
ଫୁଟ
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Description
Text
256
Yes
Provides the name of the project type
3
Description (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date
Date from which the project is effective
5
Effective To
Date
Date till which the project is effective
6
Is Active
Boolean
Whether the project is active or not
1
VEN
CMS
Construction Material Supplier
ନିର୍ମାଣ ସାମଗ୍ରୀ ଯୋଗାଣକାରୀ
2
VEN
NA
Not Applicable
ପ୍ରଯୁଜ୍ୟ ନୁହେଁ
3
CBO
MSG
Mission Shakti Group
ମିଶନ୍ ଶକ୍ତି ଗୋଷ୍ଠୀ
4
CBO
SDA
Slum Dwellers Association
ବସ୍ତି ବାସିନ୍ଦା ସଂଘ
5
CBO
ALF
Area Level Federation
କ୍ଷେତ୍ର ସ୍ତରୀୟ ମହାସଂଘ
6
CBO
CLF
Clustor Level Federation
କ୍ଲଷ୍ଟର ସ୍ତରୀୟ ମହାସଂଘ
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
1
WEG
Wages
ମଜୁରୀ
2
SC
Supervision Charge
ତଦାରଖ ଦେୟ
3
GST
Goods and Service Tax
ଦ୍ରବ୍ୟ ଏବଂ ସେବା କର
4
MC
Material Cost
ସାମଗ୍ରୀ ମୂଲ୍ୟ
5
PA
Purchase
କ୍ରୟ ପରିମାଣ
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Description
Text
256
Yes
Provides the name of the project type
3
Description (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
1
Un-skilled
Male mulia
ପୁରୁଷ ମୁଲିଆ
345
2
Un-skilled
Female mulia
ମହିଳା ମୁଲିଆ
345
3
Un-skilled
Survey Khalasi/ Chain Man
ସର୍ଭେ ଖଲାସୀ / ଚେନ୍ ମ୍ୟାନ
345
4
Un-skilled
Scavanger
ଝାଡୁଦାର/ସଫେଇବାଲା
345
5
Semi Skilled
Mulia working in water or arduous nature of work
ପାଣିରେ କାମ କରୁଥିବା ମୁଲିଆ କିମ୍ବା କଠିନ ପ୍ରକାର କାର୍ଯ୍ୟ
385
6
Semi Skilled
Night mulia or attendant working in flood and other emergent work
ବନ୍ୟା ଏବଂ ଅନ୍ୟାନ୍ୟ ଜରୁରୀକାଳୀନ କାର୍ଯ୍ୟ କରୁଥିବା ରାତିର ମୁଲିଆ କିମ୍ବା ସେବକ
385
7
Semi Skilled
Mulia for handling hot binder and Tar boiler men
ହଟ୍ ବାଇଣ୍ଡର୍ ପରିଚାଳନା କରିବା ପାଇଁ ମୁଲିଆ ଏବଂ ଟାର୍ ବଏଲର ମେନ୍
385
8
Semi Skilled
Sangi mulia
ସଙ୍ଗୀ ମୁଲିଆ
385
9
Semi Skilled
Pile driving mate (Guide Man )
ପାଇଲ ଡ୍ରାଇଭିଂ ସାଥୀ (ଗାଇଡ୍ ମ୍ୟାନ୍)
385
10
Semi Skilled
Mate
ସାଥୀ
385
11
Semi Skilled
Helper to carpenter or Blacksmith/ Painter/Blaster/ Plumber/ Electrician/ Fitter/ Welder
ବଢ଼େଇ କିମ୍ବା କମାର / ଚିତ୍ରକାର / ବ୍ଲାଷ୍ଟର /ପାଇପ୍ ମିସ୍ତ୍ରୀ/ ଇଲେକ୍ଟ୍ରିସିଆନ୍ / ଫିଟର୍ / ୱେଲଡର୍(ଝଳେଇ ମିସ୍ତ୍ରୀ) ପାଇଁ ସାହାଯ୍ୟକାରୀ
385
12
Semi Skilled
Hammer man
ହାତୁଡ଼ି ସାହାଯ୍ୟରେ କାର୍ଯ୍ୟ କରୁଥିବା ବ୍ୟକ୍ତି
385
13
Semi Skilled
Thatcher/ Gharami
ଛପର କରୁଥିବା ବ୍ୟକ୍ତି/ ଘରାମି
385
14
Semi Skilled
Tile turner
ଟାଇଲ୍ ଟର୍ନର |
385
15
Semi Skilled
Boat man
ଡଙ୍ଗା ଚାଳକ/ନାଉରିଆ
385
16
Semi Skilled
Bhisti
ଜଳ ପରିବହନକାରୀ
385
17
Semi Skilled
Well sinker
କୂପ ଖନନକାରୀ
385
18
Semi Skilled
Rod binder and bender
ରଡ୍ ବାଇଣ୍ଡର୍ ଏବଂ ବେଣ୍ଡର୍
385
19
Semi Skilled
Cleaner/ Sweeper
ସଫେଇବାଲା/ଝାଡୁଦାର
385
20
Semi Skilled
Stone packer
ଷ୍ଟୋନ୍ ପ୍ୟାକର୍ (ପଥର ଖଞ୍ଜୁଥିବା ବ୍ୟକ୍ତି)
385
21
Semi Skilled
Pump helper
ପମ୍ପ ହେଲପର
385
22
Semi Skilled
Watch man( Store)/Gurkha / Security Guard
ଜଗୁଆଳି (ଷ୍ଟୋର୍) /ଗୁରଖା / ସୁରକ୍ଷା କର୍ମୀ
385
23
Semi Skilled
Bellow man
ସାଥୀ
385
24
Skilled
Blaster (Second Class)
ବ୍ଲାଷ୍ଟର (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
25
Skilled
Mason (Second Class)
ରାଜମିସ୍ତ୍ରୀ (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
26
Skilled
Carpenter (Second Class)
ବଢ଼େଇ (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
27
Skilled
Blacksmith (Second Class)
କମାର (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
28
Skilled
Fitter(Second Class)
ଫିଟର୍ (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
29
Skilled
Painter/ Polisher (Second Class)
ଚିତ୍ରକାର / ପଲିସର (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
30
Skilled
Welder(Second Class)
ୱେଲଡର୍ ବା ଝଳେଇ ମିସ୍ତ୍ରୀ (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
31
Skilled
Plumber(Second Class)
ପାଇପ୍ ମିସ୍ତ୍ରୀ (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
32
Skilled
Driller (Second Class)
ଡ୍ରିଲର୍ (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
33
Skilled
Stone dresser/ Cutter (Second Class)
ପଥର ବା ଷ୍ଟୋନ୍ ଡ୍ରେସର୍/ କଟର୍ (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
34
Skilled
Cobbler with Tools (Second Class)
ସାଧନ ସହିତ ମୋଚି (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
35
Skilled
Wire man/ Lift Operator/ Diesel pump driver/ Telephone operator (Second Class)
ୱେୟାର ମ୍ୟାନ୍ / ଲିଫ୍ଟ ଅପରେଟର / ଡିଜେଲ ପମ୍ପ ଡ୍ରାଇଭର / ଟେଲିଫୋନ୍ ଅପରେଟର (ଦ୍ୱିତୀୟ ଶ୍ରେଣୀ)
435
36
Skilled
Boring Mistry / Pipe Driver
ବୋରିଂ ମିସ୍ତ୍ରୀ / ପାଇପ୍ ଡ୍ରାଇଭର
435
37
Skilled
Electrician/ Rigger/ Line man/ Telephone attendent
ଇଲେକ୍ଟ୍ରିସିଆନ୍ / ରିଗର୍ / ଲାଇନ୍ ମ୍ୟାନ୍ / ଟେଲିଫୋନ୍ ସେବକ ଆଟେଡାଣ୍ଟ
435
38
Skilled
Gardener
ମାଳି
435
39
Skilled
Amin
ଅମିନ
435
40
Skilled
Tracer
ଟ୍ରେସର୍
435
41
Skilled
Jr. Progress Recorder
ପ୍ରଗତି ରେକର୍ଡର୍
435
42
Skilled
Store Keeper Gr - IV/ Store Assitant
ଷ୍ଟୋର କିପର୍ -ଚତୁର୍ଥ ସ୍ତର/ଷ୍ଟୋର ଆସିଷ୍ଟାଣ୍ଟ
435
43
Skilled
Account Clerk/ Clerk/ Typist
ଆକାଉଣ୍ଟ୍ କ୍ଲର୍କ / କ୍ଲର୍କ / ଟାଇପିଷ୍ଟ
435
44
Skilled
Tool Keeper/ Time Keeper/ Munsi
ଟୁଲ୍ କିପର୍ / ଟାଇମ୍ କିପର୍ / ମୁନ୍ସି
435
45
Highly Skilled
Blaster (licensed)
ବ୍ଲାଷ୍ଟର (ଲାଇସେନ୍ସପ୍ରାପ୍ତ)
495
46
Highly Skilled
Mason (special)
ରାଜମିସ୍ତ୍ରୀ (ସ୍ୱତନ୍ତ୍ର)
495
47
Highly Skilled
Carpenter (special)
ବଢ଼େଇ (ସ୍ୱତନ୍ତ୍ର)
495
48
Highly Skilled
Blacksmith (special)
କମାର (ସ୍ୱତନ୍ତ୍ର)
495
49
Highly Skilled
Fitter(special)
ଫିଟର୍ (ସ୍ୱତନ୍ତ୍ର)
495
50
Highly Skilled
Painter/ Polisher (special)
ଚିତ୍ରକାର / ପଲିସର (ସ୍ୱତନ୍ତ୍ର)
495
51
Highly Skilled
Welder(special)
ୱେଲଡର୍ ବା ଝଳେଇ ମିସ୍ତ୍ରୀ (ସ୍ୱତନ୍ତ୍ର)
495
52
Highly Skilled
Plumber(special)
ପାଇପ୍ ମିସ୍ତ୍ରୀ (ସ୍ୱତନ୍ତ୍ର)
495
53
Highly Skilled
Driller (Special)
ଡ୍ରିଲର୍ (ସ୍ୱତନ୍ତ୍ର)
495
54
Highly Skilled
Stone dresser/ Cutter(special)
ପଥର ବା ଷ୍ଟୋନ୍ ଡ୍ରେସର୍/ କଟର୍ (ସ୍ୱତନ୍ତ୍ର)
495
55
Highly Skilled
Diver for well sinking in bridge ( per shift of four hours,)
ବ୍ରିଜରେ ଭଲ ବୁଡ଼ିବା ପାଇଁ ଡାଇଭର୍ (ଚାରି ଘଣ୍ଟାର ସିଫ୍ଟ ପ୍ରତି,)
495
56
Highly Skilled
Electrician/ Air conditioned plant operator/ wire man/ fill operator/ Diesel pump operator(special).
ଇଲେକ୍ଟ୍ରିସିଆନ୍ / ଶୀତତାପ ନିୟନ୍ତ୍ରିତ ଉଦ୍ଭିଦ ଅପରେଟର /ୱେୟାର ମ୍ୟାନ୍ / ଫିଲ୍ ଅପରେଟର / ଡିଜେଲ ପମ୍ପ ଅପରେଟର (ସ୍ୱତନ୍ତ୍ର) |
495
57
Highly Skilled
Jeep driver/ Tractor driver / Truck driver / Dozer driver / Roller driver / Concrete mixture operator / Crane operator
ଜିପ୍ ଡ୍ରାଇଭର / ଟ୍ରାକ୍ଟର ଡ୍ରାଇଭର / ଟ୍ରକ୍ ଡ୍ରାଇଭର / ଡୋଜର ଡ୍ରାଇଭର / ରୋଲର୍ ଡ୍ରାଇଭର / କଂକ୍ରିଟ୍ ମିଶ୍ରଣ ଅପରେଟର / କ୍ରେନ୍ ଅପରେଟର |
495
58
Highly Skilled
Auto electrician
ଅଟୋ ଇଲେକ୍ଟ୍ରିସିଆନ୍
495
59
Highly Skilled
Guiniting Machine operator
ଗିନିଟିଂ ମେସିନ୍ ଅପରେଟର
495
60
Highly Skilled
Senior Accountant / Stenographer
ସିନିୟର ଆକାଉଣ୍ଟାଣ୍ଟ / ଷ୍ଟେନୋଗ୍ରାଫର୍
495
61
Highly Skilled
Supervisor / Manager
ପର୍ଯ୍ୟବେକ୍ଷକ / ମ୍ୟାନେଜର (ପରିଚାଳକ)
495
62
Highly Skilled
Testing Laboratory Assistant / Instrument Mechanic/ Telephone Mechanic.
ପରୀକ୍ଷା ଲାବୋରେଟୋରୀ ଆସିଷ୍ଟାଣ୍ଟ / ଇନଷ୍ଟ୍ରୁମେଣ୍ଟ ମେକାନିକ୍ / ଟେଲିଫୋନ୍ ମେକାନିକ୍
495
63
Highly Skilled
Rigger and Cobbler with Tools Driver (Heavy Vehicle)
ସାଧନ ଉପକରଣ ଡ୍ରାଇଭର (ଭାରୀ ଯାନ) ସହିତ ରିଗର୍ ଏବଂ କୋବଲର୍
495
64
Others
Boring Mistry (Special)
ବିରକ୍ତିକର ମିଷ୍ଟ୍ରି (ବିଶେଷ)
495
65
Others
Winch operator
ଉଇଞ୍ଚ ଅପରେଟର
495
66
Others
Well Sinker (Special)
କୂପ ଖନନକାରୀ (ସ୍ୱତନ୍ତ୍ର)
495
67
Others
Helper to Well Sinker
କୂପ ଖନନକାରୀ ପାଇଁ ସାହାଯ୍ୟକାରୀ
435
68
Others
Compijter Programmer
କମ୍ପୁଟର ପ୍ରୋଗ୍ରାମର୍
69
Others
Data Entry Operator
ଡାଟା ଏଣ୍ଟ୍ରି ଅପରେଟର୍
70
Others
Helper to operator of Heavy construction Machineries
ଭାରୀ ନିର୍ମାଣ ଯନ୍ତ୍ରପାତିର ଅପରେଟର ପାଇଁ ସାହାଯ୍ୟକାରୀ
71
Others
Mechanic for Heavy construction Machineries
ଭାରୀ ନିର୍ମାଣ ଯନ୍ତ୍ରପାତି ପାଇଁ ମେକାନିକ୍
72
Others
Helper to mechanic for heavy construction Machineries
ଭାରୀ ନିର୍ମାଣ ଯନ୍ତ୍ରପାତିର ମେକାନିକ୍ ପାଇଁ ସାହାଯ୍ୟକାରୀ
73
Others
Operator lor Heavy construction Machineries
ଭାରୀ ନିର୍ମାଣ ଯନ୍ତ୍ରପାତି ପାଇଁ ଅପରେଟର୍
74
Others
Junior Research Assistant (Technical Assistant)
କନିଷ୍ଠ ଅନୁସନ୍ଧାନ/ଗବେଷଣା ସହାୟକ (ବୈଷୟିକ ସହାୟକ)
1
Category
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Skill (English)
Text
256
Yes
Provides the name of the project type
3
Skill (Odiya)
Text
256
No
Project type name in local language
4
Rates
Numeric
5
Effective From
Date
Date from which the project is effective
6
Effective To
Date
Date till which the project is effective
7
Is Active
Boolean
Whether the project is active or not
1
VEN
CW
Civil Works
ବେସାମରିକ କାର୍ଯ୍ୟସମୂହ
2
VEN
EW
Electical Works
ବୈଦ୍ୟୁତିକ କାର୍ଯ୍ୟସମୂହ
3
CBO
NA
Not Applicable
ପ୍ରଯୁଜ୍ୟ ନୁହେଁ
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
1
A
Class A
ଶ୍ରେଣୀ କ
2
B
Class B
ଶ୍ରେଣୀ ଖ
3
C
Class C
ଶ୍ରେଣୀ ଗ
4
D
Class D
ଶ୍ରେଣୀ ଘ
5
NA
Not Applicable
ପ୍ରଯୁଜ୍ୟ ନୁହେଁ
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
Sr. No.
Code
Description
Description (Odiya)
Applicable
Calculation Method
Percentage/ Value
Effective From
Effective To
Is Active
1
LC
Labour Cess
ଶ୍ରମ ଉପକର (ସେସ୍)
Vendor
Percentage
1
2
ITTDS
IT TDS
ଆଇ.ଟି ଟି.ଡ଼ି.ଏସ୍
Vendor
Percentage
10
3
ROM
Royalty on minerals
ଖଣିଜ ପଦାର୍ଥ ଉପରେ ଲାଭାଂଶ
Vendor
Not Calculated
4
ECB
Empty Cement Bag
ଖାଲି ସିମେଣ୍ଟ ବ୍ୟାଗ୍
Vendor
Not Calculated
5
GSTTDS
GST TDS
ଜି.ଏସ୍.ଟି ଟି.ଡ଼ି.ଏସ୍
Vendor
Percentage
2
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Description
Text
256
Yes
Provides the name of the project type
3
Description (Odia)
Text
256
No
Project type name in local language
4
Applicable
Options
5
Calculation Method
Identifier
6
Percentage/Value
Numeric
4
Effective From
Date
Date from which the project is effective
5
Effective To
Date
Date till which the project is effective
6
Is Active
Boolean
Whether the project is active or not
1
PROJECT_CREATOR
Poject Creator
Create Search View Modify
Project
2
PROJECT_VIEWER
Project Viewer
Search View
Project
4
ESTIMATE_CREATOR
Estimate Creator
Inbox Create Search View Edit
Estimate
5
ESTIMATE_VERIFIER
Estimate Verifier
Inbox Search View Verify and Forward Send Back
Estimate
6
TECHNICAL_SANCTIONER
Technical Sanctioner
Inbox Search View Technically Sanction Send Back Send Back To Originator Reject
Estimate
7
ESTIMATE_APPROVER
Estimate Approver
Inbox Search View Approve Send Back Send Back To Originator Reject
Estimate
9
WORK_ORDER_CREATOR
Work Order Creator
Inbox Create Search View Edit
Contract
10
WORK_ORDER_VIEWER
Work Order Verifier
Inbox Search View Verify and Forward Send Back
Contract
11
WORK_ORDER_APPROVER
WOrk Order Approver
Inbox Search View Approve Send Back Send Back To Originator Reject
Contract
13
MUSTER_ROLL_VERIFIER
Muster Roll Verifier
Inbox Search View Edit Verify and Forward Send Back
Muster Roll
14
MUSTER_ROLL_APPROVER
Muster Roll Approver
Inbox Search View Approve Send Back
Muster Roll
16
MUKTA_ADMIN
MUKTA Admin
Create Organization Search Organization View Organization Modify Organization Search Wage Seeker View Wage Seeker Modify Wage Seeker
Masters
17
HRMS_ADMIN
HRMS Admin
Create Employee Search Employee View Employee Modify Employee
Employee Users
18
STADMIN
Dashboard Viewer
Mukta Dashboard
Mukta Dashboard
19
ORG_ADMIN
CBO Admin
all actions of CBO portal
CBO Portal
20
BILL_CREATOR
Bill Creator
Inbox Search View Create
Billing
21
BILL_VIEWER
Bill Viewer
Inbox Search View
Billing
22
EMPLOYEE_COMMON
Common Role For all employee
This role will have all common access that employee should have like edit profile, get Workflow status etc
Common
23
ESTIMATE_VIEWER
Estimate Viewer
View
Estimate
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
1
WRK
EE
Executive Engineer
କାର୍ଯ୍ୟନିର୍ବାହୀ ଯନ୍ତ୍ରୀ
2
WRK
DEE
Deputy Executive Engineer
ଡେପୁଟି କାର୍ଯ୍ୟନିର୍ବାହୀ ଯନ୍ତ୍ରୀ
3
WRK
AEE
Assistant Executive Engineer
ସହକାରୀ କାର୍ଯ୍ୟନିର୍ବାହୀ ଯନ୍ତ୍ରୀ
4
WRK
ME
Municipal Engineer
ମ୍ୟୁନିସିପାଲିଟି ଇଞ୍ଜିନିୟର୍ (ଯନ୍ତ୍ରୀ)
5
WRK
CE
City Enginner
ସିଟି ଇଞ୍ଜିନିୟର୍ (ଯନ୍ତ୍ରୀ)
6
WRK
AE
Assistant Enginner
ସହକାରୀ ଯନ୍ତ୍ରୀ
7
WRK
JE
Junior Enginner
କନିଷ୍ଠ ଯନ୍ତ୍ରୀ
8
WRK
RI
Revenue Inspector
ରାଜସ୍ୱ ନିରୀକ୍ଷକ
9
WRK
AM
Ameen
ଅମିନ୍
10
WRK
DA
Dealing Assistant
ସଂପୃକ୍ତ ସହାୟକ
11
WRK
PC
Program Coordinator (MUKTA)
ପ୍ରୋଗ୍ରାମ(କାର୍ଯ୍ୟ) ସଂଯୋଜକ (ମୁକ୍ତା)
12
WRK
IE
Implementation Expert (MUKTA)
କାର୍ଯ୍ୟାନ୍ୱୟନ /କାର୍ଯ୍ୟକାରୀ ବିଶେଷଜ୍ଞ (ମୁକ୍ତା)
13
WRK
ACCE
Account Expert (MUKTA)
ଆକାଉଣ୍ଟ ବିଶେଷଜ୍ଞ (ମୁକ୍ତା)
14
ACC
AO
Accounts Officer
ଆକାଉଣ୍ଟସ୍ ଅଫିସର(ହିସାବ ଅଧିକାରୀ)
15
ACC
JAO
Junior Accounts Officer
କନିଷ୍ଠ ଆକାଉଣ୍ଟସ୍ ଅଫିସର(ହିସାବ ଅଧିକାରୀ)
16
ADM
MC
Commissioner
କମିଶନର
17
ADM
ADMC
Additional Commissioner
ଅତିରିକ୍ତ କମିଶନର
18
ADM
DMC
Deputy Commissioner
ଡେପୁଟି କମିଶନର
19
ADM
AMC
Assistant Commissioner
ସହକାରୀ କମିଶନର
20
ADM
EO
Executive Officer
କାର୍ଯ୍ୟନିର୍ବାହୀ ଅଧିକାରୀ
21
ADM
AEO
Assistant Executive Officer
ସହକାରୀ କାର୍ଯ୍ୟନିର୍ବାହୀ ଅଧିକାରୀ
22
Tax
WO
Ward Officer
ୱାର୍ଡ ଅଫିସର
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
1
Mission Shakti Group
Mission Shakti
NM-101/A-0231/1231
01/04/2020
Community Based Organization
Area Level Federation
Not Applicable
Not Applicable
01/04/2021
Jatni
Ward1
MG Road
Asha Devi
8762134510
Mission Shakti Group
1000010342151
UBI00171231
KNSPD7109N
2
3
4
5
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
1
Sunil
Kamlesh
Father
01/03/1991
Male
OBC
7007099196
759001
Dhenkanal
Ward 1
Mahisapat
101/A/01
Sunil
041401518941
ICIC0000047
2
Vishwash
Kumar N
Father
01/03/1991
Male
OBC
7007099196
759001
Dhenkanal
Ward 1
Bankual
101/A/02
Vishwash
041401518942
ICIC0000047
3
Karunesh
Varunesh P
Father
01/03/1991
Male
OBC
7007099196
759001
Dhenkanal
Ward 1
Ichhadeipur
101/A/03
Karunesh
041401518943
ICIC0000047
4
Ramesh
Mayank
Father
01/03/1991
Male
OBC
7007099196
759001
Dhenkanal
Ward 1
Bhagabanpur
101/A/04
Ramesh
041401518944
ICIC0000047
5
Anjali
Belram
Husband
01/03/1991
Female
GEN
7007099196
759001
Dhenkanal
Ward 1
Mahisapat
101/A/05
Anjali
041401518945
ICIC0000047
6
Rekha
Sheshkumar
Husband
01/03/1991
Female
SC
7007099196
759001
Dhenkanal
Ward 1
Bankual
101/A/06
Rekha
041401518946
ICIC0000047
7
Suresh
Mahesh
Father
01/03/1991
Male
SC
7007099196
759001
Dhenkanal
Ward 1
Ichhadeipur
101/A/07
Suresh
041401518947
ICIC0000047
8
Maheeni
Kankoj
Father
01/03/1991
Male
SC
7007099196
759001
Dhenkanal
Ward 1
Bhagabanpur
101/A/08
Maheeni
041401518948
ICIC0000047
9
Mehndi
Basantkumar
Father
01/03/1991
Female
OBC
7007099196
759001
Dhenkanal
Ward 1
Mahisapat
101/A/09
Mehndi
041401518949
ICIC0000047
10
Aslam
Rajesh M
Father
01/03/1991
Male
OBC
7007099196
759001
Dhenkanal
Ward 1
Bankual
101/A/10
Aslam
041401518950
ICIC0000047
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
1
PB/2023-24/000001
Purchase
1010
ORG
1000
2
PB/2023-24/000001
Purchase
1010
ULB
10
3
SB/2023-24/000002
Supervision
900
ORG
900
WB/2023-24/00001
WAGE
100
IND
A
WB/2023-24/00001
WAGE
200
IND
B
WB/2023-24/00001
WAGE
300
IND
C
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
1
W001
Ward 1
ୱାର୍ଡ ୧
2
W002
Ward 2
ୱାର୍ଡ ୨
3
W003
Ward 3
ୱାର୍ଡ ୩
4
W004
Ward 4
ୱାର୍ଡ ୪
5
W005
Ward 5
ୱାର୍ଡ ୫
6
W006
Ward 6
ୱାର୍ଡ ୬
7
W007
Ward 7
ୱାର୍ଡ ୭
8
W008
Ward 8
ୱାର୍ଡ ୮
9
W009
Ward 9
ୱାର୍ଡ ୯
10
W010
Ward 10
ୱାର୍ଡ ୧୦
11
W011
Ward 11
ୱାର୍ଡ ୧୧
12
W012
Ward 12
ୱାର୍ଡ ୧୨
13
W013
Ward 13
ୱାର୍ଡ ୧୩
14
W014
Ward 14
ୱାର୍ଡ ୧୪
15
W015
Ward 15
ୱାର୍ଡ ୧୫
16
W016
Ward 16
ୱାର୍ଡ ୧୬
17
W017
Ward 17
ୱାର୍ଡ ୧୭
18
W018
Ward 18
ୱାର୍ଡ ୧୮
19
W019
Ward 19
ୱାର୍ଡ ୧୯
20
W020
Ward 20
ୱାର୍ଡ ୨୦
21
W021
Ward 21
ୱାର୍ଡ ୨୧
22
W022
Ward 22
ୱାର୍ଡ ୨୨
23
W023
Ward 23
ୱାର୍ଡ ୨୩
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
1
L001
Kathagada
କାଠଗଡା
2
L002
Shyamacharanpur
ଶ୍ୟାମଚରଣପୁର
3
L003
Refugee Colony
ରିଫ୍ୟୁଜି କଲୋନୀ
4
L004
Kunjakanta
କୁଞ୍ଜକାନ୍ତ
5
L005
Gudia nali
ଗୁଡ଼ିଆ ନାଲି
6
L006
Chandamari Sahi
ଚନ୍ଦାମାରୀ ସାହି
7
L007
Rathagada
ରଥାଗଡା
8
L008
Danda sahi
ଦଣ୍ଡା ସାହି
9
L009
Manhisapat
ମନହିଷପାଟ
10
L010
Banamaliprasad
ବନମାଳିପ୍ରସାଦ
11
L011
Colony Sahi
କଲୋନୀ ସାହି
12
L012
Malhar Sahi
ମାଲହର ସାହି
13
L013
Muslm Basti
ମୁସଲିମ୍ ବସ୍ତି
14
L014
Kumbhara sahi
କୁମ୍ଭାର ସାହି
15
L015
Housing Board Colony
ହାଉସିଂ ବୋର୍ଡ କଲୋନୀ
16
L016
Jagannath Road
ଜଗନ୍ନାଥ ରୋଡ୍
17
L017
Sasan Chaka
ଶାସନ ଛକ
18
L018
Jaygopal Sahi
ଜୟଗୋପାଳ୍ ସାହି
19
L019
Bhagabanpur
ଭଗବାନ୍ପୁର
20
L020
Similia
ସିମିଳିଆ
21
L021
Town Planning
ଟାଉନ୍ ବଜାର
22
L022
Station Bazar
ଷ୍ଟେସନ୍ ବଜାର
23
L023
Alasua
ଅଲାସୁଆ
24
L024
Korian
କୋରିଆ
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
1
ADM
Administration
ପ୍ରଶାସନ
2
REV
Tax
କର
3
ACC
Accounts
ଆୟ ବ୍ୟୟ ହିସାବ
4
PHS
Public Health and Sanitation
ଜନସ୍ୱାସ୍ଥ୍ୟ ଏବଂ ପରିମଳ
5
WRK
Works
କାର୍ଯ୍ୟସମୂହ
6
TWP
Town Planning
ଟାଉନ୍ ଯୋଜନା
7
NULM
National Urban Livelihood Mission
ଜାତୀୟ ସହରାଞ୍ଚଳ ଜୀବିକା ମିଶନ
8
PR
Public Relations
ଜନ ସମ୍ପର୍କ
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
1
Dilip kumar mohanty
******9447
male
23/07/1964
Jatni
01-04-2023
Admin
City
Jatni
Executive Officer
2
Anuradha pradhan
******3858
female
11/05/1991
Jatni
01-04-2023
Admin
City
Jatni
Assistant Executive Engineer
3
Deepak kumar ratha
******2524
male
01/07/1965
Jatni
01-04-2023
Admin
City
Jatni
Assistant Engineer
4
Alok kumar swain
******6344
male
02/09/1975
Jatni
01-04-2023
Admin
City
Jatni
junior Engineer
5
madhusmita biswal
******9741
female
27/07/1992
Jatni
01-04-2023
Admin
City
Jatni
MUKTA programme Coordinater
6
Ascharyananda behera
******5961
male
09/05/1996
Jatni
01-04-2023
Admin
City
Jatni
MUKTA implemention Expert
7
Preetiabhinav pattnayak
******6981
female
07/08/1990
Jatni
01-04-2023
Admin
City
Jatni
MUKTA account Expert
8
Snehanjali Khatua
******7277
female
06/06/1993
Jatni
01-04-2023
Admin
City
Jatni
MIS
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
FL00001
Works
Flooring
Ground Floor
Fixing tiles in floors, treads or steps and landing over 25mm bed of C:M (1:1) jointed with neat cement slurry mixed with pigment to match the shade of the tiles including rubbing and polishing complete excluding the cost of pre-cast tiles
SQM
1
1307.80
3598.02
66.01
4.55
49.76
5026.14
CC00001
Works
Cement Concrete
Ground Floor
P.C.C. Grade M25 Using Batching plant, Transit Mixer and concrete pump (Data for 120.00 Cum)
CUM
120
329935.45
7095.84
49760.82
32001.01
15930
4347.23
439070.35
CC00002
Works
Cement Concrete
First Floor
P.C.C. Grade M25 Using Batching plant, Transit Mixer and concrete pump (Data for 120.00 Cum) [First Floor]
CUM
120
329935.45
7095.84
49760.82
32001.01
15930
4347.23
439070.35
LD00002
Labour
Un Skilled
Not Applicable
Survey Khalasi/ Chain Man
Nos
1
345.00
345.00
1
Code
Alphanumeric
64
Yes
A unique code that identifies the SOR.
2
Type
Text
256
Yes
SOR Type
3
Sub Type
Text
256
No
SOR Sub Type
4
Variant
Text
256
No
SOR Variant
5
Description
Text
1024
Yes
SOR Description
6
UOM
Text
64
Yes
Unit of measurement
7
Quantity
Numeric
(6,0)
Yes
Quantity for which rate is defined
8
Material Rate
Numeric
(6,2)
No
Rate
9
Labour Rate
Numeric
(6,2)
No
Rate
10
Machinery Rate
Numeric
(6,2)
No
Rate
11
Conveyance
Numeric
(6,2)
No
Rate
12
Royalty
Numeric
(6,2)
No
Rate
13
Labour Cess
Numeric
(6,2)
No
Rate
This document contains details on the roles required to perform action in Works Frontend App
1
Project
Create Search Modify
Project Creator
PROJECT_CREATOR, ESTIMATE_VIEWER
2
Project
Search
Project Viewer
PROJECT_VIEWER
4
Estimate
Create Search Edit
Estimate Creator
ESTIMATE_CREATOR, PROJECT_VIEWER]
5
Estimate
Search Update (Workflow)
Estimate Verifier
ESTIMATE_VERIFIER, PROJECT_VIEWER
6
Estimate
Search Update (Workflow)
Technical Sanctioner
TECHNICAL_SANCTIONER, PROJECT_VIEWER
7
Estimate
Search Update (Workflow)
Estimate Approver
ESTIMATE_APPROVER, PROJECT_VIEWER
8
Estimate
Search
Estimate Viewer
ESTIMATE_VIEWER, PROJECT_VIEWER
9
Contract
Create Search Edit
Work Order Creator
WORK_ORDER_CREATOR, ESTIMATE_VIEWER, PROJECT_VIEWER, ORG_VIEWER
10
Contract
Search Update(Workflow)
Work Order Verifier
WORK_ORDER_VERIFIER, ESTIMATE_VIEWER, PROJECT_VIEWER
11
Contract
Search Update(Workflow)
WOrk Order Approver
WORK_ORDER_APPROVER, ESTIMATE_VIEWER, PROJECT_VIEWER
13
Muster Roll
Search Update(Workflow) and Edit
Muster Roll Verifier
MUSTER_ROLL_VERIFIER, ORG_VIEWER
14
Muster Roll
Search Update(Workflow)
Muster Roll Approver
MUSTER_ROLL_APPROVER,ORG_VIEWER
15
Organization
Create Update Search
MUKTA Admin
MUKTA_ADMIN
16
Wage Seeker
Update Search
MUKTA Admin
MUKTA_ADMIN
17
Employee Management
Create Update Search
HRMS Admin
HRMS_ADMIN
18
Mukta Dashboard
Mukta Dashboard
Dashboard Viewer
STADMIN
19
CBO App
all actions of CBO App
CBO Admin
ORG_ADMIN
20
Billing
Inbox Search update Create
Bill Creator
BILL_CREATOR,WORK_ORDER_VIEWER,ORG_VIEWER
21
Billing
Inbox Search View, Update
Bill Viewer
BILL_VIEWER
22
Common
This role will have all common access that employee should have like edit profile, get Workflow status ,Inbox Search, HRMS Employee Search,
Common Role For all employee
EMPLOYEE_COMMON
23
Organization
Search
Org Viewer
ORG_VIEWER
24
Expense
Supervision Bill Generator
CronJob
SYSTEM
25
Payment
Payment Advise Creation , Download
Bill Accountant
BILL_ACCOUNTANT,CONTRACT_VIEWER,ORG_VIEWER,BILL_VIEWER
26
Contract
Search
Contract Viewer
WORK_ORDER_VIEWER
27
Billing
Search, View , Update
BILL Verifier
BILL_VERIFIER,WORK_ORDER_VIEWER,ORG_VIEWER
28
BILL_VIEWER
BILL_VIEWER
BILL_VIEWER
BILL_APPROVER,WORK_ORDER_VIEWER,ORG_VIEWER
29
MB Creator
Measurement Book creator
MB Creator
MB_CREATOR
30
MB Verifier
Measurement Book Verifier
MB Verifier
MB_VERIFIER
31
MB Viewer
Measurement Book Viewer
MB Viewer
MB_VIEWER
32
MB Approver
Measurement Book Approver
MB Approver
MB_APPROVER
33
Analysis statement
View Analysis statement
View Analysis statement
ESTIMATE_CREATOR, ESTIMATE_VERIFIER,TECHNICAL_SANCTIONER,ESTIMATE_APPROVER,ESTIMATE_VIEWER
34
Utilization statement
View Utilization statement
View Utilization statement
MB_CREATOR, MB_VIEWER,MB VERIFIER, MB APPROVER
35
Estimate Template
create/Edit Template
Add/Edit Template
MDMS_STATE_ADMIN, MDMS ADMIN
36
Rate analysis
Create/update/view/search Rate analysis
Add/edit/view/search rate analysis in workbench- schedule of rates
MDMS_STATE_ADMIN, MDMS ADMIN
37
Rate analysis
View/search Rate analysis
view rate analysis in workbench-schedule of rates
MDMS_CITY_ADMIN, MDMS ADMIN
38
Revision of Rate
Revise rate analysis & search,view jobs
Revise rate analysis in workbench-revision of rates
MDMS_CITY_ADMIN, MDMS ADMIN
39
MB Mobile Access(Additional for all MB users)
To access few MB mobile screen
To access few MB mobile screen
EMP_ORG_ADMIN
40
Dashboard
To access/view the the dashboards
To access/view the dashboards
DASHBOARD_VIEWER
Note:
The role "EMPLOYEE_COMMON" needs to be assigned to all users as it grants access to common employee actions listed in the table (#22).
It is important to note that "Bill Accountant" and "Mukta admin" roles should not be assigned to any employees who perform actions in the Muster, Bill, Project, Estimate, or Contract Modules.
Also, there are certain restricted roles that should not be assigned to any employees.
UI configuration for app
This section provides details about the MUKTASoft UI configuration required to enable it in any environment.
Steps:
In the DevOps repository of your organization, locate the following - "deploy-as-code/helm/environments/works-dev.yaml"
.
Add the code block below to the environment YAML file used to deploy the Works platform.
A dev environment sample file is available here. Make sure to modify this for your deployment.
This section contains the configurations applicable globally to all UI modules. These need to be configured before service-specific UI configurations.
Generate a configuration file named "globalconfigs.js" using the settings provided (refer to the code below).
Set up all the images and logos needed in your S3 storage, and include the links as "footerBWLogoURL" and "footerLogoURL."
Specify the state tenant ID as "stateTenantId."
If any user roles should be marked as invalid, list them under "invalidEmployeeRoles."
Upload this global configuration file to your S3 bucket, naming it "globalconfigs.js."
Make sure to include the URL of the "globalConfigs" file in your Environment config
.
The UI Screen configurations required for MUKTA are present in the folder commonMuktaUiConfig. Click here for the remaining MDMS configurations.
Refer to the table in this document for role configurations specific to each screen. Keep in mind that certain configurations may already exist in the MDMS for backend service modules. If they are already present, there's no need to duplicate them.
Refer to the sheet here which contains all module-specific localized strings for translations. To convert the UI into other languages, follow the information in this sheet and provide the correct translations in your desired language.
Figma screens for the UI are available here. Refer to them to understand the MUKTA UI.
Steps to generate APK
This document says how to generate an APK and its configuration.
Add the .env file at the root of the project with the required config based on the env in the file.
Sample env config:
Run the below commands in your terminal from the root of the project
Run the below command in your terminal from the root of the project to generate the APK
Project module frontend tech documentation
The Project module enables the Junior Engineer to capture the project details, search, view and modify the existing projects. This module is the initial step in starting the work.
The module has 4 associated screens :
Create
Search
Modify
View
1
Project Type
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/works/ProjectType.json
2
Target Demography
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/works/TargetDemography.json
3
ULB, City, Locality
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/citya/egov-location/boundary-data.json
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/cityb/egov-location/boundary-data.json
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/cityc/egov-location/boundary-data.json
4
Document Config
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/works/DocumentConfig.json
Set module code as “Project” in Module.js of Project Module. Refer https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/tenant/citymodule.json.
Enable module in App.js. Update the object ‘enabledModules’. Use the code “Project”. This code should match the code of cityModule.json, mentioned above.
The project created can be downloaded in PDF format from the View Project screen in the project module. The PDF contains the respective project descriptions, work details, and location details.
PDF URL : https://works-dev.digit.org/egov-pdf/download/project/project-details?projectId=<project-Id>&tenantId=<tenant-Id>
1
/pms/project/v1/_create
51
PROJECT_CREATOR
2
/pms/project/v1/_search
52
PROJECT_VIEWER
3
/pms/project/v1/_update
52
PROJECT_CREATOR
1
Create Project
/works-ui/employee/project/create-project
dynamic:ProjectIcon
PROJECT_CREATOR
2
Search Project
/works-ui/employee/project/search-project
dynamic:ProjectIcon
PROJECT_VIEWER
1
Create / Update
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/commonMuktaUiConfig/CreateProjectConfig.json
2
Search
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/commonMuktaUiConfig/SearchProjectConfig.json
pg
rainmaker-project
pg
rainmaker-common-masters
pg
rainmaker-common
pg.citya
rainmaker-pg.citya
NA
Create Screen:
Use the common Utility “PreProcessMDMSConfig”.
Pass the associated dependencies for the config.
The utility returns a config that will run through the FormComposer.
Refer to docs for pre-process config in component comments.
Search Screen:
Use the common utility “preProcessMDMSConfigInboxSearch”.
Pass the associated dependencies for the config.
The utility returns a config that will run through the RenderFormFields.
Refer to docs for pre-process config in component comments.
Custom Components Used in Projects:
Document Configuration - Based on the document config, the required documents will be rendered on the Create Screen. Ensure to specify the validations, file type, and file size limits in this configuration.
Form Validations: Verify that all necessary form validations are included in the screen configurations. Add populators for respective validations and specify the JSON path to enable the pre-process function.
Work order is created for an approved estimate in order to award the work to CBO. CBO starts the work to complete it within a given time period.
In case organization comes to know that they are not in a position to complete the work within the given time frame due to various reasons, they need to inform the same to the officer in-charge of project and apply for time extension which is then subject to approval/ canceling of work order based on the analysis done by the ULB.
Requests for time extension can be directly raised by CBO using the mobile application and by the officer in-charge of the project on behalf of CBO using web application. Once a request is raised it goes for verification and approval.
Create Time Extension
View Time Extension
Edit Time Extension
Search Time Extension ( Same as search work order screen)
Inbox ( Same as work order inbox )
Work order must be in Accepted state
Existing Time Extension requests, if already created, must not be in workflow
At Least one muster roll must be approved
Login with work order creator role and Navigate to Home page.
Home > Work Orders > Inbox > Search Work Order > View Work Order > Request Time Extension (From Action Menu)
A screen similar to the Work Order View screen is opened along with two new input fields
Enter time extension value (in days) and reason in those two inputs and click on Create action button
A workflow popup is opened where users can enter the assignee and relevant comments. Click on Submit button
A response page is opened which shows the newly created revised work order application’s number
There is no separate inbox for time extension. Work order inbox will list the time extension requests which are INWORKFLOW state. Clicking on the time extension request will open a view time extension screen where the user can take actions on the request based on the roles defined in the workflow. Alternatively, users can go to the work order search screen to search for any time extension request.
#
Action
Role
From State
To State
Status
1
Submit
Work Order Creator/ CBO Admin
Pending for verification
Submitted
2
Verify and Forward
Work Order Verifier
Pending for verification
Pending for approval
Verified
3
Send Back
Work Order Verifier
Pending for verification
Pending for correction
Sent Back
4
Send Back
Work Order Approver
Pending for approval
Pending for verification
Sent Back
5
Send Back To CBO
<any roles having access of action>
<Current Status>
Pending for correction
Sent Back
6
Edit/ Re-submit
Work Order Creator
Pending for correction
Pending for verification
Re-submitted
7
Approve
Work Order Approver
Pending for approval
Approved
Approved
8
Reject
<any roles having access>
<Current Status>
Rejected
Rejected
These are the employment types for the employees working in ULBs like Temporary, Parmanent.
1
PNT
Permanent
ସ୍ଥାୟୀ
2
TMP
Temporary
ଅସ୍ଥାୟୀ
3
DEP
Deputation
ପ୍ରତିନିଯୁକ୍ତି
4
CNT
Contractual
ଚୁକ୍ତିଭିତ୍ତିକ
The data given in the table is sample data for reference.
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
Tenants are organizations which are taking the responsibilties to perform the functions for an geographical area. In MUKTA these oraganizations are known as ULBs.
code
name
description
logoId
imageId
domainUrl
type
twitterUrl
facebookUrl
emailId
OfficeTimings
pincode
city
address
contactNumber
helpLineNumber
Mon - Fri
Sat
name
localName
districtCode
districtName
regionName
ulbGrade
longitude
latitude
shapeFileLocation
captcha
code
ddrName
ddrcode
wsBillHeaderLine1
wsBillHeaderLine2
districtTenantCode
od.jatni
Jatni
Jatni
CITY
helpdesk.sujog@odisha.gov.in
9.00 AM - 6.00 PM
9.00 AM - 12.00 PM
752050
Jatni
KH
Khordha
WATCO-II
Municipality
85.7058693
20.1703784
JA
Khordha
WATCO,OFFICE OF THE DEPUTY HEAD COMMERCIAL
COMMERCIAL WING, SATYA NAGAR, BBSR-751007
od.jatni
Jatni Municipality
1800 121 6833
1800 121 6833
od.dhenkanal
Dhenkanal
Dhenkanal
CITY
helpdesk.sujog@odisha.gov.in
9.00 AM - 6.00 PM
9.00 AM - 12.00 PM
759001
Dhenkanal
DK
Dhenkanal
Angul
Municipality
85.5972218
20.6503455
DL
Dhenkanal
OFFICE OF THE AE/JE
PUBLIC HEALTH ENGINEERING ORGANIZATION : Dhenkanal
od.dhenkanal
Dhenkanal Municipality
1800 121 6833
1800 121 6833
The data given in the table is sample data for reference.
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odiya)
Text
256
No
Project type name in local language
4
Effective From
Date from which the project is effective
5
Effective To
Date till which the project is effective
6
Is Active
Whether the project is active or not
Find below the module-wise required MDMS data -
Project
works
ProjectType
Search Project
works
ProjectType
Create project
works
TargetDemography
Create project
Finance
Fund
Create project
Contracts
works
CBORoles
Create Contract
works
ProjectType
Create Contract
Attendance
egov-location
TenantBoundary
Attendance Search, Inbox
works
ProjectType
Attendance Search
Masters
common-masters
OrgType
Create, Search, Modiy org
common-masters
OrgFunctionCategory
Create, Modiy org
common-masters
OrgFunctionClass
Create, Modiy org
common-masters
OrgTaxIdentifier
Create, Modiy org
common-masters
Department
Create, Modiy org
works
BankAccType
Create, Modiy org, Create, Modify WageSeeker
common-masters
OrgTransferCode
Create, Modify Org
egov-location
TenantBoundary
Create, Modify, Search Org, Modify, Search WageSeeker
common-masters
Relationship
Modify WageSeeker
common-masters
GenderType
Modify WageSeeker
common-masters
SocialCategory
Search, Modify WageSeeker
common-masters
WageSeekerSkills
Modify WageSeeker
Estimate
works
ProjectType
Estimate Inbox
egov-location
TenantBoundary
works
Overheads
common-masters
uom
Common
works
DocumentConfig
DocumentConfig
common-masters
StateInfo
tenant
citymodule, tenants
HRMS
egov-hrms
CommonFieldsConfig, DeactivationReason, EmployeeStatus, EmployeeType
common-masters
Department
Designation
GenderType
Rate analysis in Public Works Departments (PWD) involves the examination and calculation of rates for various construction activities or works. It is a systematic process carried out to determine the cost of executing a particular work item per unit quantity. Rate analysis typically involves breaking down the cost components associated with a construction activity, including materials, labor, machinery, contractor's profit, overhead costs, and miscellaneous expenses.
The purpose of rate analysis in PWD is to establish fair and accurate rates for different items of work, which helps in estimating the overall cost of a construction project. These rates are often based on prevailing market prices, standard specifications, and historical data. Rate analysis is crucial for budgeting, tendering, and ensuring transparency and accountability in construction projects undertaken by the Public Works Departments.
1
SOR_000148
1
Material
SOR_000016
4 cm size H.G. metal (H.B.)
CUM
0.96
SOR_000148
Material
SOR_000002
Sand (screened & washed)
CUM
0.48
SOR_000148
Material
SOR_000021
Cement
QNTL
2.29
SOR_000148
Labour
SOR_000315
Mason 2nd class
NOs
0.18
SOR_000148
Labour
SOR_000291
Man mulia
NOs
2.5
SOR_000148
Labour
SOR_000292
Women mulia
NOs
1.4
1
Works SOR Code
Alphanumeric
64
Yes
A unique code that identifies the SOR.Works SOR Code (For which rate analysis is defined)
2
Quantity for which analysis is defined
Numeric
256
Yes
Quantity for which analysis is defined
3
SOR Type
Text
256
Yes
SOR Type, labour, material or machinery.
4
SOR Code
Text
256
Yes
SOR Code
5
SOR Description
Text
1024
Yes
SOR Description
6
UOM
Text
64
Yes
Unit of measurement
7
Quantity
Numeric
(6,0)
Yes
Quantity which is required to define the rate analysis.
Estimate module frontend tech documentation
The Estimate module helps in creating estimates based on projects created. This enables in deciding the Tendering, and Quotation.
The module has 5 associated screens :
Create Estimate
Search Estimate
Edit Estimate
View Estimate
Estimate Inbox
1
UOM (Unit of Measurement)
2
Overheads
3
Document Config
Set module code as “Estimate” in Module.js of Estimate Module. Refer to the file CityModule.json
Enable Module in App.js. Update the object ‘enabledModules’. Use the code Estimate. This code should match the code of the cityModule.json, mentioned above.
1
/estimate-service/estimate/v1/_create
9
ESTIMATE_CREATOR
2
/estimate-service/estimate/v1/_search
10
ESTIMATE_CREATOR, ESTIMATE_VERIFIER, TECHNICAL_SANCTIONER
ESTIMATE_APPROVER
ESTIMATE_VIEWER
EMPLOYEE_COMMON
3
/estimate-service/estimate/v1/_update
11
ESTIMATE_VERIFIER, TECHNICAL_SANCTIONER, ESTIMATE_APPROVER
4
/wms/estimate/_search
77
EMPLOYEE_COMMON
5
/pms/project/v1/_search
52
PROJECT_VIEWER
1
Search Estimate
/works-ui/employee/estimate/search-estimate
dynamic:EstimateIcon
ESTIMATE_VIEWER
2
Estimate Inbox
/works-ui/employee/estimate/inbox
dynamic:EstimateIcon
ESTIMATE_VERIFIER
TECHNICAL_SANCTIONER
ESTIMATE_APPROVER
ESTIMATE_CREATOR
Sample object for a sidebar action defined in MDMS (containing navigationUrl )
1
Create Estimate
2
Search Estimate
3
Estimate Inbox
4
WMS Estimate Search
pg
rainmaker-common
pg
rainmaker-estimate
pg
rainmaker-common-masters
pg
rainmaker-workflow
pg.citya
rainmaker-pg.citya
Business Service name - “mukta-estimate”. Refer to the MDMS file for workflow businessServices names - Workflow
For Workflow related actions, the View screens use two components:
Workflow Actions -> For calling the update API with appropriate workflow action (through the action bar rendered at the bottom of the view screen). This component has all the logic to show actions according to the logged-in user, showing relevant popups and calling the update API to execute an action.
Popups are rendered based on configMap defined in this config file Popup.
Workflow Timeline -> To show the workflow history on View screens.
Custom Components used in Estimate:
Document Config -
Based on the document config, respective documents will be rendered on the Create Screen. Please mention the validations, file type limits and file size limits in this config
NonSOR Table - Non-SOR Table
Used in Create Estimate Screen to capture Non-Sor line items.
Overheads Table - Overheads Table
Used in Create Estimate Screen to capture Overhead items.
Total Estimate Amount - Total Estimate Amount
Used in Create Estimate Screen to calculate and render Total Estimate Amount.
UploadFileComposer - Upload File Composer
Used in Create Estimate Screen to render document upload section using Document Config
Labour and Material Analysis- Labour and Material Analysis
Used in Create Estimate screen to capture labour and material costs. The total labour and material costs cannot be greater than the total Estimate Amount.
Create Estimate Screen:
Use the common Utility “PreProcessMDMSConfig”.
Pass the associated dependencies for the config.
The utility will return a config which will run through FormComposer.
Refer to docs for Pre-Process config in Component comments.
UOM and Overheads captured in the create screen are MDMS data.
Inbox / Search Screen:
Use the common utility “preProcessMDMSConfigInboxSearch”.
Pass the associated dependencies for the config.
The utility will return a config which will run through RenderFormFields.
Refer to docs for Pre-Process config in Component comments.
All the Inbox and Search screens throughout the app are rendered using this component Inbox/Search Composer.
Muster Roll UI Tech Documentation
This module helps in processing muster rolls through the workflow. Muster rolls created from SHG app end up in the web interface for workflow approval.
This module has 5 associated screens :
Inbox
Edit
View
Search
Set module code as "AttendenceMgmt" in Module.js of AttendenceMgmt Module. Refer https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/tenant/citymodule.json
Enable Module in App.js. Update the object ‘enabledModules’. Use the code “AttendenceMgmt”. This code should match with the code of the cityModule.json, mentioned above.
S.No
API
Action ID
Roles
2
/muster-roll/v1/_search
37
MUSTER_ROLL_VERIFIER,MUSTER_ROLL_APPROVER
3
/muster-roll/v1/_update
38
MUSTER_ROLL_VERIFIER,MUSTER_ROLL_APPROVER
5
/egov-pdf/download/musterRoll/muster-roll
104
MUSTER_ROLL_APPROVER,MUSTER_ROLL_VERIFIER
6
/egov-hrms/employees/_search
4
EMPLOYEE_COMMON
7
/expense-calculator/v1/_estimate
108
MUSTER_ROLL_APPROVER,MUSTER_ROLL_VERIFIER
8
/inbox/v2/_search
65
EMPLOYEE_COMMON
S.No
Screen
Navigation URL
LeftIcon Updates
Roles
1
Muster Roll Search
/works-ui/employee/attendencemgmt/search-attendance
dynamic:AttendanceIcon
MUSTER_ROLL_APPROVER,MUSTER_ROLL_VERIFIER
2
Muster Roll Inbox
/works-ui/employee/attendencemgmt/inbox
dynamic:AttendanceIcon
EMPLOYEE_COMMON
S.No
Screen
Configuration
1
Search
2
Inbox
TenantID
Module
statea
rainmaker-attendencemgmt
UI Component Name
Business Service
WorkflowActions
MR
1. API-based Data -
The amountTotal Wage Amount - Amount shown in the view muster roll screen is fetched from expense-calculator
2. Inbox / Search Screen :
Please use the common utility “preProcessMDMSConfigInboxSearch”.
Pass the associated dependencies for the config.
The utility will return a config that will run through RenderFormFields.
Refer to docs for Pre-Process config in Component comments.
Workorder/Contract UI Tech Documentation
This module helps in creating a work order for the Project based on the estimates designed. This enables in deciding the Tendering, Quotation and Nomination. Based on the nomination, CBO is being mapped to the respective work order.
This module has 5 associated screens :
Create
Search
Modify
View
Inbox
1
Role Of CBO
2
Document Config
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/works/DocumentConfig.json
Set module code as “Contracts” in Module.js of Contracts Module. Refer https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/tenant/citymodule.json
Enable Module in App.js. Update the object ‘enabledModules’. Use the code “Contracts”. This code should match the code of the cityModule.json, mentioned above.
1
/contract-service/contract/v1/_create
66
WORK_ORDER_CREATOR
2
/contract-service/contract/v1/_search
68
WORK_ORDER_CREATOR, WORK_ORDER_APPROVER, WORK_ORDER_VERIFIER
3
/contract-service/contract/v1/_update
67
WORK_ORDER_CREATOR, WORK_ORDER_APPROVER, WORK_ORDER_VERIFIER
4
/estimate-service/estimate/v1/_search
10
ESTIMATE_VERIFIER
5
/pms/project/v1/_search
52
PROJECT_VIEWER
6
/egov-hrms/employees/_search
4
EMPLOYEE_COMMON
7
/org-services/organisation/v1/_search
91
ORG_ADMIN, WORK_ORDER_CREATOR, MUKTA_ADMIN
8
/wms/contract/_search
89
WORK_ORDER_CREATOR, WORK_ORDER_VERIFIER
1
Contract Inbox
/works-ui/employee/contracts/inbox
dynamic:ContractIcon
WORK_ORDER_CREATOR, WORK_ORDER_VERIFIER, WORK_ORDER_APPROVER
2
Create Contract
/works-ui/employee/estimate/search-estimate
dynamic:ContractIcon
WORK_ORDER_CREATOR
1
Create
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/commonMuktaUiConfig/CreateWorkOrderConfig.json
2
Search
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/commonMuktaUiConfig/SearchContractConfig.json
3
Inbox
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/commonMuktaUiConfig/InboxConfigContracts.json
pg
rainmaker-contracts
pg
rainmaker-common-masters
pg
rainmaker-common
pg
rainmaker-workflow
pg.citya
rainmaker-pg.citya
WorkflowActions
contract-approval-mukta
1. API-based Data -
Name of CBO - This field is being captured on the Create screen and Modify screen. Data for this field comes from the backend.
CBO ID - This field is being set based on the value selected in the Name Of CBO.
Name of Officer In Charge - This field is being populated based on the HRMS Search. Here the role is hardcoded to ‘OFFICER_IN_CHARGE’.
Designation of Officer In Charge - This field is being set based on the value selected in the Name of Officer in charge.
Work Order Amount - This field shows the calculated amount of Total Estimated Cost minus the Overheads which has ‘isWorkOrderValue’ as true. Please refer to this OverHeads config for Amount calculation.
The role of CBO will be shown based on the calculated Work Order Amount. If the calculated Work Order Amount is less than the ‘amount’ in RoleOfCBO Config, show Implementation Agency else show Implementation Partner. This logic will vary based on the updates in the RoleOfCBO config.
Document Config - Based on the document config, respective documents will be rendered on the Create Screen. Please mention the validations, file type limits and file size limits in this config.
Work Order Terms and Conditions - This component will help input the description in the table. Users can add and delete the rows. The first row will not be deleted, clicking on the delete button will empty the first row. Refer Component - WOTermsAndConditions.
3. Create Screen:
Please use the common Utility “PreProcessMDMSConfig”.
Pass the associated dependencies for the config.
The utility will return a config which will run through FormComposer.
Refer to docs for Pre-Process config in Component comments.
4. Inbox / Search Screen :
Please use the common utility “preProcessMDMSConfigInboxSearch”.
Pass the associated dependencies for the config.
The utility will return a config which will run through RenderFormFields.
Refer to docs for Pre-Process config in Component comments.
Wage seeker configuration details
This module helps in creating an individual (Wage Seeker), it is needed in Mukta to assign work, track attendance and process DBTs.
This module has 3 associated screens :
Search
View
Modify
1
Relationship
2
GenderType
3
SocialCategory
4
WageSeekerSkills
5
TenantBoundary
Set module code as “Masters” in Module.js for the Masters (Organization) Module. Refer CityModule.json
Enable Module in App.js. Update the object ‘enabledModules’. Use the code “Masters”. This code should match the code of the cityModule.json, mentioned above.
1
/individual/v1/_search
71
MUKTA_ADMIN, ORG_ADMIN
2
/individual/v1/_update
72
MUKTA_ADMIN, ORG_ADMIN
3
/individual/v1/_delete
74
MUKTA_ADMIN, ORG_ADMIN
1
Search Individual
/works-ui/employee/masters/search-wageseeker
dynamic:WageseekerIcon
MUKTA_ADMIN
Sample object for a sidebar action defined in MDMS (containing the navigation Url)
1
Create/Modify
2
Search
pg
rainmaker-masters
pg
rainmaker-common-masters
pg
rainmaker-common
pg.citya
rainmaker-pg.citya
NA
Modify Individual Screen
Use the common Utility “PreProcessMDMSConfig”.
Pass the associated dependencies for the config.
The utility will return a config which will run through FormComposer.
Refer to docs for Pre-Process configuration of Component comments.
Search Individual Screen
Use the common utility “preProcessMDMSConfigInboxSearch”.
Pass the associated dependencies for the config.
The utility will return a config which will run through RenderFormFields.
Refer to docs for Pre-Process configuration of Component comments.
All the Inbox and Search screens throughout the app are rendered using the component Inbox/Search Composer
Validations added
Form validations are integrated within the Screen Configurations. To facilitate this, include the appropriate populators for the respective validations. Additionally, make sure to specify the JSON path necessary for the pre-processing to function correctly.
Delete API Usage
To modify existing skills, the "deleteIndividual" and "update Individual" APIs are utilized.
If skills are already present, they can be updated using the "update" API. If any skills need to be removed, the "delete" API is used. In the case of skill removal, the entire skill object should be sent with the 'isDeleted' flag set to true.
This module is used to handle all billing-related actions such as create, update and view Bills.
This module has 5 associated screens :
Create (Purchase Bill)
Search
View (Wage, Purchase, Supervision)
Modify (Purchase Bill)
Download Bills
S.No.
Data
MDMS Link
1
BillType
2
TenantBoundary
Set module code as “Expenditure” in Module.js for Billing Module. Refer CityModule.json
Enable Module in App.js. Update the object ‘enabledModules’. Use the code “Expenditure”. This code should match with the code of the cityModule.json, mentioned above.
S.No
API
Action ID
Roles
1
/expense-calculator/purchase/v1/_createbill
112
BILL_CREATOR
2
/expense-calculator/v1/_search
113
BILL_CREATOR BILL_VERIFIER BILL_VIEWER BILL_ACCOUNTANT
3
/expense/bill/v1/_search
106
BILL_CREATOR BILL_VERIFIER BILL_APPROVER BILL_ACCOUNTANT
4
/wms/expense/_search
110
BILL_CREATOR BILL_VERIFIER BILL_APPROVER BILL_ACCOUNTANT
5
/expense/payment/v1/_create
116
BILL_ACCOUNTANT
6
/egov-pdf/bill/_search
114
BILL_CREATOR
7
/expense/payment/v1/_search
122
BILL_ACCOUNTANT
8
/expense/payment/v1/_update
125
BILL_ACCOUNTANT
S.No
Screen
Navigation URL
LeftIcon Updates
Roles
1
Search Bills
/works-ui/employee/expenditure/search-bill
dynamic:ExpenditureIcon
BILL_VIEWER
Sample object for a sidebar action define in MDMS (containing navigationUrl)
S.No
Screen
Configuration
1
Create/Modify Purchase bill
TenantID
Module
pg
rainmaker-expenditure
pg
rainmaker-common
pg
rainmaker-common-masters
pg
rainmaker-workflow
pg.citya
rainmaker-pg.citya
<details>
Create Purchase Bill Screen
Please use the common Utility “PreProcessMDMSConfig”.
Pass the associated dependencies for the config.
The utility will return a config which will run through FormComposer.
Refer docs for Pre-Process config in Component comments.
Search Bill Screen
Please use the common utility “preProcessMDMSConfigInboxSearch”.
Pass the associated dependencies for the config.
The utility will return a config which will run through RenderFormFields.
Refer docs for Pre-Process config in Component comments.
All the Inbox and Search Screens throughout the app are rendered using this component Inbox/Search Composer
Checkbox selection is added to results table displayed in search screen based on search config passed via MDMS
Download Bill Screen
DownloadBillConfig is used to render table to show bills where download link is provided to download respective bills
Organization Tech Document
This module helps in creating an organization which are business functions that work with ULB to execute projects. These can be typical contractors, SHGs or material vendors. All of them are registered under the same Organization Master.
This module has 4 associated screens :
Create
Search
View
Modify
S.No.
Data
MDMS Link
1
OrgType
2
OrgFunctionCategory
3
OrgFunctionClass
4
OrgTaxIdentifier
5
BankAccType
6
OrgTransferCode
7
TenantBoundary
Set module code as “Masters” in Module.js for Masters (Organization) Module. Refer CityModule.json
Enable Module in App.js. Update the object ‘enabledModules’. Use the code “Masters”. This code should match with the code of the cityModule.json, mentioned above.
S.No
API
Action ID
Roles
1
/org-services/organisation/v1/_create
100
MUKTA_ADMIN
2
/org-services/organisation/v1/_search
91
MUKTA_ADMIN, ORG_ADMIN, WORK_ORDER_CREATOR
3
/org-services/organisation/v1/_update
101
MUKTA_ADMIN
S.No
Screen
Navigation URL
LeftIcon Updates
Roles
1
Create Organisation
/works-ui/employee/masters/create-organization
dynamic:OrganisationIcon
MUKTA_ADMIN
2
Search Organisation
/works-ui/employee/masters/search-organization
dynamic:OrganisationIcon
MUKTA_ADMIN
S.No
Screen
Configuration
1
Create/Modify
2
Search
TenantID
Module
pg
rainmaker-masters
pg
rainmaker-common-masters
pg
rainmaker-common
pg.citya
rainmaker-pg.citya
NA
Custom Components used
TransferCodeTable -
This component is a common component used to show Tax identifiers and Transfer Codes input options in the ‘Financial Details’ section in Create screen
Dropdown options for tax identifiers and transfer codes are populated by MDMS data
Used can select type via dropdown and value needs to be entered for the corresponding type
Users can add and delete rows for tax identifiers since there can be multiple identifiers. First row won't be deleted.
Refer Component: TransferCodeComponent
Please use the common Utility “PreProcessMDMSConfig”.
Pass the associated dependencies for the config.
The utility will return a config that will run through FormComposer.
Refer to docs for Pre-Process config in Component comments.
Tax Identifiers and Transfer Codes are MDMS data.
3. Search Organization Screen
Please use the common utility “preProcessMDMSConfigInboxSearch”.
Pass the associated dependencies for the config.
The utility will return a config that will run through RenderFormFields.
Refer to docs for Pre-Process config in Component comments.
All the Inbox and Search Screens throughout the app are rendered using this component Inbox/Search Composer
Validations added
All Form validations are being added in the Screen Configurations. Add the populators for respective validations and mention the JSON path for the Pre-Process to work.
IFSC code has 2 validations as below
Pattern validation (given in config)
Third-party API is being used to get band and branch name based on entered valid IFSC code, This API throws 404 if the code is not valid, in that case the valid error message is displayed below the input field
Tax identifiers are not mandatory while creating Organisation. But as per API implementation, it's required in payload hence we send a dummy identifier value if the user has not entered anything in Tax identifier input. In the View Organisation screen if the PAN value is above the dummy value then ‘NA’ is displayed on the screen.
Default value: Type => PAN, Value => XXXXX0123X
1
VEN
Vendor/ Supplier
ବିକ୍ରେତା / ଯୋଗାଣକାରୀ
2
CBO
Community Based Organization
ଗୋଷ୍ଠୀ ଭିତ୍ତିକ ସଂଗଠନ
1
Code
Alphanumeric
64
Yes
A unique code that identifies the project type.
2
Project Type
Text
256
Yes
Provides the name of the project type
3
Project Type (Odia)
Text
256
No
Project type name in local language
4
Effective From
Date
Date from which the project is effective
5
Effective To
Date
Date till which the project is effective
6
Is Active
Boolean
Whether the project is active or not
This module helps in taking the measurement, for an accepted contract
This module has 5 associated screens :
Create
Inbox
Edit
View
Search
Set module code as "Measurement" in Module.js of Measurement Module. Refer
Enable Module in App.js. Update the object ‘enabledModules’. Use the code “Measurement”. This code should match with the code of the cityModule.json, mentioned above.
MeasureTable:
This is the main component that handles the Logic for capturing the measurement for SOR / NONSOR based on the given processed Line items from the Estimate.
The same component has been used in the Detailed estimate which captures the detailed measurement information
The same component has the capability to be used in both create and view screens.
MeasureCard:
This component handles the logic of the inner table present inside the MeasureTable.
Wage seeker configuration details for CBO application
This module helps create wage seekers.
ROLE: ORG_ADMIN
This module contains 4 linked forms
Summary Details
This form combines the details of the previous 3 forms, and users can tap on the respective edit icon to edit the particular details.
On submit, the wage seeker is created successfully.
This module helps in logging the attendance of each individual in a register and creating the muster roll for a particular week.
ROLE: ORG_ADMIN
This module has 2 associated screens: View Register Inbox Track Attendance Table Screen
This page involves several actions:
The CBO Admin selects a date range using the Date Picker.
Upon selecting a date, the entire week is automatically chosen.
After selecting the week, by clicking "Apply," the pre-saved attendance log for that week becomes visible.
The user can then modify the attendance log for each individual and save it as a draft using the "Save as Draft" button.
The user can also submit the muster roll. Upon submission, the user will be prompted to enter skills for each individual.
After entering skills, the user can submit the muster roll for that specific week.
Validations:
If no date range is selected or cleared, attempting to use the "Save as Draft" button will display an error, prompting the user to select a date range.
The ability to submit the muster roll depends on the CBOMusterSubmission MDMS Config.
Depending on the value of END_OF_WEEK:
If END_OF_WEEK is false, users can create the muster roll on any day of the week.
If END_OF_WEEK is true, users can submit the muster roll only on or after the last day of the week (Sunday).
If an existing muster roll for the selected range is in a workflow state, the Track Attendance page will be a view-only page. Otherwise, users will be able to log attendance and submit the muster roll.
The options for marking attendance are determined by the Attendance Hours list:
If the list contains two options, users can mark attendance as Full Day or Absent.
If the list has more than two options, users can mark attendance as Full Day, Half Day, or Absent.
<details>
Blocs:
Models:
Repositories:
Screens:
This module provides the ability to create SORs and Rates
This module has 5 associated screens :
Create
Edit
View
Search
The SORs and some related masters were created using the workbench and MDMS v2.
Refer to the Workbench to enable the Workbench
SOR
SOR Type
SOR Subtype
SOR Variant
UOM
Rates
Overheads
MDMS Role Action Configs
Sample data can be referred from the below sheet
Rate Analysis frontend tech document
The Rate analysis Module helps in creating rate analysis for Works type of SOR, and helps in bifurcating the rate and revision of rates.
The module has 5 associated screens :
Create Rate Analysis
View Rate Analysis
Edit Rate Analysis
Set module code as “RateAnalysis” in Module.js of Rate Analysis Module. Refer to the file
Enable Module in App.js. Update the object ‘enabledModules’. Use the code RateAnalysis. This code should match the code of the cityModule.json, mentioned above. Role-action Mapping
Sample object for a sidebar action defined in MDMS (containing navigationUrl )
There is no workflow associated with the Rate Analysis, Only create, view and update screens are present, once the Rate Analysis is created, Users can View and edit the composition.
Custom Components used in Rate Analysis:
SORDetailsTemplate - This Component is used to search the SOR and add it in the template but mentioning the quantity of each basic sors.
ExtraCharges - This Component is used to add the additional charges which is not present in the form of basic sors.
TableWithOutHead - This Component is used to show the total value of data with total LC and per unit cost.
RateCardWithRightButton - This Component is used to show the composition data with its rate value
RateAmountGroup - This Component is used to show the Existing rate and new rate for the particular works sor.
ExtraChargesViewTable - This Component is used to show the additional charges added during the creation of composition.
Create/ Edit Rate Analysis Screen:
Use the common Utility “useCustomAPIHook” to gather the data needed for validation and composition creation.
Use the common Utility “getDefaultValues” to gather the init state of the create form.
Pass the createState dependencies to the formComposer.
Refer to docs for Pre-Process config in Component comments.
Figures and additional details is captured in the screen.
View Rate Analysis Screen:
Use the common Utility “useViewRateAnalysisDetails” to gather the data to show from the calculate API of rate analysis.
Call the "viewRateAnalysisdataconfig" to render the view config for the rate analysis according to the dynamic data recieved
Pass the config in the "ViewComposer" to show the segregation of the data according to different heads of Rates.
UI Tech Documentation for JIT
JIT stands for Just in Time e-Payment. We are utilizing JIT in MUKTASOFT for payments.
Search Payment Instruction
View Payment Instruction
Create Payment Instruction (Temporary Screen)
Payment Instructions are created at the Backend when a bill gets approved. This is handled via cron jobs. We have kept a temporary flow for a user to create Payment for testing cases, or for when cron jobs are not running at Backend properly. In production this flow will be disabled.
To create Payment Instruction from UI. Navigate to Search Payment Instruction screen from home screen card and click on Create Payment Instruction. Search bill screen is opened, the user can select for which bills payment has to be created and click on Generate payment. A relevant toast message is displayed.
gate, login and go to the Home Page. Then click on Payment Instruction on Mukta Home page card
This screen is utilized to search payments. It has 2 tabs.
Pending For Action -> This tab will, by default, show all the payments that are either in FAILED or PARTIAL state
Open Search -> This screen can be utilized to search any payment
Mdms Configs for Search Screen ->
Payment Instruction type config ->
Payment Instruction Status config ->
Users can navigate to the view payment instruction screen from the search payment instruction screen. It shows detailed information about the payment, Beneficiary, and list of payment instructions associated.
Sometimes payment gets failed or partially successful. For these use cases we have two options which are as follows :
For FAILED payments : If a payment is in a failed state, an action button is shown on the view screen to take a retry action. Upon retrying, a new payment instruction gets generated and a toast message is displayed. Also the View screen is refreshed which now includes the newly created payment instruction in INITIATED state.
For PARTIAL payments : If a payment is in PARTIAL state. This basically means payment for at least one beneficiary was successful. In this case we have an option to generate a revised payment instruction which creates a new child payment instruction associated with the original payment instruction. Again, a success toast is displayed and the View screen gets refreshed with newly generated payment instruction. Newly generated payment instruction is now referred to as revised payment instruction.
INITIATED
APPROVED
FAILED
INPROCESS
SUCCESSFUL
PARTIAL
COMPLETED
Original
Revised
/wms/ifms-pi/_search -> for Searching PI's
/ifms/pi/v1/create -> For Retry and Partial action
Sample Curl's:
Roles related to Bill accountant are used here:
Revision of Rates feature frontend tech documentation
The revision of Rates feature helps in revising the rates, if any changes in the SOR composition is done and the new works SOR rates has to be applied.
The feature has 2 associated screens :
Search SOR (Revision of Rates)
View Jobs
This feature has been integrated with Rate analysis module, hence Please follow the document on Rate Analysis to understand this part.
Sample object for a sidebar action defined in MDMS (containing navigationUrl )
Revision of Rates do not have any workflow, here Users can search works type of SOR and proceed with two options
Select few Works SORs and revise the rates for those by clicking on "Revise Rate For Selected"
Revise rates for all Works type of SORs by clicking on "Revise Rate For All"
Search SOR Screen:
Use the common Utility “PreProcessMDMSConfig”.
Pass the associated dependencies for the config.
The utility will return a config which will run through InboxSearchComposer.
Refer to docs for Pre-Process config in Component comments.
SOR Type, SOR SubType and SOR Vairent Loaded in the search screen are MDMS data.
View Jobs Screen:
Use the common Utility “PreProcessMDMSConfig”.
Pass the associated dependencies for the config.
The utility will return a config which will run through InboxSearchComposer.
Refer to docs for Pre-Process config in Component comments.
UI Tech Documentation for UI Enhancements in Dashboard (DSS)
Sample config for the same is shown below:
There was a requirement in Mukta Dashboard to render pie charts in the following way. Refer the attached screenshot:
In the MasterDashboardConfig.json we defined a flag called variant for pieChart
In order to use this enhancement we need to use "variant":"pieChartv2"
This pie chart component was enhanced to show colored legends below, percentages in each pie and total number of applications in the center of the pie.
Sample config for the same is shown below:
There was a requirement in Mukta Dashboard to show KPIs in the form of horizontal bar charts. Refer the attached screenshot:
In MasterDashboardConfig.json we defined a boolean flag called “horizontalBarv2”
Set this flag to true if you want to show the chart in this way.
Counts of each bar are shown at the side of the bar, labels can be customized.
There was a requirement in the MUKTA Dashboard to show KPIs in a horizontal way. Refer to the sample screenshot below:
KPIs are shown in horizontal manner along with their description, aligned vertically to them.
In MasterDashboardConfig we defined a boolean flag “isHorizontalChart”. Set this to true to make use of this enhancement.
Icons are customizable and are defined in the MasterDashboardConfig itself.
Employee Role: STADMIN
Note::
Muster Roll Tech Document
This module helps in viewing and updating the muster rolls.
ROLE: ORG_ADMIN
This module has 2 associated screens :
View Muster Rolls Inbox
Muster Roll Table Screen
Based on the business workflow state set for Muster Roll ( Sent BAck for Correction) in respective environments, Add the corresponding code in MDMS
On this page, the following actions need to be performed: If the muster roll is in workflow, User can only view the muster roll, If the muster roll is sent back to CBO,then user can edit the attendance and resubmit the muster roll,
If Muster Roll is in Workflow, The screen will only be a view page and Save as Draft and Re-Submit button will not be shown in the screen
Blocs :
Models :
Repositories:
Screens
Estimate Template feature frontend tech documentation
The Estimate Template feature helps in creating a template for particular work, so it can be directly taken refrence of or added by user in estimate creation. This feature has been incorporated in the estimate create screen where it can searched and added.
Estimate Template is a part of mdms-v2 data, so In order to see the changes in the UI, both Estimate module and Workbench module has to be enabled in the file CityModule.json
Sample object for a sidebar action defined in MDMS (containing navigationUrl )
Custom Components used for Estimate Template:
searchTemplate
This component is used to make a search for eatimate template already stored in the system and add the template for the creation of estimate
It handles the validation corresponding to adding of SORs and Non SORs in the estimate create.
Pass this component in the config of formcomp in order to render it in the create form
Mdms config ->
Mdms config ->
All the Inbox and Search screens throughout the app are rendered using this component .
Based on the list, users will be allowed to mark the attendance as Full Day, Half Day, or absent. If the list is of length 2, users will be allowed to mark only Full and Absent, Else, users can mark halfday as well.
Measurement
SOR
Project
Estimate
Workorder
Attendance
MusterRolls
Organization
Wageseeker
HRMS
S.No
API
Action ID
Roles
2
to be updated
37
MB_CREATOR
3
to be updated
38
MB_VERIFIER
5
to be updated
104
MB_APPROVER
6
/egov-hrms/employees/_search
4
EMPLOYEE_COMMON
8
/inbox/v2/_search
65
EMPLOYEE_COMMON
S.No
Screen
Navigation URL
LeftIcon Updates
Roles
2
to be updated
S.No
Screen
Configuration
1
Search
to be updated
2
Inbox
to be updated
TenantID
Module
statea
rainmaker-measurement
UI Component Name
Business Service
WorkflowActions
MB
1.
Pincode
No
Input: [0-9]
Max Length: 6
Min Length: 6
2.
City
Yes
None
3.
Ward
Yes
None
4.
Locality
Yes
None
5.
Street Name
No
Max Length: 64
Min Length: 0
6.
Door No
No
Max Length: 64
Min Length: 0
1.
Account Holder’s Name
Yes
Input: [A-Za-z ]
Max Length: 128
Min Length: 2
2.
Account Number
Yes
Input: [0-9]
Max Length: 18
Min Length: 9
3.
Re-enter Account Number
Yes
Input: [0-9]
Max Length: 18
Min Length: 9
4.
Account Type
Yes
None
5.
IFSC Code
Yes
Valid IFSC Code
Verified through
https://ifsc.razorpay.com
1
'individual/v1/_create'
"Individual": {
"tenantId":,
"name": {"givenName": ,
"dateOfBirth":,
"gender":,
"mobileNumber":,
"address": [
{
"tenantId":,
"pincode":,
"street":,
"doorNo":,
"type": "PERMANENT",
"locality": {"code":
],
"fatherName":,
"husbandName":,
"relationship":,
"identifiers": [
{
"identifierType": "AADHAAR",
"identifierId":
}
],
"skills": [],
"photo":,
"additionalFields": {
"fields": [
{
"key": "SOCIAL_CATEGORY",
"value":
}
]
}
}
Create Individual/Wage seekers
2
'/bankaccount-service/bankaccount/v1/_create'
"bankAccounts": [
{
"tenantId":,
"serviceCode": "IND",
"referenceId": individualId,
"bankAccountDetails": [
{
"tenantId":,
"accountHolderName":
"accountNumber":,
"accountType":,
"isPrimary",
"bankBranchIdentifier": {
"type": "IFSC",
"code":,
"additionalDetails": {"ifsccode"}
},
"isActive": true,
"documents": [],
}
],
}
]
To create the bank details for the individual that was created
1
AttendanceHours
2
WageSeekerSkills
3
CBOMusterSubmission
1
attendance/v1/_search
{
"tenantId":””,
"ids":””
}
Gives the list of registers linked to the org
2
muster-roll/v1/_estimate
{
"musterRoll": {
"tenantId":,
"registerId":,
"startDate":,
"endDate":
}
}
To get the attendance log for the selected Date range
3
attendance/log/v1/_create
{"attendance": []}
To log the attendance of the individuals for the week
4
attendance/log/v1/_update
To update the attendance log of the individuals for Sent Back To CBO Muster Rolls
5
muster-roll/v1/_search
To check if any existing muster rolls present for the selected week
6
egov-workflow-v2/egov-wf/businessservice/_search
{
"tenantId":,
"businessServices": “musterRollId”,
}
To check the workflow status of the Muster Roll
1
DigitTable
Custom Table with fixed first column and other columns scrollable
2
DropDownDialog
A dialog with dropdown options
3
DateRangePicker
A custom Date Range picker to select a range of the month / year
4
DigitElevatedButton
An Elevated Submit Button
6
WorkDetailsCard
Details Card based on DIGIT Figma design
pg
rainmaker-common
pg
rainmaker-attendance
pg
rainmaker-common-masters
pg
rainmaker-workflow
pg.citya
rainmaker-pg.citya
1
/mdms-v2/v2/_create/WORKS-SOR.Composition
9
MDMS_STATE_ADMIN
2
/mdms-v2/v2/_update/WORKS-SOR.Composition
10
MDMS_STATE_ADMIN
3
/rate-analysis/v1/_calculate
11
ESTIMATE_CREATOR, MDMS_STATE_ADMIN
1
Rate Analysis
/workbench-ui/employee/workbench/mdms-search-v2?moduleName=WORKS-SOR&masterName=Composition
dynamic:=ContractIcon
MDMS_STATE_ADMIN, MDMS_CITY_VIEW_ADMIN
1
Create Rate Analysis
2
View Rate Analysis
od
rainmaker-common
od
rainmaker-rateanalysis
od
rainmaker-common-masters
Bill Accountant
BILL_ACCOUNTANT
Search PI Screen, View PI Screen, Retry and Generate Revised PI Access
Bill Creator
BILL_CREATOR
Search PI Screen, View PI Screen, Retry and Generate Revised PI Access
1
SOR Type
2
SOR SubType
3
SOR Varient
1
/rate-analysis/v1/scheduler/_create
464
MDMS_CITY_ADMIN
2
/rate-analysis/v1/scheduler/_search
465
MDMS_CITY_ADMIN
1
Revision of Rates
/employee/rateAnalysis/search-sor
dynamic:ContractIcon
MDMS_CITY_ADMIN
1
Revision of Rates
2
View Jobs
pg
rainmaker-common
pg
rainmaker-rateanalysis
pg
rainmaker-common-masters
1
muster-roll/v1/_estimate
{
"musterRoll": {
"tenantId":,
"registerId":,
"startDate":,
"endDate":
}
}
To get the attendance log for the selected Date range
3
attendance/log/v1/_create
{"attendance": []}
To log the attendance of the individuals for the week
4
attendance/log/v1/_update
To update the attendance log of the individuals for Sent Back To CBO Muster Rolls
5
muster-roll/v1/_search
To check if any existing muster rolls present for the selected week
6
egov-workflow-v2/egov-wf/businessservice/_search
{
"tenantId":,
"businessServices": “musterRollId”,
}
To check the workflow status of the Muster Roll
S.No
Component
Path
Description
1
DigitTable
Custom Table with fixed first column and other columns scrollable
2
DropDownDialog
A dialog with dropdown options
3
DateRangePicker
A custom Date Range picker to select a range of the month / year
4
DigitElevatedButton
An Elevated Submit Button
6
WorkDetailsCard
Details Card based on DIGIT Figma design
7
DigitTimeLine
WorkFlow TimeLine component viewing Workflow state, And Assignees Details
TenantID
Module
pg
rainmaker-common
pg
rainmaker-muster
pg
rainmaker-common-masters
pg
rainmaker-workflow
pg.citya
rainmaker-pg.citya
1
Estimate Template
1
/mdms-v2/v2/_create/WORKS.EstimateTemplate
9
MDMS_STATE_ADMIN
2
/mdms-v2/v2/_update/WORKS.EstimateTemplate
10
MDMS_STATE_ADMIN
1
Estimate Template
/workbench-ui/employee/workbench/mdms-search-v2?moduleName=WORKS&masterName=EstimateTemplate
dynamic:ContractIcon
MDMS_STATE_ADMIN
od
rainmaker-common
od
rainmaker-estimate
od
rainmaker-workbench
1.
Aadhaar No.
Yes
Input: [0-9]
Max Length: 12
Min Length: 12
2.
Name
Yes
Input: [A-Za-z ]
Max Length: 128
Min Length: 2
3.
Guardian Name
Yes
Input: [A-Za-z ]
Max Length: 128
Min Length: 2
4.
Relationship
Yes
None
5.
Date of Birth
Yes
Age shouldn’t be less than 18 years
6.
Gender
Yes
None
7.
Social Category
No
None
8.
Mobile Number
Yes
Input: [0-9]
Max Length: 10
Min Length: 10
9.
Skills
Yes
Can not select multiple skills of same sub skill type
10.
Photograph
No
File size should be < 5 MB
1
SOR Data
2
Overheads
S.No.
Data
MDMS Link
1
AttendanceHours
2
WageSeekerSkills
3
Sent Back to CBO
This component is used to render file upload UI based on the configuration passed for each module.
Upload File Component - It has a title, information banner with a relevant message, document name, and corresponding file input to upload doc. All these details can be configured via MDMS.
This component fetches below MDMS configuration by filtering modules to render the relevant UI.
If a new module is being added then the corresponding config should be updated in MDMS before using this component in the below format. (refer to Project module config below)
To show this in form, the config with type ‘documentUpload’ needs to be passed to FormComposer. (refer to below config)
Once these two configurations are added, the upload component will become visible within the form. Upon clicking the submit button, it will capture the data in the format specified below, which can then be modified in accordance with the API contract for each module.
Overview
This document describes how to publish CSS if there is any CSS Customization/changes.
While Customizing, if any changes are made In the CSS folder it has to be compiled and published to npm.
Currently, the CSS was published in npm as @egovernments/digit-ui-works-css Please check this NPM link works-css.
So if any changes are made to the CSS folder locally have to be published in different Organisations and in the same or different package name.
ie as @xyz/digit-ui-works-css and version as 1.0.0
then following changes has to be made in the code to reflect in the digit-ui
index.html file location
frontend/micro-ui/web/public/index.html
style sheet link has to be updated as follow,
<link rel="stylesheet" href="https://unpkg.com/@xyz/digit-ui-works-css@1.0.0/dist/index.css"/>
Use Either of the Following commands to publish the CSS
In the frontend/micro-ui/web/micro-ui-internals
folder run
yarn run publish:css
or
In the frontend/micro-ui/web/micro-ui-internals/packages/css
folder run
yarn run publish --access public
Reference Doc for Publishing any package to npm
Approach to render Inbox and Search screen content based on config passed via MDMS data.
This page provides the approach details for -
rendering the Inbox screen or Search screen based on the config
calling the API dynamically based on API details passed via config
This is a container component for inbox and search screens. It consists of 4 children components which can be rendered conditionally.
configs
Config fetched from MDMS data
This component is used to render titles and links in the inbox.
headerText
Config fetched from MDMS data
links
Links to navigate to other screens
customClass
Class to update styling
logoIcon
Icon name and class to render in component
This component is used to render search or filter forms with ‘clear’ and ‘search’ buttons.
uiConfig
Config to render search/filter form
header
Title of form
screenType
Type of parent screen, can be either ‘inbox’ or ‘search’
fullConfig
Entire config of screen which also includes API details
This component is used to render a table with searched results.
config
Config to render table
data
Search results need to be populated in table
isLoading
Flag to pass to handle loading state
isFetching
Flag to pass to handle loading state
fullConfig
Entire config of screen which also includes API details
This component is used to render form fields passed in the 'fields' parameter in the config
fields
Config to render all form fields
control, formData, errors, register, setValue, getValues, setError, clearErrors
Props to handle all form actions like collectibe data, setting errors, clearing errors etc.
apiDetails
Includes all API details required to fetch data
To fetch inbox details, ‘useCustomAPIHook’ is used which takes all the API details like URL, query params, body, config etc. from config (defined in MDMS).
Create config based on the sections that need to be displayed on the screen. The basic structure for Inbox and Search screens is as below.
Based on the flag given for each section its visibility is controlled. If the ‘show’ flag is true, then the section is visible, else it is hidden.
Add API details in the top section, this API will be called via useCustomAPIHook and return the data. This consists of the below details.
Add search form config which can be used in both inbox/search screen. It consists of UIconfig containing label info, styling info, default form values, and fields which need to be rendered in the form. Refer below
Add Links config consists of link info, logo to be shown and title. Refer below
Add Filter form config which is similar to the search form. Refer below
Add Table (Search result) config consists of labels, column data and related jsonpaths to access the data passed. Refer below
To add any customisations on query params, request body, table columns or to add any custom validations in forms, related code can be added in the UICustomisations file as below
Once the above config is defined, created an index file/ Component in the pages folder. Fetch the config from MDMS and pass it to the inboxSearchComposer component as below
This approach is followed only in Inbox and Search screens currently.
Only one API can be called dynamically based on given configurations.
Measurement Book Tech Document
This module helps in taking the measurement, for an accepted contract
Roles: MB_CREATOR, MB_VERIFIER, MB_APPROVER,MB_VIEWER
This module has 5 associated screens :
Inbox
Create
Edit
Update
Search
This screen renders dynamically based on the user's role mapping. It contains two cards: Measurement Book and Work-order Book. These modules are displayed according to the roles assigned to the logged-in user. If the user has the role of MB Creator, the Work-order card will be visible. Similarly, if the user has the MB_VERIFIER, MB_APPROVER,MB_VIEWER role, the Measurement card will be visible. If the user has both roles, both cards will be displayed.
New Measurement Book creation:
Tap the "Create Measurement Book" button on any work order to generate a new measurement book.
Work Order Filter:
Users can filter the work order list by work order number, ward, and CBO name.
Work Order Sorting:
Users have the flexibility to sort the entire list based on the amount or CBO name.
Existing Measurement Book view/update:
Users can update/view measurement books by tapping on the Create Measurement Book button of any of the work orders.
Measurement Book Filter:
Users have the flexibility in the application to filter the work-order list based on the Measurement Number, projectId, ward and workflow state.
Measurement Book Sorting:
Users have been given the flexibility to sort the whole list based on the amount, SLA days remaining and workflow state.
To create the new Measurement Book, The user is required to go to the Work-order inbox screen by tapping the work-order card on the home screen. In that screen, multiple work orders assigned to him will be available in the list. He/she can tap on the work order to create a Measurement Book.
There are certain check points are expected to be validated before navigating to create a new Measurement Book screen from the work-order card.
1
If the existing MB for the selected work-order is in workflow state
NO
2
Time Extension is in progress
NO
3
Revision Estimate is in progress
NO
4
Above points are approved in state
YES
1
{
}
Gives the list of measurements related to the contract Number
2
Gives the estimate details for the estimate Number
This screen contains the below components:
SORs, NON-SORs cards for the current opened screen
The primary detail section contains the previous MB list and the brief description of the MB.
Workflow button
User can fill the measurement of the SORs and NON-SORs associated with Work-order. Image of the worksite can be uploaded by the Measurement book reader as to give proof of work done.
After filling the necessary details , user has been given two options such as Save-as-draft and submit.
if the user does save as draft he has the control to edit it as many time as he wants. once the form is submitted. then He can not edit the application in the same screen.
1
{"roles":""
"isActive":""
"tenantId":""}
Fetches the HRMS employees
2
Create new measurement
In order to update or edit the measurement book, the user has to navigate from home screen to measurement Book Inbox by tapping on the Measurement Book Card. In the MB Inbox Screen he/she can edit or update any measurement book by tapping the Open Measurement Book button.
In this screen use can take the actions:
Verify And Forward
Approve
Send Back
Reject
Edit
1
{
}
fetching the measurement book details
2
updating the current measurement book
3
egov-workflow-v2/egov-wf/process/_search
{"history":"",
"tenantId":"",
"businessIds":""
}
fetches the workflow for the curent measurement book
1
Common MB Card
Custom card with key value data binding
2
Multi line Items
custom component contains the digit card component with multi-line calculation functionalities
3
Floating Action Card
this component contains the floating action button with showModalBottomSheet functions
4
DropDownDialog
A dialog with dropdown options
5
DigitElevatedButton
An Elevated Submit Button
Blocs:
Models:
Repositories:
Screens:
MUKTASoft UI Tech design
MUKTA UI represents a customised version of the fundamental Works module screens. The flow of the user interface is unique to the particular program or solution, and this can vary. The following diagram illustrates the connection between MUKTA UI and the Works platform.
The Miro board displayed below provides insights into the user interface call flows within MUKTA.
Inbox / Search Composer
CSS Customisation
Documents Upload Container