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...
Works platform design principles, approach and rationale
The Works platform design approach is based on the principles of interoperability, open, standards-based, real-time, inclusivity, a single source of truth, security and privacy. The principles define the framework for a scalable and reliable platform that adapts to evolving needs. Read more about the platform design principles here.
Works aim to expedite payments for public works projects undertaken by different departments. The platform registries and APIs ensure units have instant access to trusted information that improves coordination between the various departments. The seamless flow of information ensures payments are fast-tracked, projects are managed better, and departments can execute more work.
The platform design provides the capability to integrate smart payments with iFIX. The integration enables departments to track project milestones and simplify vendor payments. The multi-layer architecture design ensures transparency, visibility and fast decisions all of which translate to an accelerated pace of development. The registries and APIs ensure information flows seamlessly across channels removing the challenges of siloed data structures and facilitating interoperability.
Click on the page link below to learn more about our platform architecture.
A Works Management System (WMS) typically is used by various departments in the government to track end to end lifecycle of a project (scope and finances).
The input to Works could be a decision that is taken in the legislature for the construction of new capital works or demand that is generated from within society or officers, for maintenance of existing projects.
Construction of new metro rail is of nature capital works (New Works)
Repair of existing roads is of nature operations and maintenance (O&M)
Read on to learn more about the features and capabilities supported by Works.
Work Packages created from Estimates/Sub Estimates, essentially comprise the scope & bill of quantities that provide contractors with enough information to bid for the contract.
Authorities Draft Tender Papers (DTP) using Work Packages.
Bids are invited from contractors between set dates. There is also a negotiation process that happens on the bid amount. The contractor with the lowest bid is selected.
The Authority issues a Letter of Intent (LOI) to enter into a contract with the contractor.
The contractor issues a Letter of Acceptance in response to the LOI.
A Work Order is then created and shared with the contractor.
A work order is a detailed document that contains Scope, Bill of Quantities, Timelines, Terms and Conditions, Details of Contractor, Liability Periods, Other Documents etc.
A Work order also goes through the approval process.
Before the measurement starts, there are certain offline checks required. For example, acceptance letter issued to date, letter acknowledgement date, work order acknowledgement, signed site handover date, work commenced date etc.
Measurement is essentially of two types.
Tracking Milestones:
Milestones are set up during the contracting phase and before the project starts. These milestones describe the timeline for each phase and the percentage of work that will be completed in various stages.
As a milestone is reached, the completion status can be tracked on the WMS.
All milestones should be in the completed stage to process the final contractor bill.
Tracking Measurement Book:
MBook is also set up for detailed project tracking. MBook measurements are derived from abstract estimates and track the day-day progress of completed work.
MBook measurements can be entered by the vendor and verified by employees or can be entered by ground inspectors/ field staff on a regular basis.
As the project progresses, the contractor raises the invoice for which bills are created by the employee in the system under specific budget heads and sent for approval
Approved bills are sent to the finance department for disbursement.
Advance Bill:
Bill that is raised before the commencement of work. For example, to buy construction materials or to procure labour.
Part Bill:
Bills that are raised during the course of work.
In an ideal scenario, these bills are tightly coupled with the amount of work that is done (MBook measurements)
Final Bill:
The last bill that is raised before completing the project.
Closing the project is a set of activities/checklists (prospective list given below) that are run to ensure all requirements are fulfilled.
Assetisation request raised
Final bill approved
Site inspection done
Site handover done
Contractor feedback submitted etc
Reports and Dashboards give employees views and ways to analyze project performance within their jurisdiction. This also includes timelines, delays, risks, projections etc.
Some of the reports are
Work progress register
Estimate appropriation register
Estimate abstract report by the department
Contractor bill report
Works utilisation report
Retention money recovery register
Each report will be made available to be downloaded in PDF as well as Excel.
DSS dashboard will also be included.
Many master records are required for the smooth functioning of WMS.
Some of these are listed below:
Contractor Class Master
Bank Master
Department Master
Department Category Master
Contractor Master
Election Ward Master
Location Master
Work Category Master
Beneficiary Master
Nature of Work Master
Type of Work Master
Sub-Type of Work Master
Recommended Mode of Entrustment Master
Fund Master Master
Function Master
Budget Head Master
Scheme Master
Sub-Scheme Master
Designations Master
User Master
Find the detailed process flow illustrating the steps in Works within various value bundles is given below. Refer to the colour legend on top of the attached diagram for a better understanding.
New release features, enhancements, and fixes
DIGIT-Works release v0.1 is a new release that offers new platform features and functions, the details of which are provided below.
Functional changes
Projects - Create a Project, Modify a Project, View a Project & Search a Project
Estimates - Create an Estimate, Modify an Estimate, View an Estimate & Search an Estimate
Contract - Create a Contract, Modify a Contract, View a Contract & Search for a Contract
Organisation - Create an Organisation, Modify an Organisation, View an Organisation & Search for an Organisation
Attendance - Create an Attendance Register, Modify an Attendance Register, View an Attendance Register & Search an Attendance Register
Muster roll - Create a Muster roll, Update a Muster roll
Expense (Bill) - Create a Wage Bill, Purchase Bill, Supervision Bill, Modify a Wage Bill, Purchase Bill, supervision Bill
Individual - Create an Individual, Modify an Individual, View an Individual & Search an Individual.
Bank account - Create a Bank account, Modify a Bank account, View a Bank account & Search a Bank account.
Non-functional changes
NA
It is a fresh development and getting released for the first time.
The following things are known issues that need to be addressed as part of the platform roadmap:
The payment status of bills needs to be updatable after offline processing.
Integration with error queue implementation for all services and requisite measures to fix them need to be in place. In case of unrecoverable failures, this will provide a way to alert and institute measures to resolve.
Alert mechanisms when critical errors occur need to be in place, especially with billing.
Offline & low connectivity use cases need to be handled as a best practice.
Improved logging across services to help troubleshoot
Attendance service and muster roll are to be made configurable by adding a unit of measurement.
Performance testing and benchmarking of services.
Security audit.
The platform architecture illustration below provides a visual representation of the key components and layers that facilitate a seamless flow of information across multiple departments.
The high-level design (refer image above) of the Works System can be divided into three parts:
Master(Reference) Data
Works Registries(Services)
Reused/Enhanced DIGIT Core Services
Below are classifications of some of the master data used in the Works platform. For a comprehensive list, please refer to the service documentation
DIGIT Core service masters are not covered below.
Simple Masters:
Organisation Class
Organisation Functional Area
Organisation Type
Department
Nature of Work
Wage Seeker Skills
Labour Charges
Overheads
Headcodes
Applicable Charges
Mode of Entrustment
Beneficiary Type
Designations
Hierarchical Masters
Type of work
Sub-type of work
Location - Same as DIGIT
Individual - stores details of individual citizens. Individuals may or may not be users of the DIGIT system. If they need login access, they will be created in the User registry.
Organisation - This registry holds details of all types of organisations, their functional areas and class.
Bank Accounts - This registry stores bank account details to be used for online payments in a safe and secure manner.
The following domain services have been developed/are being planned as part of the Works platform:
Project
Estimate
Contracts
Attendance
Muster roll
Expense/Billing
JIT Adapter (Roadmap)
Milestones (roadmap)
Payment Calendar (roadmap)
Measurement Book (roadmap)
The following list consists of major core services from DIGIT that will be reused in Works Project. A few of the common core services might have been missed from the list.
The Works platform hosts the below registries:
- contains a detailed description of a citizen/individual who may/may not interact directly with the DIGIT platform but is a beneficiary.
- contains the organisation details.
- contains tenant/organisation bank account details.
Feature | Description |
---|
Doc links |
---|
Doc Links |
---|
Feature | Service Name | Changes | Description |
---|---|---|---|
Feature | Service Name | Changes in code | Description |
---|---|---|---|
egov-hrms
Employee creations and role mapping
common actions
egov-location
added boundary data's and common action MDMS end points
estimate-service
estimate master data endpoints
ID format all module
egov-idgen
ID format for all module
project-management-system
Project master data endpoints
PFM-2843 : changed project id regex
Project ID changes
individual-service
Individual master data endpoints
organization-service
Organization master data endpoints
PFM-2499, PFM-2507
muster-roll-service
Muster roll module changes
attendance-service
Attendance module changes
PFM-2001, PFM-2004
contract-service
Contract module changes
master config file json
json fix
tenant ID Json
Tenant ID Updated from state1 to statea (Since tenant ID not accepting the numeric changes to Alphabet)
Removed duplicate action ID
Role action
Role action mapping
Role action mapping for Contract and Project
Role action mapping
Role action mapping for Estimate
Role action mapping
Role action changes
Role action mapping
Role action changes
Role action mapping
Role action changes
Role action mapping
Role action changes
Role action mapping
Document Config
Role action mapping
Role action mapping for Organization
Role action mapping
Role action changes
Role action mapping
Role action changes
Role action mapping
Role action changes
Common Ui config
organization config file changes
Role action mapping
Role action changes
Role action mapping
Role action changes
Role action mapping
Role action changes
Role action mapping
Role action changes
Common Mukta UI Config
estimate-service
Estimate Business Name change
Common Mukta UI Config
contract-service
Contract Business Name change
Common Mukta UI Config
muster-roll-service
Muster Roll Business Name change
Added CBO Muster Submission
Registered by department","Department registration number" not Mandatory
Updated by default assign to all from assign to me
Added the role action update mapping for muster verifier and approver
Added role action mapping for bank account search for org admin
Added role action mapping
Added org search for org admin
Updated validation for create project
updated deatils for create work order
Updated role action for search wage seeker
Updated validation for door no and street name
Updated role action for update Update Individual
Update SecurityPolicy.json
Updated action test.json
updated Create Organisation Config
updated Create Project Config
Added SearchBillConfig.json
Added CBOMusteInbox Config
updated CBO my works config
Updated attendance hour
updated re-submit Code
PFM-3039 changes
project-management-system
project-management-system
Project module work-config changes
attendance-service
attendance-service
Attendance module work-config changes
organization-service
organization-service
Organization module work-config changes
contract-service
contract-service
Contract module work-config changes
estimate-service
estimate-service
Estimate module work-config changes
muster-roll-service
muster-roll-service
Muster roll module work-config changes
Audit service
Audit service
Audit service work-config changes
individual-service
individual-service
Individual service work-config changes
Adding file egov-workflow-v2-persister.yml
Muster roll config changes
Estimate PDF corrections
Estimate PDF corrections
Expense service changes
Updated the workflow changes
Updated the workflow changes
Tenant ID change
Tenant ID change
Environment changes
Tenant ID change and Inbox service path
Removed unwanted host
Removed unwanted host
Removed unwanted host
Removed unwanted host
Updated the Environment name
Persister
Updated Persister path
Inbox
Updated inbox path
Inbox
Updated inbox path
Inbox
Inbox path corrections
File-store
File store correction
user
user path added
workflow
Estimate and Contract workflow business name correction
Workflow business name
Muster roll business name changes
Expense & Project service
Expense and Project service changes
Projects | Create a Project, Modify a Project, View a Project & Search a Project |
Estimates | Create an Estimate, Modify an Estimate, View an Estimate & Search an Estimate |
Contract | Create a Contract, Modify a Contract, View a Contract & Search for a Contract |
Organisation | Create an Organisation, Modify an Organisation, View an Organisation & Search for an Organisation |
Attendance | Create an Attendance Register, Modify an Attendance Register, View an Attendance Register & Search an Attendance Register |
Muster roll | Create a Muster roll, Update a Muster roll |
Expense (Bill) | Create a Wage Bill, Purchase Bill, Supervision Bill, Modify a Wage Bill, Purchase Bill, supervision Bill |
Individual | Create an Individual, Modify an Individual, View an Individual & Search an Individual. |
Bank account | Create a Bank account, Modify a Bank account, View a Bank account & Search a Bank account. |
Category | Services | Docker Artifact ID | Remarks |
---|---|---|---|
Describes a calculator service for computing attendance
The muster roll service aggregates attendance logs from the attendance service based on some rules and presents an attendance aggregate for a time period (week or month) per individual. This can then be used to compute payments or other semantics.
DIGIT backbone services
Idgen
Persister
Indexer
Workflow
User
Attendance
/muster-roll
Click to learn more about this service.
This service models estimates for Works projects
Estimate Service will allow users to create estimates and forward them for approval to higher authorities across departments for technical, financial, and admin sanctions. For more technical information on this service, please refer to the and the folder.
Project
MDMS
Workflow
Notification
Access Control
User
IDGen
Base Path: /estimates/
The diagram below shows the interaction between the estimate service and the persister, indexer. This does not follow the default pattern. Instead, enrichment of the payload for the indexer happens via a separate consumer and then the enriched payload is pushed to a topic. The indexer listens to this topic and sends it to ElasticSearch.
An inbox is needed when there is a workflow-enabled for the service.
The proposed sequence diagram is below.
TBD
Estimate inbox uses the Inbox V2 service (from DIGIT core) which queries ES to retrieve details for the inbox. For more information on Inbox V2, please refer .
Indexer Config:
Core Services
Signed Audit
audit-service-db:v1.0.0-24873ba-4
Access Control
egov-accesscontrol:v1.1.3-72f8a8f87b-24
Encryption
egov-enc-service:v1.1.3-44558a0-3
File store
egov-filestore:v1.2.4-72f8a8f87b-10
Hrms
egov-hrms:v1.2.5-1715164454-6
ID Gen
egov-idgen:v1.2.3-72f8a8f87b-7
Indexer
egov-indexer:v1.1.7-f52184e6ba-25
Localization
egov-localization:v1.1.3-72f8a8f87b-6
Location
egov-location:v1.1.4-72f8a8f87b-6
MDMS
egov-mdms-service:v1.3.2-72f8a8f87b-12
SMS Notification
egov-notification-sms:v1.1.3-48a03ad7bb-10
User OTP
egov-otp:v1.2.3-e30d33c5ee-13
pdf-service
pdf-service:v1.2.1-5ad7ffbc29-42
Persister
egov-persister:v1.1.5-6cfa52c1f9-3
Searcher
egov-searcher:v1.1.5-72f8a8f87b-16
URL Shortening
egov-url-shortening:v1.1.3-6cfa52c1f9-1
User
egov-user:v1.2.7-cb9eb30-5
Workflow
egov-workflow-v2:v1.2.2-cae8f24502-3
inbox
inbox:v1.3.0-32c61b6-11
Ingress Controller
nginx-ingress-controller:0.26.1
Oauth2 Proxy
quay.io/pusher/oauth2_proxy:v5.1.0
User OTP
user-otp:v1.1.6-e30d33c5ee-8
Zuul - API Gateway
zuul:v1.3.1-96b24b0d72-39
Works builds v0.1
Attendance
attendance:v0.1.1-b0028753-3
Bank Account
bankaccounts:v0.1.1-b0028753-27
Contract
contracts:v0.1.1-44a81661-20
Estimate
estimates:v0.1.1-44a81661-21
Muster Roll
muster-roll:v0.1.1-b0028753-8
Project Management
project:v1.0.1-8d350429f4-79
Organization
organisation:v0.1.1-b0028753-34
Individual Service
individual:v1.1.0-73167482a2-87
Expense
expense:v0.1.1-8e6b342c-61
Works MDMS v0.1
MDMS changes is linked
Works Config v0.1
Config Changes is linked
Attendance Management is divided into 2 parts:
Attendance Service
Muster-Roll Service
To verify the ids of the individuals, the attendance service depends on Individual Registry. It is an optional dependency. If the no individual registry is linked with the attendance service, then the ids would not be checked for validity and assumed to be correct.
Attendance Service manages the following:
Attendance-Register: It maintains a list of individuals enrolled for a given register.
Staff: Staff members manage the register. Staff can be created or deleted from a register.
Attendee: Attendees are the individuals participating in the register. Attendees can be created or deleted from the register.
Attendance-Log: The log entries of the attendance. It will have events of entry and exit.
Muster-Roll is a report built upon the attendance logs. It has computed attendance values. It will pass through an approval workflow.
DIGIT - Projects functional details
Projects are the first work entity defined by the State/Department/ULB or any executing authority. This consists of basic details like IDs, descriptions, addresses, sub-project details, project types, start and end dates etc.
Projects may not focus on just construction or civil works. A health campaign, an office decoration, a pre-contractual phase with an IT vendor for new software, new service delivery initiatives etc are examples of projects.
Users: Junior Engineer or Assistant Engineer who creates Works Projects for the ULB/Department
Description
JE creates projects with the below-mentioned attributes.
A project can have sub-projects as well depending on the way of executing the project.
When a project is divided into sub-projects, each will have the same attributes to be captured as the main project.
A project can be sent for approval depending on the need.
Usually, the administrative sanction is done on projects by EO. Post approval, detailed and abstract estimates are done.
Once the admin sanctions the project, the fund is also blocked for the respective heads of accounts.
Project status -
Created
In progress
Approved
Rejected
Cancelled
Once a project is created on the UI, the system generates a unique ID for each project/sub-project.
ID: PROJ/<ULB/Department Code>/<Year>/<month>/<Date>/<running sequence number>
The project details capture the financial details such as the funding source for the project. These details, however, are not part of the Project Service but are captured as part of the Program Service.
The table below provides the list of project attributes.
A project can be divided into multiple sub-projects, each with its own workflows/business requirements defined.
This section gives information related to Organisation Services. An organisation can be any contractor/vendor/business unit that works with the government and helps in citizen service delivery.
A contractor/vendor is someone who does projects with the government. Every Project, after estimation approval and tendering, will have to be assigned to a contractor/vendor for it to be executed.
Works contractors bid for or are assigned works' contracts depending on the mode of entrustment for specific projects
Process of registering a contractor.
A contractor will apply for registration with any of the government departments. The contractor will be assigned a class and ID upon registration. A contractor will be issued projects that will fall into that class.
A contractor can have multiple staff that manage contractor organisation with permissions
List of things done by contractors for a project -
(Offline) Bid for contracts
(Offline)Negotiate contracts
(Offline)Accept Letter of Intent
(Offline) Issue Letter of Acceptance
(System) Accept/Reject Contract
(System) Track Work Measurements
(System) Track Attendance Measurements
(System) Create Running/Final Bills
(System) Download and upload relevant documents
Each contractor organisation is given a contractor class/grade depending on the screening/validation process.
Following are the fields required to grade contractors. This constitutes the MDMS data.
A contractor organisation has a class associated with at least one department; type and subtype based on what the organisation supplies to the government, staff details so as to know who is managing the organisation and financial details so as to make payments.
The contract service captures work orders or purchase orders. It validates the work order against the estimate(s). Line items from one estimate can be put in a contract. Line items from multiple estimates can be aggregated into one work order as well. The contract service validates the line items from each estimate as part of create and update.
Estimate service
IDGen
MDMS
Workflow
User
HRMS
Organisation
Models a real world work order/contract
All line items of a single estimate can be put in a contract.
Line items from multiple estimates can also be grouped into a contract.
The service validates the estimate line items and ensures no duplication happens in including estimate line items in a contract.
Terms and conditions, milestones and payment calendar are WIP
Contract Type - defines different contract types
OIC Roles - defines Officer-in-charge roles
CBO Roles - defines the capacities in which an organisation can accept the contract.
Base path:
/contracts
Field | Data Type | Required (Y/N) | Validations / Comments |
---|---|---|---|
Field | Data Type | Required (Y/N) | Comments |
---|---|---|---|
Field | Data Type | Required (Y/N) | Comments |
---|---|---|---|
Description | Mockup |
---|---|
Description | Mockup |
---|---|
Description | Mockup |
---|---|
API
Id
NA
Y
System generated UUID
Name
Alphanumeric
Y
MinChar 2 - Max Char - NA Ex - Construction of School Building
Project Type
MDMS Data
Y
Should be pre-defined master data Ex - Building
Project Sub Type
MDMS Data
N
Should be pre-defined master data. Estimate templates are linked to a project subtype Ex - School Building
Project Group
MDMS Data
Y
Should be pre-defined master data. Contract & Assetisation terms are defined based on this value. Ex - Capital Works
Address
Y
Address of the main project.
Proposed Start date
Date
N
Proposed End date
Date
N
Parent
ID
N
Parent Project ID
Status
MDMS Data
Y
Created, Rejected, Cancelled, In-progress, Completed
Owning Department
MDMS Data
Y
Reference No
Alphanumeric
N
MinChar 2 - Max Char - NA Reference No to Offline File if any
Description
Alphanumeric
N
MinChar 2 - Max Char - NA Description of the Project
Documents
Attachments
N
Upto 5 Documents each of 5 MB Document Attachments
Grade
Alphanumeric
Y
Unique field
Description
Alphanumeric
Y
Description of the grade
Minimum Amount
Numeric
Y
Minimum value of work that can be assigned to the contractor of the grade
Maximum Amount
Numeric
Y
Maximum value of work that can be assigned to the contractor of the grade
Organisation Details
Vendor ID
NA
NA
System Generated unique code assigned to the contractor
Format: VO-<FY>-<6 digit running sequence number> - VO-2022-23-000001
Organisation Name
Alphanumeric
Y
Name of the Organisation
Organisation ID
Alphanumeric
N
Offline reference of Organisation ID given by govt
Formation Date
Date
N
Date of Formation of Organisation
Contractor Class
Drop down
N
Options will be list of contractor grades from the contractor grades master
Organisation Type
Multi Select Dropdown
Y
Contracts should be awarded to organisations who are of certain type. A Contractor registered as Vendor(material suppier) can only be awarded material contract
Ex - Contractor, Materials Supplier, Mixed
Organisation Sub Type
Multi Select Dropdown
N
Subset of type of organisation
Ex - Vendor - Sand, cement, concrete, paint etc Contractor - NA Mixed - NA
Status
Drop down
Y
Options will be the list of Contractor status maintained by the ULB
Active
Inactive
Black listed
Debarred
Registered by department
Drop down
N
Options will be list of the departments of the ULB defined in the department master
Public Works Department, Water Department, Education Department
Registered date
Date
N
Date of registration with the department
Valid From Date
Date
N
The date from which the specified status is applicable to the contractor
Valid To Date
Date
N
The date until which the specified status is applicable to the contractor
Documents
Attachment
N
Upto 3 files max of 2 MB each
Location Details
Address
Alphanumeric
N
Contractor address using boundary hierarchy - Locality, Ward, ULB, District etc
Billing Address
Alphanumeric
N
Contractor address using boundary hierarchy - Locality, Ward, ULB, District etc
Contact Details
Owner Name
Alphanumeric
Y
Name of the owner
Owner Mobile number
Numeric
Y
Mobile Number of the owner
Owner e-mail address
Alphanumeric with special chars
N
Email of the owner
Contact person Name
Alphanumeric
Y
Name of the contact person
Contact person mobile number
Numeric
Y
Mobile Number of the contact person
Contact person email address
Alphanumeric with special chars
N
Email of the contact person
Total Members
Numeric
N
Number of members in the organisation
Financial Details
Account Name
Alphabet
Y
Name of the Bank Account
Account Type
Drop down
N
Savings, Current, Loan, Credit
Account Number
Alphanumeric
Y
Account number of the contractor against which payments will be made
Transfer Code
Drop down
Y
MDMS Data for selection of type of unique transfer code per bank account
Ex. IFSC Code
Bank Name
Drop down
N
Options will be a list of banks specified in the banks master. Used to select the bank where contractor’s account is maintained for direct bank payment
Bank Branch
Drop down
N
Tax Identifiers
Table Select Dropdown
N
Table with multiple identifier types List
GSTIN
PAN
TIN
User to enter identfier values for each identifier type
[Array] Staff Details
Staff ID
NA
NA
System generated ID of the staff that is prepopulated because of search by phone number
Staff Name
Name of staff
Staff Role
Dropdown
Y
Role Assigned to StaffAdmin - Role that allows all actions within the organisation including adding new members to organisationManager - Role allows only functional activities like accepting contracts, creating bills etc
Staff Designation
Dropdown
N
Designaton of the staff
Owner, President, Secretary, member etc
Employement start date
Date
N
Start date of the employement
Employement end date
Date
N
End date of the employement
Employment status
Dropdown
Y
Active, Inactive status of the employee
The bank accounts registry houses financial account details of individual and organisational entities. The registry stores the account name, type, bank branch identifier (IFSC code) and other optional information. The bank branch identifier can be configured as master data. This makes it easy to extend this registry for use in countries outside India. The registry encrypts all PII and stores it in a secure fashion.
DIGIT backbone services
Persister
Encryption
Stores bank account details of entities in a secure fashion.
All PII data is encrypted securely.
Helm charts for deployment
BankBranchIdentifier
Base path: /bankaccount-service/bankaccount
The expense module implements the functionality of bills and payments. A bill or a group of bills can be aggregated together as payments. Payments advice can be submitted through integration with IFMS (Integrated Financial Management Systems) or any other third party payments provider. The expense module always works in combination with a calculator service. The calculator service is implementation specific and provides business logic to compute bills. The calculator calls into the expense service to create bills. In general, the expense create/update APIs are not called by any other module other than the calculator. For more information on the sample calculator provided with the Works platform, please navigate here.
DIGIT backbone services
Persister
Indexer
IDGen
MDMS
Workflow
Notification
Create/update/search functionality for bills
Ability to create different bill types according to configuration.
Workflow is integrated and needs to be configured for usage.
Works with an expense calculator that contains the business logic to compute bills.
HeadCodes
Postman TBD
Create Project with no sub projects
Create Project with Sub projects
Capturing Financial details of project (Part of Program service)
Capturing Sub Project Details
Project Created Successfully
View Project
Projects Inbox
Inbox Table
Users with permission to Create Master records have to click on Masters on the home page to navigate to the Masters landing page.
On this page, the user has to select Vendor Organisation in the drop-down (one of the few registries that are available to edit/add from UI) and click on Search.
Users are shown records of existing vendors and the option to add new Vendor Organisation.
Clicking on Add New Organisation redirects users to Create New Organisation page.
Create Organisation page has 4 Tabs along with header details.
Attributes and explanations for each are mentioned in the attribute table above.
Vendor ID is the unique ID generated by the system with a specific format.
Organisation ID is the ID given to each vendor during offline registration.
The system checks the organisation ID to ensure that no existing record is present and avoid de-duplicating. This check can be performed by clicking on the Next button on the first screen.
Location Details have HQ address and Billing Address.
The selection of location details in the hierarchy limits the results to that selected boundary in the next hierarchy.
The check box copies the details of the HQ address to the Billing address and makes the fields non-editable.
The staff details tab is not accessible until the vendor organisation is created. The Show Info icon alongside staff states “Organisation needs to be created to add staff and staff details”
Contact Details have owner info and contact person info.
Name and Phone number of both are made mandatory.
System should check if user with this phone number is present already in user registry and if not create a new user.
Designation for Owner is auto-assigned in the staff details as the owner
The role of the owner defaults to admin and manager.
The designation and role of the contact person are kept open.
The checkbox shows the default details of the contact person same as the details of the owner and creates a single user.
Financial details of the organisation captures bank account details where payments are to be made.
Transfer code has single identifier type per bank account. List will have only IFSC code for now. User has to input IFSC code against it.
Tax identifiers are array of attributes which are financial/accounting related objects of the vendor like PAN, GSTIN, TIN etc. This list will be defined in MDMS and user can select/add any number of identifiers that are listed in the master.
As per Indian context, default the first row to GSTIN and allow user to add from second row.
Any identifier that is mandatory can be shown already with a row instead of user adding that row.
After adding financial details, user can create a vendor organisation by clicking on create vendor organisation
Vendor organisation is created successfully and ID is displayed.
The user is prompted to add staff to the created vendor organisation.
By default the first/first two rows are auto-filled with the owner and contact person details inputted while creating the organisation.
Users can add the remaining attributes of these two users like employment start and end dates.
To add new/other users - Search by Phone number to see if the user already exists in the user registry
If a user exists -
The default phone number will be displayed on the new row along with the name. Allow the user to add other details like designation, start and end dates, and status.
Staff ID is not editable and is auto-generated once the Add Staff Details button is clicked.
If the user does not exist -
Display a message stating that “No staff exists with this phone number”
Capture phone numbers on UI using auto-fill. Allow the user to enter all other details including name designation, start and end dates and employment status.
Both these flows will ensure duplicate staff entries are not created in the user registry.
Once the Staff Details are added, a success message is displayed stating that the staff has been added successfully to that organisation.
Clicking on Masters on the home page redirects users to an empty screen where he/she will have to select the master/registry they want to create/view.
Selecting that registry from the dropdown displays the relevant records with pagination on the first screen.
Users can click on any data record to view that record or click on add new organisation that appears on selecting that master.
Filters for the master
Organisation ID
Name of the Organisation
Type of the organisation
Status
Create between start and end dates
Using this filters user should be able to shortlist/pinpoint to that organisation.
Show default no results found illustration screen along with text “No results found” when filter returns empty.
View Vendor screen has the same details as Create Vendors with 1 additional attribute which is the Vendor ID
In a government setting -
Payments are generally made TO and BY the government. In this document, we will refer to payments made by the government as expenses and payments received by the end party as receipts.
Payments made TO the government, ie. Receipt/Revenue to the government can be of two types
Demand based collection
First, a demand is generated by the government
Ex. Demand for Property Tax, Trade license, Water tax etc
Second, An invoice is issued by the government with these demand details for what is owed to the government either as taxes/charges/levies etc.
Third, Citizen acknowledges and pays the respective amount.
Fourth, a receipt is issued against the paid amount.
Non Demand based Collection
There is also another type where collections are made without any demand being generated.
DIGIT has this demand & Billing service to accommodate payments made to governments.
For payments made BY the governments
Ex - Salaries, Wages, Payments to beneficiaries, Contractors, Ad hoc payments
For any transaction to happen, there is a payer, payee, amount and entity details
Payer and Payee can be individuals or organizations.
Entity details contain other information which are important for a bill to be generated but not mandatory for payment advice
Ex. Invoice ID, Invoice date, Verification details etc
Every transaction will ideally start with an invoice equivalent that is generated by the supplier/contractor/muster/contract/payroll etc against which a payee will generate a bill on the name of the payer.
A Bill can have single or multiple beneficiaries. It should depend on the source of verifiable information.
Ex. If a muster roll has 20 beneficiaries, Bill also can have 20 beneficiaries. It is not needed to create 20 individual bills.
At the same time, A single invoice should not be divided into multiple bills.
Ex. Even though material is supplied in tranches, a single PO can lead to multiple invoices and only after the consumption of entire material as per individual invoice and associated measurement book, Bill for that invoiced amount can be created and paid.
A Payment advice is required to be generated to enable beneficiary payments, module is to be integrated with a payment gateway
Hence a payment advice will contain minimal information that is required for bank/gateway to make the payment.
Limits on number of beneficiaries and amounts etc to be configurable as will needed by the integration.
Expenses are created by the JE and approved by ME, EE/ EO depending on amount and associated approval authority.
This module should have the following components
Header Details
Bill ID
Bill Date
Party Bill ID
Party Bill Date
Bill Type
Salary/Pension Bill
Based on Payroll, leaves, PF, GPF, other allowances
Advance Bill
Unlike other bills which are post work/service completion and measurement, advance bill is raised prior and adjusted later.
Advance bill is horizontal and be applicable on top of all other bill types
Works/Contractor Bill
A contractor bill is created and measured against the measurement books and contract(work order) objects for verification.
When a user selected to pay a contractor bill, user can select against which measurement books of the contract this bill is being raised for, and accordingly bill amount will be calculated.
Muster/Labour Bill -
A labour bill is created from muster roll and usually have multiple beneficiaries within the same bill.
When a user selects to pay a wages bill, user can select which muster rolls to process as part of this bill, and accordingly bill amount and array of beneficiaries will be processed.
Supplier/Vendor Bill
A vendor bill is similar to contractor bill where as here instead of measurement book and work order, an invoice and material receipt register or purchase order are used for verification.
A vendor bill should ideally be against each individual invoice as submitted by the supplier.
Right now, there is no material receipt register or purchase order against which invoices are verified. Hence invoice in V1, cannot be as verifiable as we are verifying wages bill against muster rolls.
Contingency/Expense Bill
Ad Hoc expenses
Supervision Bill
This type of Bill is calculated as a percentage on top of other types of approved bills.
Others (need more usecases)
Debit Details
{Account Code, Account head, Debit Amount}
Treasury Payments - {Major, Sub Major, Minor, Sub Minor, Detail, Object head , Debit Amount}
ULB Payments - {Fund, Functionary, Budget head, Scheme, Sub Scheme, Debit Amount}
This should be configurable at the tenant level to choose what type of accounting system is followed.
Debit details should ideally be captured at the time of project creation. This helps in budget checks being done.
Each Project will be associated with a set of account codes and percentage amounts of the entire project, from where debit will happen.
Similarly, respective amounts (lumpsum/percentage) should be chosen from these account codes for each bill that is created.
Service should not allow to debit more than the initial quoted amount under respective heads against the sum of all the bills created for the project.
Deductions
Amount that is deducted from gross value of the bill as these are already included in the work line items
Deductions are classified into many types
Internal transfer
Ex. SOR line items already include cess 1%. Hence it is deducted here and transferred to labour welfare account head
SOR line items also include royalty on material. That needs to be deducted from here and transferred to tahsildar
Advance recoveries
Amount paid earlier for mobilization advancement or material procurement etc are deducted while creating new bill
Retention Money
Money is withheld for payments and paid at later date after defect liability period.
Deductions are always done against a beneficiary.
If a bill contains multiple beneficiaries, it needs to be specified against which beneficiary the deductions are made.
Credit Details
A bill can have multiple beneficiaries. But the nature of payments or beneficiary types should be same for all beneficiaries in one bill.
Wage seekers bill should contain only beneficiaries for wages
Materials bill should contain only vendors and be verified against their invoices
Once the bill of any type is created, this will go for approval and have wfstatus.
Every bill will also have beneficiary payment status.
In the absence of intergrations with Banks/IFMS, this status can be updated manually to mark beneficiary payments.
In the presence of integration, systems should show the status of payment.
Once a bill is approved, a payment advice needs to be created and send to integrated system. This system will send back success/failure status along with reasons.
Incase of payment failure, Works should allow modifying the bill, marking the changes as mentioned in the error codes and resubmit.
This will create a new payment advice, linking reference to earlier bill.
Actions to resolve : Works Specifications
Budget Checks
Input to expenditure service is when a project is created and an estimate is to be approved.
Expenditure will query the program service to get the status on fund availability.
Budget Blocking
In case funds are available, expenditure service can also ask program service to block respective funds (from estimation) for this project.
Budget hence is blocked and won’t be available for next projects to consume.
Release Blocked Budget
Expenditure module should also have provision to release the pre-blocked budget. So this can be used for other projects. Or the existing project for which the budget has been blocked is deferred.
Expense Planning
Expenditure service will also have a planning module which will give timelines of expenses and respective amounts to funding agencies.
Blocking module also feeds into the planning module to block funds in a timely manner.
Billing management
Bills are created under contracts (projects)
A contract is issued by Payer to Payee.
Contract can be materials, labor, services, supervision etc
A payee inturn issues invoices against the contract on supply of material/services.
After successful verification of supplies and invoices, payer add bills into the finance system
A voucher is created in accounting system for auditing purpose
A payment advice is sent to bank for making financial transactions
Voucher and bill statues are updated once the payments are made.
Validations
A contract can have multiple invoices raised by the payee before the contract is deemed closed.
An invoice can be a material invoice, labor invoice (Muster roll), invoice for supervision charges.
PS: Not every time an invoice is required to generate a bill.
Ex. Salary Bill, Advance bill, contingency bill etc doesn't need any invoices.
An invoice can have multiple line items.
Incase of a restaurant bill - Restaurant captures additional GST amount on net amount. All line items are paid immediately by the service seeker.They pay the taxes collected from all invoices to respective government bodies at set intervals.
Incase of a salary bill - All line items are not immediately paid to the service provider (Employee). Instead the employer deducts TDS and only pays part amount to the employee. Employer remits this amount to government body. Even the employee remits his part if the tax at regular intervals.
An invoice can also have multiple beneficiaries and headwise breakfups for each beneficiary.
An invoice when entered into the system creates a Bill. A bill entity internally will have multiple line items each by payer, beneficiary, amount and head combination.
So a muster roll with 1 payer, 3 payees, each payee having 500 rs payable and 50 rs deduction on ESI can be on 1 bill with 6 line items.
This bill when processed will create voucher in accounting system
A payment voucher however can be a combination of multiple payers and payees by line items. From above example
There can be minimum of 2 payment advices one for all payables of 450 rs to each individual
Other for all ESI deductions directed to ESI department.
This will help payments go faster to respective departments.
Once the payments are made, respective bill line items will be updated with statuses. Once all bill line items are updated, overall bill will be updated with status.
A contract document is a legal & financial obligation between any two parties entering into the contract.
After the estimates are created and approved, they are grouped or individually tendered/direct assigned to vendors to execute the work.
A works package is typically not seen in all Works Management Products. it is used only where high-complexity projects are executed where packaging is needed to form smaller or larger chunks so as to increase operational efficiency.
The current contract service includes Line items of estimates, Works packaging, Negotiation, Contract Terms, and Milestones.
The Junior Engineer/Assistant Engineer creates the contracts and the Municipal Engineer/Executing Officer approves the contract depending on its value. (Workflow configurations based on amount subject to platform capability in v1).
Story Detail
Estimate Service allows users to create estimates and forward them for Workflow approval to higher authorities across departments for technical, financial, and admin sanctions. A prepared estimate can then be tendered out for contracting.
Project
MDMS
Workflow
Notification
Access Control
User
IDGen
Create/update/search for Work estimates for a project.
Allows upload of offline documents related to estimate creation as part of create.
Workflow and inbox integration
Base Path: /estimates/
Postman collection for this service is available here.
High level design document
The project service provides APIs to create, update and manage a generic project. A project can have one or more of the following constructs: staff, tasks, beneficiaries and facilities. Currently, this service is shared across the Health and Works platforms. All Works projects start with a project construct. The Works platform uses only 3 primary APIs: project create, update and search. For low-level design and other information on this service, click .
Creating, updating, and searching for a project
Adding staff, tasks, resources and facilities to a project
Base path: /project/
Documentation for this service is available here.
Click here to access the Postman collection used to test APIs. Import the link into Postman and follow the instructions to run the collection.
The following primary masters are defined by this module and used for validations. Other common masters such as department, tenant etc..are also used by this module.
Estimates are created for each project/sub-project entity.
Need and Background:
An estimate is prepared for each Works project so as to get technically sanctioned and proceed with tendering/contract.
Estimates are created for each project/sub-project entity.
There are multiple estimate types for each project prepared with different levels of abstraction.
Estimate Type | Definition |
---|---|
After creating the project (and getting approved if there is a workflow) JE will start estimating the project.
To create an estimate following details are required.
Line Items from SOR
Non-SOR line items
Overheads
There are 3 ways how estimates can be added.
Manually adding from SOR Master List
Using Estimate Template
Copying the format of existing similar projects and changing the values
To select line items for SOR, select the SOR category, search for the SOR line item by SOR code or SOR description and select the SOR.
To the SOR line item, add the quantity that is required for this project.
SOR standard amount multiplied by this quantity gives the line item-wise cost.
Measurements can be captured at the SOR line item level directly by the specified UOM or length, breadth, height, quantity can be captured and stored in an empty measurement book so as to utilise it later for m book recordings.
Multiplication of L,B,H,Q will give the required quantity of the line item for the estimate.
A non-SOR line item will not be defined in MDMS and hence will not be searchable using the SOR category or Code.
Rate, Quantity and Description have to be entered manually.
Just like SOR, instead of quantity directly, L,B,H,Q can also be captured.
All SOR and Non-SOR items in the way captured in the estimates will be created as empty records in the Measurement Book to capture readings later.
Overheads are predefined masters.
The cost of the project becomes the cost of SOR and Non-SOR items plus overheads.
Overheads are either added on top of SOR and Non-SoR separately or can be derived from SOR Sub Line items.
Overheads amount will not be going to the contractor but will be going to specific heads defined in the Master for respective overheads. (GST 12% to GST department, Cess 1% to labour dept etc). This means Contracts will selectively capture only a few overheads for contractors.
Each estimate will have a unique ID that is generated
ID: EST/<ULB/Department Code>/<Year>/<month>/<Date>/<running sequence number>
Status of an estimate
Created
In progress
Approved
Rejected
Cancelled
Schedule of Rates (SOR)
SOR is a line item that represents the rate for a single unit of work. SOR is defined by the Central PWD or state PWD and is revised based on the market needs from time to time. In general, there are about 3000+ SOR line items
Each executing authority ULB/Department may modify the rates of these SORs by applying lead charges.
Lead Masters will be varying for each project as the project site will be different for each.
For simplicity, SORs are usually kept constant under a ULB.
Each SOR Item may have multiple variants with slight changes in description and amounts.
Ex. Estimate of tiling for the ground floor and estimate of tiling for the first floor will change by 15 Rs to capture the carriage charges. These should be captured with .serial_number. (Parent.Child)
Analysis of Rates
Each line item of a SOR master/SOR variant will further be divided into Sub line items that come from a set of category Masters like Labour Master, Material Master, Royalty Master, Carriage Master etc.
A group of Sub line items together will form an estimate line item.
Each sub-line item will have Item detail 1, item detail 2, quantity, UOM, rate, estimated amount.
The sum of all sub-line items will become the total of the SOR line item
Item detail 1 will capture whether it is material/labour/carriage/overhead/royalty etc
Item detail 2 will capture the exact details of the item from the respective item master. rates need to be auto-populated.
With this when extracted, we should be able to produce labour analysis, material analysis and other standard reports, coming from the estimates.
Basic Rates of Materials Master
Note: There are roughly about 200 materials and some of whose rates change quarterly.
Labour Rate Master
There are about 80 types of labour.
Lead Master
Lead Master will have the carriage and royalty details of each item that goes into the individual SOR items.
When a lead master is set on a particular material in a particular ULB, all SOR line items that contain this item will take the amount from the lead master and not from the basic rate master
Non Schedule of Rates (SOR)
Non-SOR items are not defined by CPWD and based on project requirements will get added to the estimate.
They will have the same attributes as the SOR item, but will not have a defined SOR ID or SOR category.
Ex. Purchasing Fancy benches & themed dustbins at Park. The rate, in this case, is fixed by JE upon discussing with potential vendors.
Overheads
Overheads can be of two types.
In-Line Overheads - Defined within the SOR line items
Estimate Level Overheads -
These are defined on top of estimates. Each overhead will be defined within a time range with either percentage or lump sum value of the entire estimated cost
We should be able to abstract out similar overheads from multiple SOR line items and groups to form a single overall overhead for the estimate.
Revised Estimates
Estimate revision can happen before the final bill is submitted and the project is closed. For a revised estimate, the user can come onto the existing estimate and click actions → Revise estimate. This goes for a similar approval cycle as the main estimate.
For a revised estimate -
New line items can be added.
Existing line items can be removed
Quantities in existing estimates can be modified.
A contract that is created from this estimate also needs to be revised and sent to the contractor for approval.
Measurement books accordingly will get changed as per the new estimate.
If some part of the estimate is already measured and the bill has been created/approved, a revised estimate for that line item cannot go under that approved bill quantity for that line item.
Schedule Category
A schedule category is a grouping of SORs for easy identification and filtering. There are a total of about 3000 SOR items divided into 15-20 SOR groups
Examples - Earth Work, Masonry, Brick Work, Painting, etc
Estimate Template
Templates are created for specific types and sub-types of work so they can be reused for future use.
Templates are groupings of SOR items that combine to complete a similar kind of work.
On the UI, the Estimates inbox will have an Estimate Template section and users can see a list of templates and create a new template from there, and modify the existing template.
Ex. Template to build 100 mt of 20 ft road, Template to build 8*10 sq ft standard room.
A user should be able to
Create an estimate using templates
Add SOR items from SOR Master
Change values as required for current work
Add/auto-populate overheads
Able to generate Material Analysis and Labour Analysis
Download PDFs of Labour analysis, material analysis, and Overall Estimate
The attendance module allows creation of an attendance register, enrolment of staff and attendees and capture of attendance records with entry/exit times. To compute attendance based on the logs, a calculator service should be built with specific business logic.
DIGIT backbone services
IDGen
Persister
Allows creation/updation/search of an attendance register
Allows mapping of staff and attendees to a register and enforces permissions.
Logs entry and exit timestamps in epoch time for a referenced entity
/attendance/
Click on the page link below to learn about the platform installation.
Common steps to configure platform services
This page lists common configuration steps that need to be repeatedly performed for all services. Please follow these steps in the context of each service replacing only certain values as needed. The respective service will provide you with information on what needs to be replaced.
Deploying a service involves three parts:
Deploying a published docker image of the service in the DIGIT environment
Having the Helm charts are necessary for the service deployment. Helm charts configure the environment variables for the service specific to a Kube cluster. A service can be deployed using OR directly using Helm commands from a system. All helm charts for services are .
Configuring the service
Set up , , , other masters for the service to work properly on GitHub.
to find detailed information on MDMS configuration.
All modules expose certain actions (APIs), roles (actors) and role-action mappings (who can access which resource). Role-action mappings are used for access control.
Each service documentation has a role-action table that identifies the actors that can access the resource. Follow the outline below replacing specific actions/roles for each module.
Actions, roles and role-action mapping are defined within a master tenant in folders. The folders have the same name as the module name for easy identification.
Example:
In the above image, "pg" is the state level tenant. The three folders highlighted in orange contain the masters for actions, roleactions and roles respectively.
Folder structures are only for categorisation and easy navigation of master files. The MDMS service retrieves data only through module and master names. Make sure that these are correct.
Add all the APIs exposed by the service (refer to service for actual APIs) to the actions.json
file in MDMS.
Keep appending new entries to the bottom of the file.
Make sure the id
field is unique. Best practice is to increment the id by one when adding a new entry. This id field will be used in the role-action mapping.
Module name: ACCESSCONTROL-ACTIONS-TEST
Master name: actions-test
In case 403s are encountered despite configuration, double check the actions.json file to make sure the API in question has a unique ID. In case of duplicate IDs, a 403 will be thrown by Zuul.
A sample entry given below:
Configure roles based on the roles column (refer to service documentation) in the roles.json file. Make sure the role does not exist already. Append new roles to the bottom of the file.
Module name: ACCESSCONTROL-ROLES
Master name: roles
A sample entry is given below:
Role-action mapping should be configured as per the role-action table defined. Add new entries to the bottom of the roleactions.json file.
Identify the action id (from the actions.json file) and map roles to that id. If multiple roles are mapped to an API, then each of them becomes a unique entry in the roleactions.json file.
Module name: ACCESSCONTROL-ROLEACTIONS
Master name: roleactions.json
A sample set of role-action entries is shown below. Each of the actionid
fields needs to match a corresponding API from the actions.json file.
In the example below the ESTIMATE_CREATOR
is given access to API actionid 9. This maps to the estimate create API in our repository.
Note that the actionid
and tenantId
might differ from implementation to implementation.
Each service has a persister.yaml file which needs to be stored in the configs repository. The actual file will be mentioned in the service documentation.
Please add that yaml file under the configs repository if not present already.
Make sure to restart MDMS and the persister service after adding the file at the above location.
The muster roll service aggregates attendance logs from the attendance service based on some rules and presents an attendance aggregate for a time period (week or month) per individual. This can then be used to compute payments or other semantics.
DIGIT backbone services
Idgen
Persister
Indexer
Workflow
User
Attendance
Base path: /muster-roll
Steps to run the postman collection:
3. MusterRoll requires the below services from Attendance Service API to be run prior to creating muster. So run the below services before running the musterRoll postman collection.
4. Update the current value of the variable ‘registerId’ in the ‘Muster Environment’ with the id returned by the response of the create attendance register ( in step 3 a)
5. Run the ‘Muster Roll Service’ postman collection as ‘Run Collection’ . It will run the /_estimate, /_create, /_update and /_search APIs success and validation error scenarios.
6. Muster will be created for the attendees enrolled in the attendance register (in step 3 b) using the attendance logs created (in step 3 c).
The current value of environment variables ‘musterRollId’ and ‘musterRollNumber’ will be set from the response of the /_create muster roll which will be used by /_update and /_search APIs.
This is being designed as a cross-functional registry that will house vendors, suppliers, contractors, non-profits, SHGs etc.. Can be used across domains.
DIGIT backbone services
Persister
Indexer
IDGen
Individual
Provides create/update/search operations for organisation entities.
Captures organisation details, contact details and classifications.
Links organisations to functional areas they are operational in.
OrgType - Defines types of organisations
OrgFunctionCategory - The functional area where an organisation works
OrgFunctionClass - The class (rating) of an organisation in a specific functional area.
OrgTaxIdentifier - The list of tax identifiers that can be entered.
OrgTransferCode - The bank account transfer code (IFSC etc..). This is usually only one defined in the master data. Can be customised for other countries.
View Contract | |
---|---|
Master Name | Sample Data | Description |
---|---|---|
Module Name | Master Name | Sample Data |
---|---|---|
Field | Data Type | Required (Y/N) | Comments |
---|---|---|---|
Field | Data Type | Required (Y/N) | Comments |
---|---|---|---|
Field | Data Type | Required (Y/N) | Comments |
---|---|---|---|
Field | Data Type | Required (Y/N) | Comments |
---|---|---|---|
Field | Data Type | Required (Y/N) | Comments |
---|---|---|---|
Field | Data Type | Required (Y/N) | Comments |
---|---|---|---|
Field | Data Type | Required (Y/N) | Comments |
---|---|---|---|
1. Import the .
2. Import the required for running the postman collection which will create an environment ‘Muster Environment’.
a) create Attendance register -
b) Attendee enroll -
c) Attendance log create -
Inbox
Contract Selection and Bill type Selection
Contractor Bill Creation
Wage Bill Creation
Vendor Bill Creation
Supervision bill creation
Field
Data Type
Required (Y/N)
Comments
Bill Details
1
Bill Date
Date
Y
Todays Date
2
Party Bill Date
Date
N
Date on which Invoice is given by third party
3
Party Bill Number
Alphanumeric
N
Reference number on Invoice given by third party
4
Bill Type
Dropdown
Y
Salary, Pension, Works, Advance, Others etc
Financial Details (For ULB Payments)
5
Fund
Dropdown
Y
Capital Fund, Municipal Fund, Grant Fund
6
Function
Dropdown
Y
202107 - Roads and Building Maintenance
202406 - Street Lighting Maintenance
202500 - Storm Water Drains
7
Department
Dropdown
Y
Road and highways
Streetlights
Storm water drains
8
Scheme
Dropdown
N
Scheme is tied to a fund
Muncipal Fund, funds schemes such as Housing, employment, Capital fund, funds scheme like buildings & highways
9
Sub Scheme
Dropdown
N
Sub Scheme is tied to scheme.
10
Fund Source
Dropdown
N
Loans, Own sources, Grants, etc
Financial Details (For State Department Payments)
11
Chart of Accounts
Dropdown
Y
Length varies from state to state. Punjab has 16 digits. Odisha has 27 Digit Codes.
Odisha has following format
Demand Number(2)-Major(4) –
SubMajor(2) – MinorHead(3)-
Sub(4)-Detail(5)-Object(3) –
PlanStatus(2) – ChargedVoted(1) – SectorCode(1)
Example - 11(Demand Number) –
2225 (Major Head) – 02 (Sub
Major Head) - 277 (Minor Head) –
2367 (Sub Head) – 40004 (Detail
Head) – 544 (Object Head) – 21
(Plan Status) – 1 (Charged Voted) – 1 (Sector Code)
Will be represented as
112225022772367400045442111.
Beneficiary Details (Array)
12
Beneficiary ID
Searchable dropdown
Y
Registration ID of the beneficiary in the system
13
Beneficiary Name
Y
Name of the beneficiary
14
Beneficiary Type
Contractor, Employee, Tahsildar, Wage seeker, Asha Worker, Student etc
15
Phone Number
Phone Number
16
Aadhar Number
Aadhar Number
17
Account Number
Y
Account Number
Bank Account Name
Y
Name on bank account
18
Account Type
Savings, Current, Loan etcRequired in IFMS while processing payments
19
IFSC
Y
IFSC
20
Amount
Numeric
Y
Debit Details
21
Account Code
Y
2723000 ,2101001
22
Account Head
Roads and Bridges-Roads & Bridges
Salaries, Wages and Bonus-Basic Pay
23
Debit Amount
Y
Deduction Details
24
Account Code
N
3502017,
25
Account Head
Recoveries payable-LCCS, Creditors-Contractors
26
Deduction Amount
N
Net Payables
27
Account Code
Y
3501002
28
Payable Amount
Y
Debit Amount should be equal to sum of deduction detail plus credit amount.
DDO Details
29
DDO Code
N
30
DDO Login ID
N
DDO Login id is mandatory if multiple DDO exists for the same DDO code.
Summary Details
Y
31
Gross Amount
Y
32
Net Amount
33
Number of beneficiaries
Y
34
PreviousBillReferenceNumber
N
Needed if re-submitting previously objected to the bill.
35
Payment Date
Y
36
Payment Mode
Y
#
Error Code
Description
Action
Comments
1
EX0005
Could not find the XML in the Zip File
Technical
2
EX0006
Digital Signature File Missing in the Zip File
Technical
3
EX0007
Digital Certificate found to be Revoked
Technical
4
EX0008
Digital Certificate found to be Expired
Technical
5
EX0009
Certificate Serial Mismatch
Technical
6
EX0010
Signature Verification Failed
Technical
7
EX0030
Invalid Zip File
Technical
8
EX0033
Invalid File Naming Convention
Technical
9
EX0034
Public key not available for Signature verification
Technical
10
EX0903
XSD Validation Failure
Technical
11
FV0004
Duplicate File / Message
Technical
12
FV0005
Number of Transaction mentioned in the Header mismatch with the actual transaction
Technical
13
FV0006
Amount mentioned in the net amount mismatch with the actual transaction amount
How is this possible?
14
FV0007
ePayments Subscription not done for the Initiating Party
What is ePayments Subscription?
15
FV0008
Mismatch in Department Code or Service Code
Technical / Mapping
16
FV0058
Invalid File Name
Technical
17
FV0059
File Creation Date is greater than CBD
Technical
18
PV0007
Debtor Account Closed
Modify and Resubmit the Bill
19
PV0008
Debtor Account Freezed
Modify and Resubmit the Bill
20
PV0009
Debtor Account In-Operative
Modify and Resubmit the Bill
21
PV0010
Debtor Account Dormant
Modify and Resubmit the Bill
22
PV0014
Invalid Debtor IFSC
Modify and Resubmit the Bill
23
PV0070
Debtor IFSC and Creditor IFSC should not be same
Modify and Resubmit the Bill
24
PV0072
Invalid Payment Information ID Format
25
PV0073
Duplicate Payment Information Id
26
TV0002
Invalid Currency
27
TV0003
Invalid Creditor IFSC
Modify and Resubmit the Bill
28
TV0004
Duplicate End to End ID
29
TV0121
Creditor Account Closed
Modify and Resubmit the Bill
30
TV0122
Creditor Account Freezed
Modify and Resubmit the Bill
31
TV0123
Creditor Account In-operative
Modify and Resubmit the Bill
32
TV0124
Creditor Account Dormant
Modify and Resubmit the Bill
33
TV0130
Creditor Account Invalid
Modify and Resubmit the Bill
34
TV0133
Creditor Account Type Invalid
Modify and Resubmit the Bill
35
TV0161
Invalid IIN
What is IIN?
36
TV0162
Invalid Aadhaar format
Not required
37
TV0163
Invalid User Number
Not required
38
TR0001
Previous financial year bill not allowed
Modify and Resubmit the Bill
39
TR0002
Wrong bill head of account
Modify and Resubmit the Bill
40
TR0003
Duplicate bill number
Bill Number is generated Automatically by the system. It should ensure that this doesnt happen. if so, create another bill with new bill number
41
TR0004
Wrong object breakup head of account
Modify and Resubmit the Bill
42
TR0005
Wrong by transfer head of account
Modify and Resubmit the Bill
43
TR0006
Bill objected
Why?
44
TR0007
Payment failed
Why?
45
TR9999
Internal system error
Technical
46
0
Processed successfully
works
ProjectType
Proposal
A single line item has the overall project cost against the project title. This requires in-principal Admin sanction. Once approved detailed estimate for the same is created.
Detailed
A detailed estimate contains engineering drawings done on AutoCAD & other drawing tools. Modern tools also abstract out many measurements and materials from drawings created by these tools.
Abstract
An abstract estimate is prepared using standard SOR & Non-SOR Items defined by PWD (mostly ULBs customise SOR and have their own copies). SOR items are created internally using item rates.
Revised
When a project's finances are increasing then to what is initially estimated, revision estimates are created and approved. revision estimates may or may not have the same SORs as initial estimates. Revised estimate line items added to initial line items will give overall project cost
Deviation
A deviation statement is a type of estimation when the scope of the project changes but the project cost is meant to remain the same. The deviation statement and revised estimate are the same as far as the estimation process is concerned. The approving authority changes only.
Spill Over
For a multi-year project, an estimate is financially broken down into pieces and budget allocation is done for each year instead of allocating the entire budget in the first year.
SOR Category ID
Drop down
Y
Options will be the list of Category Code from the SOR category type master
The combination of category Code and Item code is unique
Item ID
Alphanumeric
Y
System generated
Item Description
Y
Item description of the selected Item
Unit of Measurement
Y
Options will be the list from Unit of measurement master
[Array] for specific date ranges
Item Rate
Numeric
Y
Multiple entries can be specified for each Item, but there cannot be an overlap in the rates for a range of dates
Item rate Applicable From
Date
Y
To be entered in the format dd/mm/yyyy
Item rate Applicable To
Date
N
To be entered in the format dd/mm/yyyy
ID
NA
Na
System generated ID
Department
Dropdown
Y
Labour rates may vary by each department
Material Category
Dropdown
Y
brick and tile, stone and road, metal and iron etc
Description of Material
Alphanumeric
Y
Second Class Table Moulded Chamber Burnt Bricks 9" x 41 /2" x 3"
Quantity
Numeric
Y
Quantity for which base rate is defined. Default to 1
Unit
Dropdown
Y
Nos, Ton, etc
[Array] for specific date ranges
Item Rate
Numeric
Y
Multiple entries can be specified for each Item, but there cannot be an overlap in the rates for a range of dates
Item rate Applicable From
Date
Y
To be entered in the format dd/mm/yyyy
Item rate Applicable To
Date
N
To be entered in the format dd/mm/yyyy
ID
NA
Na
System generated ID
Department
Dropdown
Y
Labour rates may vary by each department
Skill Category
Dropdown
Y
Highly Skilled, Semi Skilled Unskilled etc
Description of Labour
Alphanumeric
Y
Technical Assistant, Stone Polisher, Smith etc
Quantity
Numeric
Y
Quantity for which base rate is defined. Default to 1
Unit
Dropdown
Y
Day/Week/Month
[Array] for specific date ranges
Rate
Numeric
Y
Rate of Labour for specified (Quantity' units)
From Date
Date
Y
Date from which these rates are applicable
To Date
Date
Y
Date to which these rates are applicable
ID
NA
NA
System Generated
Item ID
Dropdown
Item for which Lead SOR is present
Item Name
Autofill/Dropdown
Y
Item for which Lead SOR is present
Name of Quarry
Dropdown
N
For Materials. Doesnt appy for labour
Unit
Dropdown
Y
Unit of Measurement
Lead (Km.)
Numeric
N
Distance from quarry
Basic Cost
Autofill
Y
Basic cost pulled from material rate master or labour rate master
Conveyance Cost
Numeric
N
Royalty
Numeric
N
Royalty on applicable material, abstracted, will go into specific head defined during estimation
Total
Calculation
Y
Total new cost of line item
ID
NA
NA
ID generated for each overhead type
Name
Alphanumeric
Y
Name of the overhead
Ex. Labour Cess, GST, Royalty etc
Description
Alphanumeric
N
Description
Account head
Dropdown
Y
Account head to which overheads should be credited
[Array] for specific date ranges
From Date
Date
Y
Date from which these rates are applicable
To Date
Date
Y
Percentage/ Lumpsum
Numeric
Y
Percentage or Lumpsum amount of estimate including value
Category Code
Alphanumeric
Y
Unique Code Assigned to the Schedule Category
Category Name
Alphanumeric
Y
Name Assigned to the Schedule Category
Template Code
Alphanumeric
Y
Define the template code
Name
Alphanumeric
Y
Name for template
Description
Alphanumeric
Y
Description of the template
Status
Dropdown
Y
Status of the template
Active
Inactive
Work Type
Dropdown
Y
Select the Type of work. All the work types defined in the system should be shown
Work Sub Type
Dropdown
Y
Select the Sub type of work. All the work sub types defined in the system should be shown here
[Array] for each line item
Schedule Category
Dropdown
Y
Options are the list of SOR categories from the SOR category master.
SOR
Alphanumeric
Y
Enter the template code and search for it
Non_SOR Code
Alphanumeric
N
Non_SOR Description
Alphanumeric
N
Non_SOR UOM
Dropdown
N
lenght--KM; Area--SQM
Non_SOR Unit Rate
Numeric
N
Overheads
Sample
Contains the overhead charges applicable on an estimate.
SOR (TBD)
TBD
Contains a comprehensive list of items and rates defined by the department. To be used in preparation of an estimate.
Requirement Specification
Mockup
Works Home Screen
Users having access to billing management can come to the billing inbox by clicking on billing management on the home screen.
Billing Management Inbox
Billing management inbox will have links to create new bill, search for existing bill and filter bills using
Bill ID
Contract ID
Bill Status
Bill created from date
Bill created to date
Initially inbox will be empty as no bills are created.
When bills are created and assigned to other users for approval, inbox table is filled as shown.
Table columns are
Bill ID
Bill date
Bill Type
Contract ID
Contractor Name
Status
Total Amount
SLA
Search Contracts to Create Bills
Users click on create Bill in the billing management inbox and search for existing contracts to create Bills
Search parameters to create Bills
Contract Name
Contract ID
Organization
Contract Type
Contract Created from Date
Contract Created to Date
Search results in the table to show
Contract ID
Estimate ID(s)
Contractor
Contract Type
Status
Contract Amount
Billed Amount
Actions
Validations
Show only contracts whose project closure is not done
Show contracts for which billed amount is equal to contract amount. But do not give option to create a new bill in Actions
Create a New Bill in actions will only be present for contracts whose bill amount is less than contract amount.
Clicking on Contract ID in first tab should show contact view screen exactly as it would open from contracts flow on home screen.
Primary CTA here will be same as what Actions menu shows on the previous screen.
Create Bill (If Billed Amount < Contract Amount)
None (Billed Amount = Contract Amount but project not closed)
Choosing Bill Type
Clicking on create bill should ask the user to select a particular bill type, next screen will be displayed accordingly.
Expenditure service may have many bill types like Salary/Pension Bill, Contractor Bill, Wage Bill, Vendor Bill, Supervision Bill, Advance Bill etc
Works Product will only show
Advance Bill
Contractor Bill
Vendor Bill
In specific implementations such as Mukta, this can extend to
Contractor Bill
Vendor Bill
Wage Bill
Supervision Bill
Validations
Mapping of Contract Type to Bill Type
WO.Work_Items
Contractor Bill
WO.Labour_and_Material
Vendor Bill
Wage Bill
Supervision Bill
PO
Vendor Bill
Mixed (ex. Mukta// Custom implementation)
Wage Bill (But has validations of contractor Bill)
Vendor Bill (But choose to pay to contractor or vendor depending on internal validations)
Supervision Bill
To create any type of bill under a contract, current billed amount shouldn’t have crossed the contract amount.
Contractor Bill
Header details will capture
Bill Date - Default to todays, but allow to change to previous date
Agency/ Firm Bill Number
Agency/Firm Bill Date - Date on which the agency has generated bill in their system. This should be before Bill Date
Contractor Bill is completely based on measurement book
If a contract is formed by combining multiple estimates it will have 1 Mbook for each estimate.
All the readings from multiple Mbooks under this contract, that are recorded and approved, but not yet paid will show in measurement details
User can select upto what date of the mbook reading payments can be made.
It is not mandatory to pay for entire approved readings.
Upon selection of days of readings, final calculation of gross amount payables is calculated and displayed.
In the second Tab, account details to be selected
Deductions
Deductions will be predefined master
Selecting Deduction Name in searchable dropdown will autopopulate Account head description and Amount
Amount is either percentage of Bill or Lumpsum
User can add comments
Deductions cannot be more than gross bill amount.
Deduction Name
Account Code and head
350200207
350200207 - CGST - Revenue
350200102
350200102 -Incometax receoveries - Revenue
Retention Money
Retention money is the amount retained within the source as part of every bill.
Retention money account heads will be defined in master.
Amount should be entered from UI
Retention money cannot be more than current bill amount - deductions
Advance Adjustment
Total Advance Paid - Sum of all the advances paid to this contractor under this contract.
Total Advance pending - Advance given - Advance Paid
Current Bill Deductions - Deductions that will be written off against balance amount.
Current Bill deductions cannot be more than gross Bill Amount - Deductions - Retention money
Net Payables
Net payables is the account code from which payment has to be made.
If we are capturing this at time of project creation, make this a default view only screen.
Otherwise, if user is entering it first time while bill creation, make this an inputtable field from UI with selectable dropdowns.
Bill will have the following statuses
Created
Checked
Approved
Rejected
Re-submitted
Cancelled
Completion Checklist
Only for final bills
Along with bill certain checklist and attachments need to be added to it can trigger project closure.
Wage Bill
Header information is same for all types of Bills
Unlike a contractor Bill, Wage bill is verified against Muster rolls.
All Muster rolls that are created and approved under that contract are shown here for user to select which muster rolls can become part of this bill.
User can do multi select and final amount is shown as gross amount of the bill
Deductions on each beneficiary
Similar to Contractor Deductions, each individual also can attract deductions.
User can choose to add deductions by each individual by clicking on edit icon.
A popup shows asking for deduction details.
User can also select to apply same deduction calculationf for all wage seekers from all musters that are selected.
Gross amount is calculated accordingly
Hence deductions in Account details(next tab) is view only field, a sum of all deductions by each deduction head.
Similar columns should be present for Retention money and Advance Adjustment where details against each individual will be captured in a popup and choosent to be applied to all individuals if needed.
Hence, Retention money and advance adjustment are also view only fields in next screen.
Functionality of net payables is same as contractor bill.
Vendor Bill
A vendor bill should be verified against Purchase order that is given to the supplier.
A purchase order can contain n*m (line items *quantity) and each invoice can be a subset of these items only.
Since in V1, we do not have complete Purchase Order detailed out.
A vendor bill is simply an invoice submitted from the vendor for payments.
It will have
Vendor ID (Ideally comes from contract details if it is PO. Incase of Mixed, or Material and Labour contract this should be captured from UI at the time of Bill creation)
Bill Amount
File Attachment
Deductions, Retention Money, Advance Adjustment and net payables are same as contractor Bill
Advance Bill
Advance Bill is just an amount that is given to the vendor/contractor/individual to commence the work.
Advance bill can be given at any time of the contract.
Advance bill will not have to be verified against any other document
Advance amount should be
< contract value - Billed Amount - Advance Adjustment
There should be provision to adjust Advance Amount in each bill
Supervision Bill
A supervision bill is a special type of bill that will be processed as percentage on top of existing bills.
User can select bills under that contract and select percentage to be given as commission. This will be created as new bill in the system
Deductions, Retention money, Advance adjustment and net payables act same as contractor bill.
Create Estimate
Estimate Successfully Created
Estimates Inbox
Inbox Table
SOR Data entry screen
Contract Inbox
Clicking on the Contracts link on the home screen navigates users to a default contract inbox screen.
Default inbox items will be empty for a contract creator.
Users can filter and search using the following options
Contract ID
Estimate ID - Show a list of all contracts by each row when a particular estimate falls in all those contracts.
Contractor ID
Contract Type
Contract Created from date
Contract Created To date
Status
Columns in the Table
Contract ID
Estimate ID(s) - If a contract is formed with multiple estimates show an array of estimates.
Contractor
Contract Type
Status
Contract Amount
SLA
Search Estimates to Create Contract
Click on Create Contract in the contract inbox to search for approved Estimates.
Users can multi-select approved estimates to create contracts.
Search parameters
Estimate ID
Project ID
Department
Status
Estimate created from date
Estimate Created to Date
Table Columns
Estimate ID
Project ID
Department
Status (of the estimate)
Estimated Amount
Select the estimates using checkboxes - a counter shows at bottom of the page.
it should be allowed to search/re-search using the filters while the selection is frozen.
Refreshing the page might lose the selections from UI.
Clicking on create contract will add selected estimates to the respective contract UI to be further actionable(on the next page)
Create Contract - Header & Contractor Details
Contract creation UI displays the headers and multiple tabs.
Attribute details are added separately in the story
Contract Amount is a display-only field.
Value dynamically changes based on selections in the work details and the negotiation tab
Initially, the contract amount is the sum of selected estimates
But, if in the work details, certain line items are removed from the estimates, then only the remaining amount needs to be displayed in the Contract Amount
In the negotiation tab, only line items that are fixed from the work details tab are shown. These will have negotiated percentage/amount values for each line item.
Only the finalised sum of negotiated values is to be shown as the Contract Amount
Contractor ID is a display-only field. It is shown on searching and selecting a contractor from the contractor select drop-down.
Work Details
The Work Details section shows the list of estimates and estimates for the line items from the selection made before coming to the contract screen.
Estimate line items that are already selected and part of other created contracts should show up as non-selectable line items in this table UI.
Users can select line items from different estimates and the final amount of selected line items will show up in the Contract Amount under header details
Clicking on next will take the user to the Negotiation tab.
Negotiation Details
Negotiation is of two types
Percentage-tender (Lumpsum)
Item rate negotiation
In Lumpsum, the entire contract is negotiated by a certain amount/percentage.
On the UI, we will capture by percentage and calculate the final amount of the contract.
The same will be displayed on Contract Amount in the Header details
For the Item rate negotiation type, line items selected in the Work Details tab only will be shown in a table.
This table will have a column for the users to input either amount or percentage of the line item that is negotiated.
Finalised amount, the sum of all negotiated values is the contract amount.
Milestones Creation
Milestones are tagged to a certain percentage of completion of the project.
There will be milestone templates(v2) based on project type and subtype. Users will only have to fill in start and end dates then.
A contract can have any number of milestones.
The sum of % completion of all these milestones however should add up to 100%
Terms and Conditions
Terms and conditions are an array of upto 100 strings in V1.
Users can click on Contract ID in their inboxes to come to view the contract screen.
The View Contract attributes is the same as Create Contract attributes from a UI perspective. All the fields are standard view-only components.
The View Contract screen will additionally have the Contract ID displayed in the header details
Depending on the user and path selected View Contract will have the call to action options.
For users in the workflow
Approve
Reject
For final users
Approve
Reject
Search Contract
Modify Contract
Before the contract is finally approved, all fields should be editable. System-generated Contract ID is non-editable.
By the time contract becomes editable, some of the estimates/estimate line items could possibly be added to other contracts.
The system should ensure the same line items are not part of 2 different created contracts
Base Contracts once issued and accepted cannot be modified
Revised Contracts (v2)
Estimates go through revision and also need a revised contract to be issued
A revised contract can be a change in line items (scope) or a change in the amount
Provides an overview of the configuration of the estimate service
The estimate service provides the functionality to create, update and search for estimates related to a Works project. An estimate is always linked to a project. For low-level technical design, please refer to this section.
The following services need to be running for the estimate service to function:
DIGIT backbone services (PostgreSQL, Elastic Search, Zuul)
Project
MDMS
Persister
Indexer
Workflow
User
Please refer to the functional specifications for an overview of functionality provided by this service.
Configure roles, actions and role-action mappings as per the table below by referring to this doc here:
Sample is here.
The persister file for the service is called estimate-service.yml
.
https://github.com/egovernments/works-configs/blob/DEV/egov-persister/estimate-service.yml
Follow steps here for configuring this.
Please ensure the below files are present in https://github.com/egovernments/works-configs/blob/DEV/egov-indexer/estimateservices-indexer.yml
If the above files are not present, add them in the given location and restart the ‘egov-indexer’ service in the respective environment. Before restarting the service please ensure, you have done the below configs
Note: Add this config in the respective environment YAML file in the DevOps repository and then deploy the service.
In the common-masters folder of MDMS, locate the IDFormat.json file. ID formats should be configured for the Estimate number as well as Estimate Detail objects. Make sure the following lines are added and the format modified per implementation:
The following masters need to be configured for the Estimate service. Please make sure to use the same master name and module names:
The workflow configuration for Estimate is as follows. This payload needs to be called against businessService _create API for workflow configuration:
Inbox should be configured if Workflow is configured for the estimate service. If there is no workflow involved, this can be skipped.
Please add inbox-v2 configuration in a respective environment in MDMS as it has done in here. Below are the inbox configuration for the Estimate service:
to
Below are the variables that should be configured well before deployment of the estimate service build image. These are configured in the DevOps repository:
Add these ‘db-host’,’db-name’,’db-url’,’domain’ and all the digit core platform services configurations (Idgen, workflow,user etc.) in respective environments yaml file.
Add estimate-service related environment variables’ value like the way it's done in ‘dev’ environment yaml file
Add the ‘egov-mdms-service’ related configuration to the respective environment yaml file. Make sure you change the gitsync.branch name.
Check the estimate-service persister file is added in the egov-persister.perister-yml-path variable. If not, please add the way it's done here.
Make sure to add the DB(Postgres and flyway) username & password in respective environment secret yaml file the way it's done here.
Make sure to add the digit core services related secrets are configured in the respective environment secret file the way it's done here.
Postman scripts for Estimate are here:
Steps to configure the project service
The project service provides APIs to create, update and manage a generic project. A project can have one or more of the following constructs: staff, tasks, beneficiaries and facilities. This service is shared across multiple eGov missions. The source code for this service resides here. For a deeper understanding, please refer to the following:
Define (if not present already) and assign the EMPLOYEE_COMMON role to all project actors.
Below are the actions or APIs exposed by the Project service used by the Works platform. Note that the "id" in the attributes needs to be unique and may be different in the implementation environment. It need not be exactly the same as what is shown below.
The following table shows the mapping between the APIs and the roles:
The following role-action mappings derived from the above table are configured for the Project service in the roleactions.json in MDMS. A sample is provided below. Make sure the action ID is correct and corresponds to actions.json.
Add Id Format as configured in the ‘IdFormat.json’ file of the ‘common-masters’ module here. This format is used to generate the unique ID of the project.
Add persister file project-management-system-persister.yml
as defined here.
Add indexer file projectmanagementsystem-indexer.yml as defined here.
1. ProjectType
2. Department
The image name of the service is available in the release charts in the DevOps repository. The service can be deployed using Helm commands.
Environment variables to be configured in the Helm chart for the service are:
Add the ‘db-host’,’db-name’,’db-url’,’domain’ and all the digit core platform services configurations (Idgen, workflow, user etc.) in respective environments yaml file.
Add project-management-system related environment variables values. A sample from a ‘dev’ environment yaml file is provided below:
Add the ‘egov-mdms-service’ related configuration to the respective environment yaml file. Make sure you change the git-sync branch name to one that is appropriate for the environment.
Check the project management system persister file is added in the egov-persister.persister-yml-path variable. If not, please add the way it's done here.
Check the project management system indexer file is added in the egov-indexer.egov-indexer-yaml-repo-path variable. If not, please add the way it's done here.
Check the project management system persister file is added in the audit-service.persist-yml-path variable. If not, please add the way it's done here.
Make sure to add the DB(Postgres and flyway) username & password in the respective environment secrets yaml file the way it's done here.
Make sure to add the DIGIT core service-related secrets that are configured in the respective environment secret file the way it's done here.
NOTE: Restart egov-mdms-service, egov-accesscontrol, egov-persister, audit-service, egov-indexer and zuul after the above changes are performed.
Refer to the API spec for a description of the APIs. The associated Postman scripts are provided here for reference. Use these to understand the request payloads.
The attendance service provides generic attendance logging functionality based on "in" and "out" timestamps. IN and OUT timestamps are recorded per individual. Aggregating and calculating attendance based on these timestamps is the function of the muster roll service.
A running DIGIT platform is needed to deploy the attendance service. Specifically, the following dependencies are needed:
Individual
MDMS
Idgen
Persister
Indexer
Provides APIs to:
Create an attendance register
Map staff to the register
Map attendees to the register
Log attendance
Edit attendance registers, staff, attendees and attendance.
/attendance/v1/
Below are the variables that should be configured for the contract service in the Helm environment file prior to deployment. The Helm environment file will be located under:
https://github.com/
{{ORG}}
/DIGIT-DevOps/deploy-as-code/helm/environments/
{{EnvironmentFile}}
.yaml
Please refer to a sample here.
Add these ‘db-host’,’db-name’,’db-url’,’domain’ and all the digit core platform services configurations (Idgen, workflow,user etc.) in respective environments yaml file.
Add attendance-service related environment variables’ value like the way it's done in the ‘dev’ environment yaml file.
Add the ‘egov-mdms-service’ related configuration to the respective environment yaml file. Make sure you change the gitsync.branch name.
Check the attendance-service persister file is added in the egov-persister.perister-yml-path variable. If not, please add the way it's done here.
Make sure to add the DB(Postgres and flyway) username & password in the respective environment secret yaml file the way it's done here.
Make sure to add the digit core services related secrets are configured in the respective environment secret file the way it's done here.
Restart egov-mdms-service, egov-persister, egov-indexer, inbox, egov-workflow-v2, egov-accesscontrol and zuul services after the above changes are performed.
Add all the APIs exposed by the attendance service (refer to table below for actual APIs) to the actions.json file in MDMS
Module name: ACCESSCONTROL-ACTIONS-TEST
Master name: actions-test
Configure roles based on the roles column below in roles.json file.
Module name: ACCESSCONTROL-ROLES
Master name: roles
Role-action mapping is configured in MDMS per the table below .
Module name: ACCESSCONTROL-ROLEACTIONS
Master name: roleactions.json
Make sure the id format is configured in the IdFormat.json file of the common-masters
module in MDMS.
Please make sure that the file attendance-service-persister.yml is present in the MDMS repository of the organisation:
https://github.com/{{ORG}}/works-configs/tree/<BRANCH>/egov-persister
Sample postman collections are here to demonstrate integration with the attendance service.
Muster roll is a record of attendance and quantity of work done by wage seekers.
A muster roll is a record of attendance, wages due and the quantity of work done by labour for a specific period of time.
The attendance service provides raw attendance logs. The muster roll service aggregates attendance logs and computes attendance based on business logic. For eg., whether attendance is to be measured in hours or days, what is considered a half day or a full day of attendance etc.. is business logic that will vary between implementations. These are configurable in this service and calculations on attendance will be performed based on these configurations.
Attendance
Individual
Persister
MDMS
Workflow
Idgen
Notification
Provides APIs to:
Estimate wages of a wage seeker based on his/her attendance logs
Create a muster roll with a list of wage seekers
Update a muster roll with modified aggregate attendance
Search for a muster roll based on some defined parameters. For more info, please see Swagger contract.
Below are the variables that should be configured for the muster roll service in the Helm environment file prior to deployment. The Helm environment file will be located under:
https://github.com/
{{ORG}}
/DIGIT-DevOps/deploy-as-code/helm/environments/
{{EnvironmentFile}}
.yaml
Please refer to a sample here.
Add these ‘db-host’,’db-name’,’db-url’,’domain’ and all the digit core platform services configurations (Idgen, workflow,user etc.) in respective environments yaml file.
Add muster-roll-service related environment variables’ value like the way it's done in the ‘dev’ environment yaml file.
Add the egov-mdms-service related configuration to the respective environment yaml file. Make sure you change the gitsync.branch
name.
Check the muster-roll-service persister file is added in the egov-persister.perister-yml-path
variable. If not, please add the way it's done here.
Make sure to add the DB(Postgres and flyway) username & password in the respective environment secret yaml file the way it's done here.
Make sure to add the digit core services related secrets are configured in the respective environment secret file the way it's done here.
Add all the APIs exposed (refer to table below for actual APIs) to the actions.json file in MDMS
Module name: ACCESSCONTROL-ACTIONS-TEST
Master name: actions-test
Configure roles based on the roles column below in roles.json file.
Module name: ACCESSCONTROL-ROLES
Master name: roles
Role-action mapping is configured in MDMS per the table below .
Module name: ACCESSCONTROL-ROLEACTIONS
Master name: roleactions.json
Other muster roll masters are configured in the common-masters
folder:
1. Import the postman collection for muster roll service into the Postman application.
2. Import the environment variables required for running the postman collection. This will create an environment ‘Muster Environment’.
3. MusterRoll requires the below services from Attendance Service API to be run. So run the below services before running the muster roll postman collection.
a) Create Attendance register - https://{hostname}/attendance/v1/_create
b) Enroll attendees to the register - https://{{hostname}}/attendance/attendee/v1/_create
c) Attendance log create - https://{{hostname}}/attendance/log/v1/_create
4. Update the current value of the variable ‘registerId’ in ‘Muster Environment’ with the id returned by the response in the create attendance register ( in step 3 a)
5. Run ‘Muster Roll Service’ postman collection as ‘Run Collection’ . It will run the /_estimate, /_create, /_update and /_search api’s success and validation error scenarios.
6. Muster will be created for the attendees enrolled in the attendance register (in step 3 b) using the attendance logs created (in step 3 c).
The current value of environment variables ‘musterRollId’ and ‘musterRollNumber’ will be set from the response of the /_create muster roll which will be used by /_update and /_search apis.
Organisation registry to store vendors, contractors, CBOs and other org types.
The organisation service is a generic registry to store all types of organisations. This includes vendors, contractors, community based organisations in the Works domain. This registry stores information about an organisation including their contact details, tax identifiers, areas of work and other relevant information.
Below services need to be running in the environment for the organisation registry to function as expected:
Persister
Indexer
User
Individual
MDMS
Access Control
Notification
IDGen
Filestore
Provides APIs to create, update and search an organisation's details. As part of organisation creation, it also creates a system user who can log into the DIGIT system and perform actions on behalf of the organisation. The contact person details are used to create the user with a CITIZEN role and an OTP based login.
The Helm chart for this service is configured here.
Configure roles, actions and role-actions per the table below by following steps here.
Make sure organisation-persister.yml is present in the configs repo under the egov-persister directory.
Please make sure that the file organisationservices-indexer.yml is present in the configs repo under the egov-indexer directory.
The following ID formats are configured for the Organisation service under the common-masters directory, IDFormat.json file. Make sure these are present in the file.
SMS templates have to be configured with the service provider to send notifications to users. Current SMS template configurations are as follows:
Download the Postman collection for this service and test the APIs against a DIGIT server.
Detailed description of configuring the contract service
The contract service provides the functionality of a works contract.
A running DIGIT platform is needed to deploy the contract service. Specifically, the following dependencies are needed:
Estimate
Organisation
User
Workflow
IDGen
Notification
Persister
Indexer
This service provides APIs to create, update and search for contracts. Please refer to the functional specifications for detailed scope and functionality. Low-level technical design is available here.
Below are the variables that should be configured for the contract service in the Helm environment file prior to deployment. The Helm environment file will be located under:
https://github.com/
{{ORG}}
/DIGIT-DevOps/deploy-as-code/helm/environments/
{{EnvironmentFile}}
.yaml
Please refer to a sample here.
Add db-host,db-name,db-url,domain and all the digit core platform services configurations (Idgen, workflow,user etc.) in the YAML file.
Add contract-service related environment variables’ value like the way it's done in ‘dev’ environment yaml file. Search for "contract-service" in the file.
Add the ‘egov-mdms-service’ related configuration to the respective environment yaml file. Make sure you change the gitsync.branch name.
Check the contract-service persister file is added in the egov-persister.perister-yml-path
variable. If not, please add the way it's done here.
Make sure to add the DB(Postgres and flyway) username & password in the respective environment secret yaml file the way it's done here.
Make sure to add the digit core services related secrets are configured in the respective environment secret file the way it's done here.
Restart egov-mdms-service, egov-persister, egov-indexer, inbox, egov-workflow-v2, egov-accesscontrol and zuul after the above changes are performed.
Configure actions, roles and role-action mappings from the table below. Follow the steps here.
These have to be translated into JSON in the role-action mapping module in MDMS.
Example is here.
The following masters are to be added as per the table below:
Make sure the id format is configured in the ‘IdFormat.json’ file of the ‘common-masters’ module. Sample is here.
The following Workflow JSON needs to be put in the request body of the /egov-workflow-v2/egov-wf/businessservice/_create
API.
For more information on configuring workflow, please refer to the Workflow Service documentation here.
Sample CURL is also included below.
Note that authToken and other requestInfo parameters should be updated as per your environment.
Please make sure that the file contract-service-persister.yml is present in the configs
repository in the below location.
https://github.com/<YOUR ORGANISATION>/works-configs/tree/DEV/egov-persister
If not present, please make sure to add the persister YML file.
Make sure to restart MDMS and the persister service after adding the file at the above location.
Please make sure that the file contractservices-indexer.yml is present in the configs
repository in the below location.
https://github.com/{{your organisation}}/works-configs/tree/DEV/egov-indexer
In the MDMS repository, locate the inbox configuration file. Make sure the following JSON is added to the inbox configuration:
Restart the Inbox service after updating above configuration
The API specifications for this service are located here. Postman scripts are also provided here for reference to understand the request payloads.
Our product roadmap is where you can learn about what features we're working on, what stage they're in, and when we expect to bring them to you. Please share your feedback on contact@egovernments.org
The current product roadmap for Works is divided into 3 versions based on the importance of each value bundle, interdependencies between various features and services and need on the ground.
Serial # | Value bundle | Value delivered | Functionalities Delivered | Features | Version |
---|---|---|---|---|---|
Role | APIs |
---|---|
Role Code | Description | API |
---|---|---|
Roles | APIs /Actions |
---|---|
IDGen format for attendance register number |
---|
Roles | API Endpoints |
---|---|
Roles | API Endpoints |
---|---|
Role | APIs |
---|---|
IDGen Format |
---|
Search contract flow helps in searching any contract in the system (Currently in progress or old contracts or rejected contracts)
Users have the option on the contract Inbox to search for contracts. Clicking on that link will get users to the contract search page
Default is an empty page with a set of search options
Contract ID
Estimate ID - Searching for project ID should list all contracts that are part of that project
Contract Type
Contractor ID
Contract Created from Date
Contract Created to Date
Contract search results table -
Contract ID
Estimate ID
Contractor
Contract Type
Status
Contract Amount
Clicking on any Contract ID will take the user to the View Contract screen
1
Estimate Creation and Approval Workflow
User will be able to create estimate and forward for approval to higher authorities across departments for technical, financial and admin sanctions
Estimation
Create Estimate
V1
View Estimate's Inbox
V1
View Estimate
V1
Cancel Estimate
V1
Download Estimate PDF
V1
Duplicate Estimate
Vn
Estimate Templates
Vn
Estimation Workflow
Forward Estimate
V1
Modify Estimate
Vn
Reject Estimate
V1
Approve Estimate
V1
Workflow History
V1
Proposed Budgetary Check
Check with Finance through iFIX
V1
Fiscal Event : Estimate
V1
Sub Estimates
Break Estimates to Sub Estimates
V2
Abstract Estimate
Create Abstract Estimate
V2
View Abstract Estimate
V2
Forward Abstract Estimate
V2
Modify Abstract Estimate
V2
Reject Abstract Estimate
V2
Approve Technical Sanction for Abstract Estimate
V2
Approve Financial Sanction for Abstract Estimate
V2
Revision Estimate
Create Revision Estimate
V2
View Revision Estimate
V2
Forward Revision Estimate
V2
Modify Revision Estimate
V2
Reject Revision Estimate
V2
Approve Admin Sanction for Revision Estimate
V2
Abstract Estimate for RE
Create Abstract Estimate for RE
Vn
View Abstract Estimate for RE
Vn
Forward Abstract Estimate for RE
Vn
Modify Abstract Estimate for RE
Vn
Reject Abstract Estimate for RE
Vn
Approve Technical Sanction for Abstract Estimate for RE
Vn
Approve Financial Sanction for Abstract Estimate for RE
Vn
Assetization / Capitalization Request
Linkage to Asset Module
V2
2
Tendering process and Contractor finalization
User will be able to create tender documents, call for tendering and invite bids, do tender negotiation and finalize contractor
Create Works Package
Vn
Draft Tender Papers
Vn
Workflow Approvals
Vn
Tender announcement
Vn
Bid Invitation
Vn
Tender Negotiation
Vn
Contractor Finalization
Vn
3
Contract Set-up, Terms and Conditions
User will be able to create Letter of Acceptance, attach Milestones & payment plan so as to start the work
Letter Of Intent
Letter of Acceptance
Create letter of Acceptance
V1
Modify Letter of Acceptance
V1
Cancel Letter of Acceptance
V1
View LOA Inbox and View LOA
V1
LOA Workflow
V1
PDF for LOA
V1
Agreement Signing
Vn
Work Order With Terms and Conditions
LOA with BOQ
V2
Offline Checks
Acceptance letter issued Acceptance letter acknowledged Agreement order signed Work order acknowledged Site handed over Work commenced
V2
Milestones
Create Milestones
V1
Modify Milestones
V1
Delete Milestones
V1
Track Milestones
V1
View Milestone inbox and View Milestones
v1
Milestones Templates
Create Milestone Template
V2
Modify Milestone Template
V2
Delete Milestone Template
V2
View Milestone Template Inbox
V2
Attach Milestone Template to LOA
V2
Payment Calendar
Add payment calendar
V1
Modify payment calendar
V1
Delete Payment calendar
V1
View Inbox and View payment calendar
V1
Fiscal Event : Estimate
V1
Setting up Quality Goals
Vn
4
Measurement during work
User will be able to track & measure progress or work
Templates for MBook & Milestones
Creation of MBook Template
V2
Modification of MBook Template
V2
Delete MBook Template
V2
Tracking Milestone
Milestone Tracking
V1
Linking of MBook to project
Attach MBook Template to LOA
V2
Add individual MBook to LOA
V2
Modify Individual Mbook
V2
Delete Individual MBook
V2
Actual Measurement
Inputting Values for MBook
V2
Approving Workflows for Mbook (if any)
V2
Quality Measurement
Vn
Contract risk assessment (Timeline, Resources, Cost)
Assess Risk based on time delay
V2
Assess Risk based on additional Costs
V2
5
Payment
User will be able to receive invoices, raise bills and make partial/full payments
Online invoice creation and submission
Invoice Creation
Vn
Modify Invoice
Vn
Delete Invoice
Vn
Reject Invoice
Vn
Prepare Part Bills & Full Bills based on MBook (or Manual)
Create Bill
V1
Reject Bill
V1
Cancel Bill
V1
Approve Bill
V1
Modify Bill
V1
Bill Workflow History
V1
Download Bill PDF
V1
Contract Certificate PDF
V1
Payment Request to Finance
V1
Fiscal Event : Bill
V1
Approved Request from Finance
V1
Fiscal Event : Payment
V1
UC or Completion Certificate submission and verification (Automation?)
Automation of Bill Generation based on M Book Measurements and Payment Calendar
V2
Smart Payments (Consolidated Payment instructions)
Merge Bills for Payment
Vn
Merge Bills by vendors
Vn
Merge Bills by Projects
Vn
Merge Bills by Contracts
Vn
Merge Bills by Banks
Vn
Pay Bill
Link to Finance Module?
V1
6
Project Closure
Closing the Project with all necessary checks, Finances, Payments, Assetization requests, Documents etc
Final Measurement Book
Final M Book reading
V2
Final MBook Upload/Attachemnt
V2
Final MBook Approval
V2
Create Assetization request
Assetization request Workflow
V2
Assetization request Approval
V2
Assetization request Rejection
V2
Integration with Assets Register(Finance)
V2
Advice on Finances
EMD/ Securiry Deposits / Retention Money / Tax adjustments /Final fund / blocked fund release
V1
Finance integration
For Credit
V1
For Debit Acknowledgement
V1
Learnings
Capture Learnings (What went right/wrong)
Vn
Make learnings available for others
Vn
Final Quality report
?
Vn
Risks
?
Vn
Documentation complete
?
Vn
7
Reports and Dashboards
To help JEs, Ch. Es, PS and all other officials get required level of visibility and right kind of views at all points in time
Reports
Work Progress Register
V1
Work Progress Register Download PDF
V1
Work Progress Register Download Excel
V1
Estimate Appropriation Register
V1
Estimate Appropriation Register Download PDF
V1
Estimate Appropriation Register Download Excel
V1
Estimate Abstract Report by Department
V1
Estimate Abstract Report by Department Download PDF
V1
Estimate Abstract Report by Department Download Excel
V1
Contractor Bill Report
V2
Works Utilisation Report
V2
Retention Money Recovery Register
V2
Dashboard
DSS Dashboard V1
V1
DSS Dashboard V2
V2
8
Masters
Masters that are created for MDMS data and other inputs
Masters
Contractor Class Master
V1
Bank Master
V1
Department Master
V1
Department Category Master
V1
Contractor Master
V1
Election Ward Master
V1
Location Master
V1
Work Category Master
V1
Beneficiary Master
V1
Nature of Work Master
V1
Type of Work Master
V1
Sub-Type of Work Master
V1
Recommended Mode of Entrustment Master
V1
Fund Master Master
V1
Function Master
V1
Budget Head Master
V1
Scheme Master
V1
Sub-Scheme Master
V1
Designations Master
V1
User Master
V1
ESTIMATE_CREATOR
/estimate-service/estimate/v1/_create
/estimate-service/estimate/v1/_search
/wms/estimate/_search
ESTIMATE_VERIFIER
/estimate-service/estimate/v1/_update
/estimate-service/estimate/v1/_search
/wms/estimate/_search
TECHNICAL_SANCTIONER
/estimate-service/estimate/v1/_update
/estimate-service/estimate/v1/_search
/wms/estimate/_search
ESTIMATE_APPROVER
/estimate-service/estimate/v1/_update
/estimate-service/estimate/v1/_search
/wms/estimate/_search
ESTIMATE_VIEWER
/estimate-service/estimate/v1/_search
/wms/estimate/_search
EMPLOYEE_COMMON
/inbox/v2/_search
PROJECT_CREATOR
Project Creator
/project/v1/_create
/project/v1/_update
/project/v1/_search
PROJECT_VIEWER
Project Viewer
/project/v1/_search
EMPLOYEE_COMMON
Employee Common
/inbox/v2/_search
ORG_ADMIN
JUNIOR_ENGINEER
MUNICIPAL_ENGINEER
/attendance/v1/_create
ORG_ADMIN
JUNIOR_ENGINEER
MUNICIPAL_ENGINEER
/attendance/v1/_update
ORG_ADMIN
JUNIOR_ENGINEER
MUNICIPAL_ENGINEER
/attendance/v1/_search
ORG_ADMIN
ORG_STAFF
/attendance/staff/v1/_create
ORG_ADMIN
ORG_STAFF
/attendance/staff/v1/_delete
ORG_ADMIN
ORG_STAFF
/attendance/attendee/v1/_create
ORG_ADMIN
ORG_STAFF
/attendance/attendee/v1/_delete
ORG_ADMIN
ORG_STAFF
/attendance/log/v1/_create
ORG_ADMIN
ORG_STAFF
/attendance/log/v1/_search
ORG_ADMIN
ORG_STAFF
/attendance/log/v1/_update
{
"format": "WR/[fy:yyyy-yy]/[cy:MM]/[cy:dd]/[SEQ_ATTENDANCE_REGISTER_NUM]",
"idname": "attendance.register.number"
}
ORG_ADMIN
ORG_STAFF
/muster-roll/v1/_estimate
ORG_ADMIN
ORG_STAFF
/muster-roll/v1/_create
ORG_ADMIN
ORG_STAFF
MUSTER_ROLL_VERIFIER
MUSTER_ROLL_APPROVER
/muster-roll/v1/_update
ORG_ADMIN
ORG_STAFF
MUSTER_ROLL_VERIFIER
MUSTER_ROLL_APPROVER
BILL_CREATOR
BILL_VIEWER
/muster-roll/v1/_search
WORK_ORDER_CREATOR
MUKTA_ADMIN
/org-services/organisation/v1/_search
MUKTA_ADMIN
/org-services/organisation/v1/_create
MUKTA_ADMIN
/org-services/organisation/v1/_update
WORK_ORDER_CREATOR
/contract/v1/_create
/contract/v1/_update
/contract/v1/_search
/wms/contract/_search
WORK_ORDER_VERIFIER
/contract/v1/_update
/contract/v1/_search
/wms/contract/_search
WORK_ORDER_APPROVER
/contract/v1/_update
/contract/v1/_search
WORK_ORDER_VIEWER
/contract/v1/_search
/wms/contract/_search
EMPLOYEE_COMMON
/inbox/v2/_search
CBO Roles
OCI Roles
ContractType
Overheads
{
"format": "WO/[fy:yyyy-yy]/[SEQ_CONTRACT_NUM]",
"idname": "contract.number"
}
Estimate
Contract
Attendance
Muster Roll
Expense
Bank Account
Organisation
Individual
Project