Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Localization is the process of adapting a software application, website, or content to different languages and regions, making it accessible and user-friendly for diverse audiences. It involves translating text, adapting graphics, and configuring settings to suit the cultural and linguistic preferences of a specific locale.
To retrieve localization messages in mGramSeva, use the Search API given below. This API allows you to search for messages based on parameters like locale, tenantId, and apiId. Here is an example using cURL:
You can customize the parameters such as locale (en_IN, hi_IN, pn_IN) and tenantId to search for messages in different languages and environments. Change the URL to search in any other environment. The current API is specific for UAT environment.
The Upsert API allows users to update or insert new localization messages into mGramSeva. This involves refreshing the authentication token and providing details like code, message, module, and locale. Here is an example using cURL:
In this example, you can customize the "code," "message," "module," and "locale" parameters to specify the localization details you want to upsert. Make sure to update the authentication token for security purposes.
Note: The provided APIs are for the UAT environment, and you may need to modify the URLs accordingly for other environments.
This doc provides the steps to create and add users on mgramseva platform post-installation.
Follow the steps provided on this page to create and add users on the mGramSeva platform once the installation is complete.
Ensure the Postman utility is installed to run the following scripts. If not, Install Postman on the local machine.
There are two methods to create users - either through API or through port-forwarding. To create users through port-forwarding refer here.
Follow the steps given below to create different types of users through the API.
There are primarily three different types of users as listed below:
Super User
Anonymous User
System User
Super User - A superuser is a privileged user account with elevated access rights in a computer system or application. It is typically reserved for administrators or trusted personnel and grants them full control and unrestricted access to all system resources. Superusers are necessary to manage and maintain the system, perform critical tasks, and troubleshoot issues efficiently.
A Superuser is created using the createnovaildate API. Below is the curl given for creating a superuser.
Steps to follow:
Import the curl given below in Postman.
Refresh the authorisation token.
Provide User data as per requirements. This API will create a Super User in production. To add users in any other environment change the URL.
The parameters - userName , name , gender, mobileNumber , tenantId , and password can be changed as per requirements.
Anonymous User -An anonymous user is a generic or unauthenticated user account that does not require login credentials to access certain parts of a system or website. These accounts are essential for providing basic access to public information or services without requiring user registration. They are commonly used to ensure accessibility for a wide audience and encourage user interaction while preserving user privacy. These are used when the system is accessing non-authentication links such as bills and payment receipts.
Creating an anonymous user is the same as creating a superuser. The only difference is to change the name and code in roles. The API below is used to create an Anonymous User in production.
System User - Creating a system user is the same as creating a superuser and anonymous user. The only difference is to change the name and code in roles.
While creating any user make sure your roles are present in ACCESSCONTROL-ROLES.
Here, 'pb' is used as tenantId since we are creating users at the state-level.
This page outlines the step-by-step process for using a Python script to change master rates for mGramSeva in bulk. The script reads data from an Excel file, updates the master rates, and generates a new CSV file containing the modified information. Once the script is successfully executed, changes can be pushed to the local MDMS repository on GitHub.
Python script
MDMS repository cloned on the local system
Excel file with tenant names, old master rates, and new master rates
1. Prepare Excel File:
Ensure the Excel file contains three columns: Tenant Name (in lowercase), Old Master Rate, and New Master Rate.
If the columns are not present, add them to the Excel file.
2. Clone and Create Branch:
Clone the MDMS repository to your local system.
Create a new branch from the branch where you intend to make changes.
3. Update Python Script:
Open the Python script and locate the variables:
updatedfile
: Provide the path to your Excel sheet.
localFilePath
: Specify the path where your MDMS repository is cloned.
Identify the columns in the Excel file where the Tenant Name, Old Master Rate, and New Master Rate are stored. Update the script accordingly:
Run the script.
4. Script Execution:
Do not open the Excel file during script execution.
The script will generate a new file named new_updated_file4.csv
containing information about whether rates were updated or not.
5. Verification:
Check new_updated_file4.csv
to verify if all rates were updated successfully.
6. Push Changes to Git:
If all rates are updated, the local changes will affect the MDMS repository.
Raise a pull request and merge changes from the Git repository.
Note:
It is crucial not to open the Excel file while the script is running to avoid data inconsistencies.
Ensure that the Python environment and dependencies are properly set up.
By following the steps above, you can efficiently update master rates for mGramSeva in bulk, ensuring accurate and streamlined changes to the MDMS repository.
This page provides step-by-step instructions for using a Python script to create consumers for mGramSeva. Follow these guidelines to load consumer data into the system using the Python script provided.
Before running the script, ensure you have a properly formatted Excel sheet. The sheet should include the following columns:
Consumer Name (Mandatory, use "NA" if not available)
Gender (Male/Female)
Father Name (Mandatory, use "NA" if not available)
Mobile Number (Mandatory)
Old Connection Number
Property Type
Service Type (till now in we have Non-metered only for data loading)
Ward (Always set to "Ward 1")
Meter Reading (If available, use provided date; otherwise, default to "12/01/2022")
GPWSC Name
Arrears
Previous Reading ((if arrears and previous reading are not given, write '0')
Ensure the format of the meter reading matches the provided sample format given in excel file below, as incorrect formatting may lead to loading failures.
Edit the Python script with the following details:
Set the host URL based on whether it's for production, QA, or UAT.
Provide the username and password corresponding to your host URL.
Specify the path where your Excel file is stored. It is recommended to store the Excel file in the same location as your Python script.
Execute the Python script after configuring the host URL, username, password, and file path. The script will load data into mGramSeva based on the information provided in the Excel sheet.
Do not open the Excel file until the script completes its task. After completion, open the Excel file to check the status. The status will indicate whether the operation was successful or if there was a failure. If there's a failure, refer to the provided reason for further investigation and resolution.
This page provides a clear and concise guide for automating user creation in mGramSeva. It allows you to efficiently create users and manage their roles in the system.
Follow the steps provided on this page to create users for mGramSeva using a Python script. The process involves preparing an Excel sheet with user information, configuring the Python script, and executing it.
Python script for creating users for mGramSeva.The sample format of the Python script is attached below.
Excel sheet containing user data. The sample format of the Excel sheet is attached below. Make sure to populate the data in the same format.
Columns: tenant name, mobile no, father name, gender, date of birth (dd/mm/yyyy), type, and ward (fixed to "ward 1").
Types: Sarpanch, Secretory, Revenue Collector, Division User or State User
Roles for Sarpanch: COLLECTION_OPERATOR, EXPENSE_PROCESSING, BULK_DEMAND_PROCESSING, DASHBOARD_VIEWER, GP_ADMIN.
Roles for Secretory: EXPENSE_PROCESSING, BULK_DEMAND_PROCESSING, DASHBOARD_VIEWER, GP_ADMIN, COLLECTION_OPERATOR.
Roles for Revenue Collector: COLLECTION_OPERATOR, DASHBOARD_VIEWER.
Roles for Division User: HRMS_ADMIN, DIVISION_ADMIN
Roles for State User: HRMS_ADMIN, STATE_ADMIN
Prepare the Excel Sheet:
Create an Excel sheet with the following columns and data in the given format:
Tenant Name (in lowercase)
For State User tenant name will be pb
Mobile Number
Father's Name (Mandatory, use "NA" if not available)
Gender (M/F - this data is mandatory)
Date of Birth (in the format dd/mm/yyyy)
Type (Sarpanch, Secretory, Revenue Collector, Division User or State User)
Roles
Based on the User Type, set corresponding roles:
Sarpanch: COLLECTION_OPERATOR, EXPENSE_PROCESSING, BULK_DEMAND_PROCESSING, DASHBOARD_VIEWER, GP_ADMIN
Secretary: EXPENSE_PROCESSING, BULK_DEMAND_PROCESSING, DASHBOARD_VIEWER, GP_ADMIN, COLLECTION_OPERATOR
Revenue Collector: COLLECTION_OPERATOR, DASHBOARD_VIEWER
Division User: HRMS_ADMIN, DIVISION_ADMIN
State User: HRMS_ADMIN, STATE_ADMIN
The 'Boundary' should be set to "Ward 1" as per mGramSeva standards.
Run the Python Script:
Open the Python script.
Provide the following information within the script:
Host URL: Specify the target environment (prod, qa, or uat).
Username and Password: As per your host URL.
Path to the Excel file: Ensure the Excel file is in the same location as the script.
Execute the script.
Post-Execution:
Do not open the Excel file until the script has completed its task.
After the script finishes, open the Excel file to review the results.
The Excel file will contain two columns:
User ID: If successful, the ID will be present.
Status: Will indicate either "Success" or "Failure." If failed, the reason for failure will be provided.
This page provides step-by-step instructions for creating a consumer in the mGramSeva system using two API calls. The first API call is for creating a property, and the second API call is for making a connection for the consumer.
Before proceeding with the given tasks, ensure the following prerequisites are met:
Authentication Token (authToken): Obtain a valid authentication token for the desired environment. This token is necessary to authenticate and authorize your requests.
API Endpoints: Ensure you have access to both APIs required for creating a property and a consumer. Make sure you have the correct API documentation or information about the endpoints, request payloads, and any required headers.
Postman: If you don't have Postman installed, download and install it. Import collection in Postman. Make sure you change the URL as per your requirements.
Follow the steps given below to create consumers using either Property Create API or Consumer Create API.
Here's a step-by-step guide:
Locate the Property Creation API:
Open the Postman collection you imported.
Find the request corresponding to the Property Creation API. It might be named something like "Create Property" or similar.
Set Request Parameters:
Review the request parameters for creating a property.
For metered connections, provide values for initialMeterReading
, meterReading
, meterId
, and previousReading
. Set them to null if not applicable.
Set ConnectionType
to "Metered" for metered connections and "Non_Metered" for non-metered connections.
Ensure that oldConnectionNo
is unique every time you create a property.
Execute the Request:
Click on the "Send" button to execute the request.
Review the response to confirm that the property has been created successfully.
Copy Property ID:
In the response, you should find the propertyId
field. Copy the value of propertyId
as this will be needed for subsequent steps.
Now, you have successfully created a property, and you have the propertyId
copied for future use. Ensure to follow any additional instructions provided in the Postman collection or the API documentation.
Follow the steps below to create a consumer using the Consumer Creation API from the Postman collection:
Locate the Consumer Creation API:
Open the Postman collection.
Find the request corresponding to the Consumer Creation API. It may be named "Create Consumer - Metered" for metered connections or "Create Consumer - Non-Metered" for non-metered connections.
Set Request Parameters:
Review the request parameters for creating a consumer.
For metered connections, provide values for initialMeterReading
, meterReading
, meterId
, and previousReading
. Set them to null if not applicable.
Set ConnectionType
to "Metered" for metered connections and "Non_Metered" for non-metered connections.
Ensure that oldConnectionNo
is unique every time you create a consumer.
Use the propertyId
obtained from creating the property as instructed in the previous step.
Execute the Request:
Click on the "Send" button to execute the request.
Review the response to ensure that the consumer has been created successfully.
By following these instructions and providing the necessary details, you should be able to successfully create a consumer with a property and connection in the mGramSeva system. Ensure that you follow any additional guidelines or instructions provided in the Postman collection or API documentation.
This page provides a comprehensive guide on using the CreateNovaildate API to create users with specific roles based on their responsibilities within the system. Adjust the parameters and roles as needed for your specific requirements.
The API allows users to create a new user with specified details that include username, name, gender, mobile number, activation status, user type, tenant ID, and password. Refer to the details available below.
Additionally, users can be assigned specific roles based on their responsibilities.
username (string): User's unique username.
name (string): Full name of the user.
gender (string): Gender of the user.
mobileno (string): User's mobile number.
active (boolean): User's account status (true for active, false for inactive).
type (string): It will be EMPLOYEE only.
tenantid (string): User's tenant ID.
password (string): User's password.
Roles: Roles determine the permissions and responsibilities assigned to a user.
The available roles are as follows:
COLLECTION_OPERATOR
EXPENSE_PROCESSING
BULK_DEMAND_PROCESSING
DASHBOARD_VIEWER
GP_ADMIN
EXPENSE_PROCESSING
BULK_DEMAND_PROCESSING
DASHBOARD_VIEWER
GP_ADMIN
COLLECTION_OPERATOR
COLLECTION_OPERATOR
DASHBOARD_VIEWER
HRMS_ADMIN
DIVISION_ADMIN
HRMS_ADMIN
STATE_ADMIN
To assign roles to a user, include the desired roles in the roles
section of the request.
PROFILE_UPDATE role is available for every user to update existing roles.
After AWS installation we need to setup some services which are as follows :-
To enable any municipal service in a fresh environment and for the first time, we require a basic idea of what DIGIT does and the generic services required to set it up.
DIGIT is an open-source, customizable platform that lends itself to extensibility. New modules can be built on top of the platform to suit new use-cases or existing modules can be modified or replaced. To enable this, in addition to deploying DIGIT, a CD/CI pipeline has to be set up. CD/CI pipelines enable the end users to automate & simplify the build/deploy process.
Find more details on DIGIT and platform deployment .
DIGIT platform comprises several core services that serve as the platform backbone. Some of the key core services are listed below:
..among
Each microservice has a distinct function explained in the provided documentation links.
Developers can activate specific municipal services easily once the platform and its terminologies are well understood.
Sample of SMS present in mGramSeva application
This page provides details on how to register the SMS templates with the specified TEMPLATE ID for each Localization key and append the TEMPLATE ID at the end of the message in the Localization system.
To register the provided SMS templates with a specific TEMPLATE ID for each Localization key and append the TEMPLATE ID at the end of the message
The sample SMS messages in the table below have to be registered with a specific TEMPLATE ID (Eg.'100700746377980') for each Localization key.
Append the TEMPLATE ID at the end of the message.
Push the SMS templates in Localisation.
NOTE - mGramSeva uses DIGIT core services and additional code is available in and .
First time login OTP
RESET_PASSWORD_FIRST_TIME_OTP
OTP to reset password on NalJal is {otp}
Forgot Password OTP
RESET_PASSWORD_OTP
OTP to reset password on NalJal is {otp}
Creation login details
MGram.User.Invitation
Dear {USER}, You've been invited to NalJal Application. Please login using {LINK}. Username: {PHNO} Password: {PASSWORD}
Demand (Bulk)
mGram.GP.MonthlyDemandGenerated
Dear {ownername}, Demand for Billing Cycle {billingcycle} has been generated for {tenant -name}. Kindly plan for collection of Water Charges for this period. {LINK} DWSS
Pending Collection Reminder
mGram.GPUser.CollectionReminder
Dear {ownername}, Rs.{amount} is pending collections against Water Charges at {WIMC} as of {Date}. Click {PENDING_COL_LINK} to see more details. DWSS
New Calendar Month
mGram.GPUser.PreviousMonthSummary
Dear {user}, Rs.{PREVIOUS_MONTH_COLLECTION} has been collected in {PREVIOUS_MONTH} against water charges & Rs.{PREVIOUS_MONTH_EXPENSE} has been spent as expenditure for {WIMC}. Click {LINK} to see more details. DWSS
Fortnight
NEW_ENPENDITURE_SMS_EN_REMINDER
Please enter new expenditure bills online for {WIMC}. Click {NEW_EXP_LINK} to make an expense entry now. DWSS
Alternate Fortnight
MARK_PAID_BILL_SMS_EN_REMINDER
Expenditure bills for {WIMC} are awaiting payment confirmation. Please click {EXP_MRK_LINK} and mark them as paid, if paid already. DWSS
Demand (Bulk) - (NM & M)
mGram.Consumer.NewBill
Dear {ownername}, New water bill for Billing Cycle {Period} has been generated for Consumer Id {consumerno} for Rs.{billamount}. Click {BILL_LINK} to download latest bill. DWSS
Demand (Bulk) - (NM & M)-1
mGram.consumer.payment.message
Dear {ownername}, Pending Amount for water charges for Consumer Id {connectionno} is Rs.{billamount}. Click {PAY_LINK} to pay online. DWSS
Bill Paid
Gram.Consumer.DownloadReceipt
Dear {ownername}, Rs.{amountpaid} has been paid for Water Charges for Consumer Id {consumercode}. Pending Amount is Rs.{pendingamount}. Click {RECEIPT_LINK} to Download Receipt. DWSS
Feedback Collection
mGram.Consumer.TakeSurvey
Dear {ownername}, Thank you for paying water charges. Please take this short survey {SURVEY_LINK} and help us know more about water supply at {WIMC}. DWSS
This page provides the steps to follow to create a workflow in mGramSeva.
Here is the reference to workflow service of DIGIT. You can refer here and understand more.
For creating workflow in mgramseva below are the steps-
Follow these steps to create a workflow in mGramSeva:
Check Existing Workflow:
Utilize the provided Postman collection that includes workflow create and search APIs.
Use the search API to check if the workflow for the specified state already exists.
Workflow Creation:
If the workflow is not present, proceed to create it using the create API.
Ensure to provide the necessary details in the userInfo section, give superuser information.
Adjust parameters like tenantId and roles according to your specific requirements.
Port Forwarding:
Execute port forwarding to the workflow service using the following kubectl command:
Replace <pod-name>
with the appropriate pod name.
Create Workflow:
After port forwarding, initiate the workflow creation process.
Search Through API:
Use the search API to verify that the workflow has been successfully created.
Adjust the search parameters as needed.
These steps ensure a smooth workflow creation process in mGramSeva. Make sure to follow each step in sequence for a seamless experience.
mGramSeva's Master Data Management System (MDMS) is organized into several folders, each containing essential JSON files that define various aspects of the application's configuration. This documentation provides an overview of the key folders and their respective files, along with a description of the data contained within each file.
This folder contains the actions-test.json
file, which defines various API endpoints along with their configurations.
id
: Unique identifier for the API endpoint. Increase id with respect to id present in action-test.json file.
name
: Name of the endpoint.
url
: URL of the API endpoint.
Other things
: As per your specific requirements.
This folder contains the roleactions.json
file, which associates roles with action IDs.
rolecode
: Code representing the role.
actionid
: Action ID associated with the role, linking to entries in actions-test.json.
actioncode
: Additional code for the action if needed.
tenantId
: Tenant ID associated with the role.
This folder contains the roles.json
file, defining roles in the system.
code
: Code representing the role.
name
: Name of the role.
description
: Description of the role.
This folder contains various JSON files related to billing services.
4.1 BusinessService.json
Defines business services, such as expenses like electricity bills and salaries.
businessService
: Identifier for the business service.
code
: Code representing the business service.
collectionModesNotAllowed
: Collection modes not allowed for the service.
partPaymentAllowed
: Indicates whether part payment is allowed.
isAdvanceAllowed
: Indicates whether advance payment is allowed.
isVoucherCreationEnabled
: Indicates whether voucher creation is enabled.
isActive
: Indicates whether the service is active.
type
: Type of the service.
PaymentService.json
This file, located in the billingservice
folder, provides configurations for payment services within the Billing Service module.
tenantId
: The identifier for the tenant associated with the configuration.
moduleName
: The name of the module, in this case, "BillingService."
PaymentService
: An array containing configurations for different payment services.
Payment Service Configuration:
businessService
: Identifier for the business service.
code
: Code representing the payment service.
collectionModesNotAllowed
: Array specifying modes of payment not allowed for this service.
"DD"
: Demand Draft
"CHEQUE"
: Cheque
"CARD"
: Card
"OFFLINE_NEFT"
: Offline NEFT
"OFFLINE_RTGS"
: Offline RTGS
"POSTAL_ORDER"
: Postal Order
"ONLINE"
: Online
partPaymentAllowed
: Indicates whether part payment is allowed for this service.
isAdvanceAllowed
: Indicates whether advance payment is allowed for this service.
demandUpdateTime
: Time interval (in milliseconds) for updating demands.
isVoucherCreationEnabled
: Indicates whether voucher creation is enabled for this service.
billGineiURL
: URL for generating bills using Bill Genie.
isBillAmendmentEnabled
: Indicates whether bill amendment is enabled for this service.
This configuration specifies the payment modes not allowed for the "ws-services-calculation" business service, whether part payment and advance payment are allowed, the demand update time, voucher creation status, Bill Genie URL, and bill amendment status.
TaxHeadMaster.json
This file is responsible for defining the various charges and taxes which are going to be configured in the application.
TaxPeriod.json
This file is used to define the number of financial years which are supported in each tax head.
This folder contains various JSON files related to ws-services-masters.
6. ws-services-calculation This folder contains various JSON files related to ws-services-calculations.
This folder contains various JSON files related to property tax.
This folder contains expense type in JSON format.
All (1 to 8 points) are state-level changes.
9. Tenant Folder (City level changes for every city there is one folder in MDMS)
For each tenant, there is a unique folder containing three subfolders, each with its specific configuration files.
businessservice.json
- Billing Service ConfigurationThis file, located in the billing service
folder, provides tenant-specific configurations for the Billing Service module. It is similar to the global BusinessService.json
configuration but is specific to the tenant.
boundary-data.json
- Location Boundary Data ConfigurationThis file, located in the egov-location
folder contains boundary data specific to the tenant.
Details of the structure and content of this file would be specific to the actual data in the system. Please refer to the specific boundary-data.json
file for detailed information.
WCBillingSlab.json
- Water Connection Billing Slab ConfigurationThis file, found in the ws-services-calculation
folder defines billing slabs for water connection based on building type and connection type.
id
: Unique identifier for the billing slab.
buildingType
: Type of the building (e.g., RESIDENTIAL).
connectionType
: Type of connection (e.g., Metered).
calculationAttribute
: Attribute used for calculation (e.g., Water consumption).
minimumCharge
: Minimum charge for the billing slab.
slabs
: Array defining the billing slabs, including from
, to
, charge
, and meterCharge
.
This configuration is used to determine rates for water consumption based on the specified billing slab criteria.
There is a tenant folder in the MDMS which contains all tenants in tenants.json file.
This documentation outlines the process of setting up a new tenant in MDMS (Master Data Management System). To achieve this, it involves cloning the MDMS repository locally and utilizing a Python script that interacts with an Excel file containing essential information for the new tenant setup.
Clone the MDMS repository to your local machine.
Have the Excel file ready for reference. The structure of the Excel file is critical, and any changes must align with the specified columns. The reference to the Excel file is given below.
Locate the Python script for adding a new tenant. The script can either be placed in the "tenants" folder locally or specify the full path where your "tenants.json" folder is present within the script.
Open the script and edit the following lines to match your requirements:
Replace "Book2.xlsx" with the name of your Excel file containing tenant information.
Specify the sheet name in your Excel file where the required data is stored.
Ensure your Excel file adheres to the specified format. The columns must match the template provided, and any deviation may result in script failure.
Do not modify the column structure in the Excel sheet, as the script relies on a consistent format.
Execute the Python script after configuring it according to your needs. The script will process the Excel file, and upon completion, a new file named "tenants_new.json" will be generated.
Deploying to MDMS:
Copy the generated tenants_new.json
file to the MDMS repository or select and apply the updated data within MDMS as needed.
After creating a tenant in the tenants.json file we need to make a separate folder in MDMS for each tenant.