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...
MDMS Configurations
Role Configuration
APK Generation
Project
Estimate
Workorder
Attendance
MusterRolls
Organization
Wageseeker
HRMS
UI configuration for app
This page provides details about the MuktaSoft UI configuration required to enable it in any environment.
In the DevOps repository of your organization, locate the following "deploy-as-code/helm/environments/works-dev.yaml"
. Inside the environment YAML file used to deploy the Works platform, please add the following block of code:
A dev environment sample file is linked here. Note that you will have to modify this for your deployment.
This section contains a config that is applicable globally to all UI modules. These need to be configured prior to service specific UI configurations.
Create a config file(globalconfigs.js) with below mentioned config (see code below).
Configure all the images/logo required in the S3 and add links as footerBWLogoURL , footerLogoURL
Mention the state tenant ID as stateTenantId
If any User roles have to be made invalid add as invalidEmployeeRoles
Then push this global config file into your S3 bucket as globalconfigs.js
Mention the globalconfig file URL into your Environment config
All the UI Screen configurations required for MUKTA are present in this folder commonMuktaUiConfig. For other MDMS configurations, please check here.
Please refer to the table in this document for screen-specific role configuration. Note that some of this will overlap with configurations done for the backend service modules. If already present in MDMS, please ignore it.
All strings localized per module are provided in this sheet linked here. To translate the UI into other languages, please follow this sheet and provide appropriate translations in your language.
Figma screens for the UI are here. Please refer to them to understand the MUKTA UI.
Steps to generate APK
This document says how to generate 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
This document contains details on the roles required to perform action in Works Frontend App
Note:
Employee Common (EMPLOYEE_COMMON) role is to be added for all the users since it provides them with all employees' common actions mentioned as in table SNo 22.
Bill Accountant and Mukta admin should not be added for any Employee who performs an action in Muster, Bill, Project,Estimate, or Contract Modules.
There are few restricted roles which should not be given to any Employees
Project module frontend tech documentation
The Project module enables the Junior Engineer to capture the details of the project, 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
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>
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:
Form Validations: Check if all form validations are added to the screen configurations. Add the populators for respective validations and mention the JSON path for the pre-process to work.
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
Set module code as “Estimate” in Module.js of Estimate Module. Refer to the file
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.
Sample object for a sidebar action define in MDMS( containing navigationUrl )
For Workflow related actions, the View screens use two components:
Custom Components used in Estimate:
Document Config -
Used in Create Estimate Screen to capture Non-Sor line items.
Used in Create Estimate Screen to capture Overhead items.
Used in Create Estimate Screen to calculate and render Total Estimate Amount.
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.
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
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 with the code of the cityModule.json, mentioned above.
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.
Document Config -
Work Order Terms and Conditions -
This Component will help input description in the table. Users can add and delete the rows. First row won't be deleted, clicking on the delete button will empty the first row. Refer Component - WOTermsAndConditions.
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.
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 docs for Pre-Process config in Component comments.
This document contains the module-wise required MDMS data.
Document Config - Based on the , respective documents will be rendered on the Create Screen. Mention the validations, file type, and file size limits in this config.
Business Service name - “mukta-estimate”. Refer to the MDMS file for workflow businessServices names -
-> 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 .
-> To show the workflow history on View screens.
Based on the , 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 -
Overheads Table -
Total Estimate Amount -
UploadFileComposer -
Used in Create Estimate Screen to render document upload section using
Labour and Material Analysis-
All the Inbox and Search screens throughout the app are rendered using this component .
Work Order Amount - This field shows the calculated amount of Total Estimated Cost minus the Overheads which has ‘isWorkOrderValue’ as true. Please refer OverHeads config for Amount calculation.
Role of CBO will be shown based on the calculated Work Order Amount. If the calculated Work Order Amount is less than ‘amount’ in RoleOfCBO Config, show Implementation Agency else show Implementation Partner. This logic will vary based on the updates in the .
Based on the , respective documents will be rendered on the Create Screen. Please mention the validations, file type limits and file size limits in this config.
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
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
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
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
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
S.No
API
Action ID
Roles
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
S.No
Screen
Navigation URL
LeftIcon Updates
Roles
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
S.No
Screen
Configuration
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
TenantID
Module
pg
rainmaker-contracts
pg
rainmaker-common-masters
pg
rainmaker-common
pg
rainmaker-workflow
pg.citya
rainmaker-pg.citya
UI Component Name
Business Service
WorkflowActions
contract-approval-mukta
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
1
UOM (Unit of Measurement)
2
Overheads
3
Document Config
S.No.
Data
MDMS Link
1
Role Of CBO
2
Document Config
https://github.com/egovernments/works-mdms-data/blob/DEV/data/pg/works/DocumentConfig.json
Wageseeker TechDocument
This module helps create wage seekers.
ROLE: ORG_ADMIN
This module contains 4 linked forms
Summary Details
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.
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
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.
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
Work in Progress Will be formatted and removed
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.
Wageseeker Tech Document
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
S.No.
Data
MDMS Link
1
Relationship
2
GenderType
3
SocialCategory
4
WageSeekerSkills
5
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
/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
S.No
Screen
Navigation URL
LeftIcon Updates
Roles
1
Search Individual
/works-ui/employee/masters/search-wageseeker
dynamic:WageseekerIcon
MUKTA_ADMIN
Sample object for a sidebar action define in MDMS (containing navigationUrl)
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
Modify Individual 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 Individual 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
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.
Delete API Usage
To update individual skills update Individual and delete individual APIs are being used
If skills already exist then those can be updated with update API, if any skills are to be removed then delete API is used, in this case whole skill object need to be send with ‘isDeleted’ flag equals to true.
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
S.No.
Data
MDMS Link
1
AttendanceHours
2
WageSeekerSkills
3
CBOMusterSubmission
On this page, the following actions need to be performed: The CBO Admin needs to select the date range from the Date Picker.
On the Selection of any date from the Picker, the whole week gets selected by default. On Selecting the particular week, and Clicking on Apply, the user can view the pre-saved attendance log for the respective week User can change the attendance log for each individual, And then click on the Save as Draft button to save the attendance log,
The user can submit the muster roll, On Click of submit the muster roll, the user will be asked to fill in the skills for each individual, After filling skills of each individual, the user can submit the muster roll for that particular week
Validations If a Date range is not selected or cleared, the Save as Draft Button will throw an error to select the date range Submission of muster roll depends upon the CBOMusterSubmission MDMS Config
If END_OF_WEEK is false, the user can create the muster roll on any day of the week, else user can submit the muster roll on or after the last day of the week (i.e. Sunday) If there is an existing muster roll for the selected range, and the muster is in workflow,
Track Attendance page will be a view page, else it will allow to log attendance and submit muster roll Based on the Attendance Hours 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 half-day as well.
S.No
API
Body / Query Params
Description
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
<details>
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
TenantID
Module
pg
rainmaker-common
pg
rainmaker-attendance
pg
rainmaker-common-masters
pg
rainmaker-workflow
pg.citya
rainmaker-pg.citya
Reference Files/Links
Blocs :
Models :
Repositories:
Screens
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
User should be able to create → Forward (or) check → Forward/Reject a contract.
Contracts will be created by contract_creator, Checked by contract_checker and approver by contract_approver. This will be linear workflow and rejected contracts at any point in lifecycle will come into inbox of creator.
Contracts counters on Home Screen will increase/decrease as the inbox items for checkers and approvers increase/decrease respectively.
Actions menu on view page of Work orders should have actions to be taken by respective Actors
For Work Orders (Non-Departmental)
WO is created by JE, Approved by ME. Checkers in between depends on Implementation and can vary from ULB to ULB
Approved WO goes into Work Order inbox of respective organisation.
Organisation can either accept or reject.
Rejected Work Orders will come back into inbox of creator and cycle repeats
For Work Orders (Departmental)
WO is created by JE, Approved by ME. Checkers in between depends on Implementation and can vary from ULB to ULB
Approved WO goes into Work Order inbox of respective organisation.
Organisation can either accept or reject.
Rejected Work Orders will come back into inbox of creator and cycle repeats
For Purchase Orders
PO is created by JE, Approved by ME. Checkers in between depends on Implementation and can vary from ULB to ULB. An Infra expert can be assigned to check PO.
Approved PO goes as SMS to registered Vendor
Vendor can click on the PO link & download approved PO’s PDF.
Once the Estimate are created they will move to the respective checker and approver's inbox as pending items.
From Contract Proposal Inbox, User can come into Contract View Screen where Details of Contract present while creating the contract and Workflow history will be displayed.
User can take necessary actions by clicking on Actions Menu.
An Action bar on the View Contract Screen shows the list of actions
Forward Contract
Reject Contract
Modify Contract
Approve Contract
When any action is clicked respective popup is rendered according to the selected action. We have created three popups for approve, forward and reject. They are shown below
When these popups are submitted, Update Contract API is called containing the relevant updates in the workflow object contained in the request body. The contract service internally calls the workflow service and updates the status of the application.
Upon successful update, a response screen is displayed as follows
Contract Creator should be able to edit rejected contracts and resubmit them .
Rejected Contracts will show up in contract creators inbox.
Clicking on it will take to contract view screen. Users Click on “Actions” to make changes to contract.
Contract Details, ID, Contract Type and Project Details wont be editable.
Financial Details, Agreement Details are editable.
Creator Can make these changes and proceed to forward to checker.
Clicking on Rejected Contract ID from inbox will open Contract view page.
Clicking Actions-> Modify Contract will make page editable
From here on the flow is same as that of Create Contract. Once this Contract is submitted it is again moved to the respective Checker's inbox for approval. Contract can be rejected any number of times due to any specific reason which can be mentioned in the comments and the same comments are reflected in the View Contract screen.
Upon Successful update relevant acknowledgement screen displayed.
A contract that is approved and sent to next stage wont be editable.
Create Contract will have link to create contract from view approved estimate sub Estimate table screen.
Clicking on this will open create contract screen.
Add the following MDMS config to fetch the values of different dropdown filed of create estimate
Once the above details are filled, user needs to forward contract to concerned department and official for checking. Forwarding is considered as part of contract creation.Fill in the details and click “Forward and Approve”.
Once Create Contract API call is successful, an acknowledgement screen is shown.
Some of the dropdown data is fetched from mdms and hrms search API
Localization keys are added under the ‘rainmaker-works’ locale module. In future if any new labels are implemented in works module that should also be pushed in the locale DB under rainmaker-works locale module. Below is the example of few locale labels for hindi and English.
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
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.
Executing Department
MDMS
{
tenant,
"common-masters",
[ { "name": "Department" } ]
}
Designation
MDMS
{
tenant,
"common-masters",
[ { "name": "Designation" } ]
}
Designation of officer in charge
hrms
/egov-hrms/employees/_search
Name of officer in charge
hrms
/egov-hrms/employees/_search
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
S.No.
Data
MDMS Link
1
AttendanceHours
2
WageSeekerSkills
3
Sent Back to CBO
Overview
An estimate proposal is the simplest form of estimate that is created to start detailing the scope and financial aspects of a project.
An estimate proposal contains
Administrative details (Department, Work type, Work Category etc)
Financial Details (Fund, Function, Budget heads COA etc)
Work Details (Name of the work, estimated amount)
Processing details (Approving department, Approver designation)
Describes a group of individuals and their attendance details.
Create an Estimate Proposal
When creating a works module, the module needs to be enabled in citymodule.json.
Add the Following details in citymodule.json
Estimate Creator will have link to create estimate from estimate inbox screen.
Clicking on this will open create estimate screen.
Add the following MDMS config to fetch the values of different dropdown filed of create estimate
Once the above details are filled, user needs to forward estimate to concerned department and official for checking. Forwarding is considered as part of estimate creation.Fill in the details and click “Forward Estimate”.
Each Work detail will be referred to as Sub-Estimate & sub Estimate will back track to all details of Estimate as-is. At least 1 Sub-Estimate has to be created to create an Estimate. Sum of All Amounts of Sub-Estimates is the Estimate Amount.
Once Create Estimate API call is successful, an acknowledgement screen is shown.
API Call Roll action-mapping
/estimate-service/estimate/v1/_create
9
EST_CREATOR
Some of the dropdown data is fetched from mdms and hrms search API
Executing Department
mdms
{
tenant,
"common-masters",
[ { "name": "Department" } ]
}
Ward, Location
mdms
{
"pb.amritsar",
"egov-location",
[ { "name": "TenantBoundary" }]
}
Beneficiary, Nature of Work, Type of Work
mdms
{
"pb,
"works",
[ { "name": "BeneficiaryType" },
{ "name": "EntrustmentMode" },
{ "name": "NatureOfWork" },
{ "name": "TypeOfWork" }, ]
}
Fund, Function, Budget Head,Scheme, subSchem
mdms
{
"pb",
"finance",
[ { "name": "BudgetHead" },
{ "name": "Functions" },
{ "name": "Fund" },
{ "name": "Scheme"} ]
}
Designation of officer in charge
hrms
/egov-hrms/employees/_search
Name of officer in charge
hrms
/egov-hrms/employees/_search
Localization keys are added under the ‘rainmaker-works’ locale module. In future if any new labels are implemented in works module that should also be pushed in the locale DB under rainmaker-works locale module. Below is the example of few locale labels for hindi and English.
Creator (EST_CREATOR)
Create/Edit(Rejected) Estimate and Forawrded
Checket1 (EST_CHECKER)
Checked Estimate and Forwarded
Checker2 (EST_TECH_SANC)
Checked Estimate and Forwarded
Admin Approver (EST_ADMIN_SANC)
Approved Estimate
Modify Estimate and Re-Submit Estimate
An Estimate proposal that is rejected by any user in the workflow will reach creators inbox.
Creator has to make necessary changes and resubmit the Proposal
A Rejected Proposal will have status as Rejected in Creators Inbox.
Clicking on Estimate ID from inbox will open estimates view page.
Clicking Actions-> Modify Estimate will make page editable
Except Date of Proposal everything will be editable. Estimate Proposal ID which is generated initially shown in modify screen.
From here on the flow is same as that of Create Estimate. Once this Estimate is submitted it is again moved to the respective Checker's inbox for approval. Estimate can be rejected any number of times due to any specific reason which can be mentioned in the comments and the same comments are reflected in the View Estimate screen.
Upon Successful update relevant acknowledgement screen displayed.
An Estimate that is approved and sent to next stage wont be editable.
Inbox screen for Attendance Management Module
Overview:
Lists all the musters submitted by SHG
To search/filter the muster list based on various criteria
To navigate to Muster details/View Attendance page
The employee home screen will have a link to navigate to the Attendance Inbox screen
The inbox screen consists of a list of muster rolls created/submitted by SHG in tabular format. This table supports pagination and the number of records displayed per page can be editable
A minimum of 1 search criterion is required based on which the list will be populated with search results. Search parameters are as below:
Name of the work
Implementing Agency/Partner
This list can be filtered based on below parameters:
Date range
Muster roll status
A ‘No results found’ message is displayed if no records are found for the given search/filter criteria.
Both search and filter criteria can be cleared using the ‘Clear Search’ and ‘refresh’ buttons respectively. Muster Roll ID is a clickable link that navigates the user to the View Attendance screen (Muster Details).
Inbox screen technical implementation can be found in the file below.
Hooks used
To fetch inbox details, ‘useCustomAPIHook’ is used which takes all the API details like URL, query params and body from config (defined in MDMS).
To fetch inbox config, ‘useCustomMDMS’ hook is used which takes the module name, master details and config.
APIs used
Endpoint:
Sample curl for Inbox API:
Inbox screen config is fetched from MDMS using 'useCustomMDMS' hook.
Localisation keys are added under the ‘rainmaker-attendencemgmt’ locale module. In future, if any new labels are implemented in the attendance module they should be pushed to the locale DB under rainmaker-attendencemgmt locale module. Below is an example of a few locale labels for Hindi and English.
The content on this screen is rendered based on configuration passed via MDMS. Its implementation can be found in the below file.
/inbox/v2/_search
JUNIOR_ENGINEER
View inbox for Muster Rolls
/inbox/v2/_search
MUNICIPAL_ENGINEER
View inbox for Muster Rolls
User should be able to create → Forward (or) check → Forward/Reject an estimate.
Once the Estimate are created they will move to the respective checker and approver's inbox as pending items.
From Estimate Proposal Inbox, User can come into Estimate View Screen where Details of Estimate present while creating the estimate and Workflow history will be displayed.
User can take necessary actions by clicking on Actions Menu.
Sample ProcessInstance Worflow Object as given below:
An Action bar on the View Estimate Screen shows the list of actions
Forward Estimate
Reject Estimate
Modify Estimate
Approve Estimate
When any action is clicked respective popup is rendered according to the selected action. We have created three popups for approve, forward and reject. They are shown below
When these popups are submitted, Update Estimate API is called containing the relevant updates in the workflow object contained in request body. Estimate service internally calls the workflow service and updates the status of application.
Users must have the respective roles for taking actions on the Estimate, Otherwise the Action Bar will not be visible. And users can only take actions on the applications assigned to them.
Upon successful update a response screen is displayed as follows
EST_CHECKER
CHECK (Check and Forward) / REJECT
EST_TECH_SANC
TECHNICALSANCTION (Check and Forward) / REJECT
EST_ADMIN_SANC
ADMINSANCTION (Approve) / REJECT
Screen to view muster roll details for selected muster roll.
Objective:
To view weekly muster roll details/attendance for selected muster roll
To view the workflow history of the muster roll
Users can navigate to this screen by clicking on the muster roll id on the inbox page
The view screen consists of register details on top, Enrolled user details in tabular format, Workflow history and Actions that can be performed on selected muster. Initially, muster has ‘Submitted’ status.
View Attendance screen technical implementation can be found in the below file.
Hooks used
To fetch muster roll details, ‘useViewAttendance’ is used which takes tenant id and muster roll number.
To fetch workflow details, ‘useWorkflowDetails is used which takes tenant id, muster roll number, and business service (muster-roll-approval) as module code and config.
APIs used
Endpoint:
Sample curl for Search muster API:
Wage seeker skills data is fetched from MDMS using 'getMultipleTypesWithFilter' service.
Localisation keys are added under the ‘rainmaker-attendencemgmt’ locale module. In future, if any new labels are implemented in the attendance module they should also be pushed in the locale DB under rainmaker-attendencemgmt locale module. Below is an example of a few locale labels for Hindi and English.
The content on this screen is rendered based on the configuration passed on ApplicationDetails template component. Its implementation can be found in the below file.
Screen to update muster roll status based on different roles
Objective: To view and modify the attendance days and perform various actions like verify, reject and approve based on roles.
Users can navigate to this screen by clicking on the muster roll id on the inbox page.
Initially, the muster has 'Submitted' status. Junior Engineer can view, Edit, Verify and Reject the Attendance.
Verify: Clicking on the ‘Verify’ action button verifies the existing muster and the user is redirected to the success page
Edit: Clicking on the ‘Edit’ action button displays the extra details in the table. The working days can be edited. Based on that ‘Modified Amount’ is updated dynamically.
As soon as the user updates anything ‘Action’ button changes to the ‘Save’ button. On click of Save, muster is verified with updated details and the user is redirected to the success page.
Reject: Clicking on the ‘Reject’ action displays a popup where the user can provide any comments and reject the muster.
On 'Confirm Reject', muster will be rejected and the user will be redirected to the success page.
The municipal Engineer can view, Approve, and Reject the attendance which is verified by Junior Engineer
Approve: Clicking on the ‘Approve action displays a popup where the user can provide any comments and approve the muster.
On 'Approve Attendance', the muster will be approved and the user will be redirected to the success page.
The municipal Engineer can also reject the attendance verified by Jr Engineer by clicking on the 'Reject' action.
Modify attendance technical implementation where all actions are handled can be found in the below file.
Hooks used
To update muster (modify, verify, reject, approve, resubmit), ‘useUpdateAttendance’ is used which updated muster roll details.
APIs used
Endpoint:
Sample curl for Update muster API:
Wage seeker skills data is fetched from MDMS using 'getMultipleTypesWithFilter' service.
Localisation keys are added under the ‘rainmaker-attendencemgmt’ locale module. In future, if any new labels are implemented in the attendance module they should also be pushed in the locale DB under rainmaker-attendencemgmt locale module. Below is an example of a few locale labels for Hindi and English.
The content on this screen is rendered based on the configuration passed on ApplicationDetails template component. Its implementation can be found in the below file.
/muster-roll/v1/_search
JUNIOR_ENGINEER
View Individual Muster Roll
/muster-roll/v1/_search
MUNICIPAL_ENGINEER
View Individual Muster Roll
/muster-roll/v1/_update
JUNIOR_ENGINEER
Reject
Send for Approval
Modify/Verify Muster Roll
/muster-roll/v1/_update
MUNICIPAL_ENGINEER
Approve
Reject