Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
NalJalSeva is a Hybrid Application(web + App(Android + IOS)) built utilising Open Source Framework Flutter.
CrossPlatform Application
Faster
Single Codebase - Easy To Maintain
Large Community Support
Open Source
Link to Learn Flutter - Flutter - Beautiful native apps in record time
Flutter Version Utilised for Development
Flutter 2.2.3
Languages - > Dart 2.13.4
Users are redirected to this screen once they click on the Collect Payment card or the Update Consumer Details card or the Download Bills and Receipts card on the home screen.
Link
→ {base url}/mgramseva/home/householdSearch?Mode=collect
→ {base url}/mgramseva/home/consumersearchupdate?Mode=update
→ {base url}/mgramseva/home/householdReceiptsSearch?Mode=receipts
Users can search the consumer/connection with their Mobile Number / Name / Old Connection ID / New Connection ID ( Search with any one of these
)
Click on Search to get the household details of the Consumer/Connection.
Primary Files:
punjab-mgramseva/SearchConnection.dart at develop · egovernments/punjab-mgramseva
Fields | Validations |
---|---|
1 → Home Screen. + Search Connection Screen
Pop → Home Screen
Widgets utilised from the Library
End Point | Request Method | Request Info |
---|---|---|
Widgets | File Path | Description |
---|---|---|
/ws-services/wc/_search
POST
tenantId: {}
oldConnectionNumber: {}
name: {}
connectionNumber: {}
mobileNumber: {}
BuildTextField
Text Field
BottomButtonBar
Button
Owner Mobile Number
r'^(?:[+0]9)?[0-9]{10}$'
Name of the Consumer
r'^[A-Za-z ]'
Old Connection ID
No Validation
New Connection ID
No Validation
Users are redirected to this screen if they select the GPWSC Dashboard option on the home screen.
Link → {base url}/mgramseva/home/dashboard?tab=0
Users can select the year from the drop-down which contains the list of financial years.
From the text field, users can search for connections by using the connection ID.
Users can see the connections data based on the property type for each respective tab (Ex: All, Residential, Commercial).
Initially, only 10 connections are loaded for the selected tab. The pagination dropdown and right arrow click enable users to view more connections.
By selecting any connection ID users are navigated to the Connection update screen.
Primary Files:
punjab-mgramseva/Dashboard.dart at develop · egovernments/punjab-mgramseva
punjab-mgramseva/search_expense.dart at develop · egovernments/punjab-mgramseva
End Point | Request Method | Request Info |
---|---|---|
1 → Home Screen. + Dashboard collection screen + update connection screen
Pop → Dashboard collection screen → Home Screen
2 → Home Screen. + Dashboard collection screen + update connection screen + Update Success
Pop → Home Screen
Widgets utilised from the Library
Controller →
View →
Model →
Widgets | File Path | Description |
---|---|---|
Pagination
Pagination
BuildTextField
Text Field
BillsTable
Table
LabelText
Subtitle
/ws-services/wc/_search
POST
tenantId : {} offset ; {} limit : {} fromDate : {} toDate : {} iscollectionAmount
: {} isPropertyCount
: {} propertyType
: {} connectionNumber
: {} freeSearch
: {}
sortOrder ; {} sortBy : {}
Users are redirected to the home page screen after successful login. This screen consists of multiple sections and user interactions. If the user is mapped to multiple tenants then a dropdown appears. The user can select the desired tenant to proceed further. Once the user selects the tenant, the feature cards are displayed on the screen based on the roles mapped for the selected tenant.
YES → WalkThrough/User Guidance Enabled
NO → Home Screen
If the user logs in for the first time a system walkthrough begins automatically.
Otherwise, users can view walkthroughs at any time by clicking on the help icon.
Create a global key for each card.
Create placeholder cards, pointers and description widgets.
On click, the position of the card is determined and the placeholder card appears on the overlay exactly.
Primary Files:
punjab-mgramseva/HomeWalkThroughContainer.dart at develop · egovernments/punjab-mgramseva,
punjab-mgramseva/HomeWalkThroughList.dart at develop · egovernments/punjab-mgramseva
Next → Changes the active index of the global key and repeat the same process outlined in the implementation logic skip,
End → closes the overlay
Home Screen - consists of multiple feature cards
Cards are displayed based on Role Access.
The home screen also consists of notifications. The notifications are customized for each user ID and user role.
Individual API calls are made with the user ID and with the user role that merges both and notifications are displayed accordingly.
Primary Files:
Users land on the Language Selection screen.
Link → {base url}/mgramseva/selectLanguage
Users can switch to different languages that the application supports.
Click on Continue to navigate to the next screen.
Primary files:
Secondary files:
LocalStorage
0 → Language selection screen
Pop → Application closes
Widgets utilized from library
Users are redirected to the Update Password screen once they log in successfully the first time.
Link: → {base url}/mgramseva/selectLanguage/login/updatepassword
Enter the OTP sent on the user’s 10-digit mobile number.
Set the new password for logging into the application.
Click on Change Password to apply new password credentials for the user.
Users can see the allocated Gram Panchayat name and code in the table.
This feature helps match the user’s password and check if the password contains
Minimum 6 digits
At least one special character ( !#$%^&...)
At least one letter
At least one number
Primary Files:
Fetch the tenants from MDMS, based on the user roles in the user request filtering the tenants by comparing tenant IDs.
1 → Language selection screen + Login screen + Update password + Update password success
Pop → Login
Widgets utilized from the library
View →
Controller →
Users are redirected to this screen once they click on the Forgot Password link on the home screen.
This feature allows users to request OTP by entering a valid (registered) mobile number.
Follow the steps below to set a new password -
Click on the Forgot Password link visible on the login screen
Enter the registered mobile number
The remaining steps are explained in the Reset Password section.
Primary Files:
punjab-mgramseva/ForgotPassword.dart at develop · egovernments/punjab-mgramseva
2 → Language Selection Screen. + Login Screen + ForgotPassword
Pop → Login Screen Screen
Widgets utilised from the Library
Users are redirected to this screen once they click on the Continue button on the Forgot Password screen.
Link - → {base url}/mgramseva/selectLanguage/login/forgotPassword/resetPassword
Enter the OTP sent on the user’s 10-digit mobile number.
Set the new password for logging into the application.
Click on Change Password to apply new password credentials for the user.
This feature helps to provide the users with a clear indication of what the password should contain. Acceptable passwords must contain -
Minimum 6 digits
At least one special character ( !#$%^&...)
At least one letter
At least one number
Primary Files:
1 → Language Selection Screen. + Login Screen + Forgot Password + Reset Password.
Pop → Forgot Password Screen.
Widgets utilised from the Library
Users are redirected to this screen once they select the preferred language in the previous screen.
Link → {base url}/mgramseva/selectLanguage/login
Users enter the registered Phone Number and Password.
Click on Continue.
First-time login users navigate to Reset Password Page.
Log in with the default password
YES → Reset Password/ Update Password Screen
NO → Home Screen
Primary Files:
punjab-mgramseva/Login.dart at develop · egovernments/punjab-mgramseva
Fields | Validations |
---|---|
Stack
1 → Language selection screen. + Login screen.
Pop → Language selection screen.
Widgets utilized from the library
Users are redirected to this screen once they click on the Change Password option in the sidebar app drawer.
Link → {base url}/mgramseva/home/changepassword
Enter the Current Password
Enter and Confirm a New Password to set the login credentials for the next time login
Click the Change Password Button. The user login password is set to the new password.
This feature helps match the user password to the requirements and checks if the password contains
Minimum 6 digits
At least one special character ( !#$%^&...)
At least one letter
At least one number
Primary Files:
Stack
1 → Home Screen. + Change Password Screen
Pop → Home Screen
Widgets utilised from the Library
Users are navigated to the Edit Profile screen once they click on the option on the sidebar app drawer.
Link - → {base url}/mgramseva/home/editProfile
User can change their profile name, gender and email on this screen
Click on the Save button triggers a Details Saved Successfully message on the screen and saves the changes to the profile.
Primary Files:
punjab-mgramseva/EditProfile.dart at develop · egovernments/punjab-mgramseva
Fields | Validations |
---|---|
End Point | Request Method | Request Info |
---|---|---|
Stack
1 → Home Screen. + Edit Profile Screen
Pop → Home Screen
Widgets utilised from the Library
Key | Stored Data |
---|---|
API EndPoint | Input Params (Modules) | Description |
---|---|---|
Widgets Library |
---|
Fields | Validations |
---|---|
End Point | Request Method | Request Info |
---|---|---|
Widgets | File Path | Description |
---|---|---|
End Point | Request Method | Request Info |
---|---|---|
Widgets | File Path | Description |
---|---|---|
Fields | Validations |
---|---|
End Point | Request Method | Request Info |
---|---|---|
Widgets | File Path | Description |
---|---|---|
End Point | Request Method | Request Info |
---|---|---|
Widgets | File Path | Description |
---|---|---|
Fields | Validation |
---|---|
End Point | Request Method | Request Info |
---|---|---|
Widgets | File Path | Description |
---|---|---|
Widgets | File Path | Description |
---|---|---|
states_key
State Information for From MDMS Service
ex :pn_IN
,en_IN
,hi_IN
Localization codes
egov-mdms-service/v1/_search
common-masters tenant
To fetch details State info Logo background Image Languages supported
localization/messages/v1/_search?module
={}locale
={}tenantId
={}
ALL the necessary Modules, with locale key and tenant Id
To Load the Localized data
Button Bar
Enter the OTP sent *
r'^[0-9]+$'
, 6 digit
Enter a New Password*
r'^(?=.*?[A-Za-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{6,}$'
Confirm New Password
Match with New Password
user/password/nologin/_update
POST
"otpReference": {}, "userName": {}, "newPassword": {}, "tenantId": {}, "type": “Employee”
egov-mdms-service/v1/_search
POST
"MdmsCriteria": { "tenantId": tenantId, "moduleDetails": [ { "moduleName": "tenant", "masterDetails": [ {"name": "tenants"} ], }, ] }
BuildTextField
Text Field
BottomButtonBar
Button
PasswordHint
Password Hint Card
user-otp/v1/_send
POST
"otp": { "mobileNumber": {}, "tenantId": {}, "type": "passwordreset", "userType": "Employee" }
Enter the OTP sent *
r'^[0-9]+$'
, 6 digit
Enter a New Password*
r'^(?=.*?[A-Za-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{6,}$'
Confirm New Password
Match with New Password
user/password/nologin/_update
POST
"otpReference": {}, "userName": {}, "newPassword": {}, "tenantId": {}, "type": “Employee”
BuildTextField
Text Field
BottomButtonBar
Button
PasswordHint
Password Hint Card
/user/oauth/token
POST
username: {} password:{} scope: read grant_type: password tenantId: {} userType: EMPLOYEE
BuildTextField
Text Field
Button
Button
Current Password*
No Validation
Set a New Password*
r'^(?=.*?[A-Za-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{6,}$'
Confirm New Password*
Match with New Password
user/password/_update
POST
"userName": {}, "existingPassword": {}, "newPassword": {}, "tenantId": {}, "type": {}
BuildTextField
Text Field
Button
Button
BuildTextField
Text Field
BottomButtonBar
Button
RadioButtonField
Radio Buttons for options
BuildTextField
Text Field
Button
Button
Fields
Validation
Phone Number*
r'^[0-9]+$'
Phone Number*
r'^[0-9]+$'
Password*
r'^(?=.*?[A-Za-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{6,}$'
Name
r'^[a-zA-Z ]+$'
Email ID
r'^$|^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$'
/user/profile/_update
POST
"user": { "id": {}, "userName": {}, "salutation": null, "name": {}, "gender": {}, "mobileNumber": "9191919146", "emailId": {}, "altContactNumber": null, "pan": null, "aadhaarNumber": null, "permanentAddress": null, "permanentCity": null, "permanentPinCode": null, "correspondenceAddress": null, "correspondenceCity": null, "correspondencePinCode": null, "active": true, "locale": null, "type": "EMPLOYEE", "accountLocked": false, "accountLockedDate": 0, "fatherOrHusbandName": null, "relationship": null, "signature": null, "bloodGroup": null, "photo": null, "identificationMark": null, "createdBy": {}, "lastModifiedBy": {}, "tenantId": {}, "roles": [ {} ], }
Enables employees to add expenses - the process of onboarding the end-users. Add Expenses card is available on the home screen for defined user roles having the EXPENSE PROCESSING permission.
Link → {base url}/mgramseva/home/addExpense
Clicking the Add Expense Record tile/card on the home screen navigates the user to the Add Expenses screen. The user enters the required details to add the expenses for the vendors.
If a user logs in for the first time then a walkthrough is populated following the same logic as in the home screen.
Clicking on the Submit button navigates the user to the Expenditure Added Successful acknowledgement screen.
This feature allows the user to take a picture or choose a single file. The plugin is used to implement this.
Whenever this application is used on mobile, it prompts the user with two options - Camera and File Picker. If the application is opened on desktop or laptop browsers, the camera option is not available. The user has to select an image from the folder.
The maximum supported file size is 5 MB.
For validating the form we use the Form widget. Once the user selects a bill date the Bill Pay option is enabled. Otherwise, the auto-validation process is enabled. Based on the bill date, the party selection date is enabled. If the user selects the party selection date first, the bill date can be selected only after entering the party date. Whenever the bill paid option is true, the paid date field is enabled and mandatory. The date selection range allows date input only after the bill date and before the current date.
Primary Files -
Note: All fields are validated on Submit apart from the Mobile number which gets validated on change.
1 → Home Screen. + Add Expense Screen
Pop → Home Screen
Widgets utilised from the Library
Enables employees to create new Consumers or Connections - The process of onboarding the end-users.
Link
→ {base url}/mgramseva/home/consumercreate
The Create Consumer card is available on the home screen as per the defined user role.
Click on the Consumer Create card navigates the user to the consumer creation screen.
Users enter the required details for the creation of a consumer.
If a user logs in for the first time then a walkthrough is populated following the same logic as in the home screen.
Primary Files -
Fields | Validations |
---|
Note: All fields are validated on Submit except the Phone number which gets validated on change.
Consumer creation involves 2 sequential processes
Property Creation
Water connection Creation
After creating a property, the Property ID is linked to the WaterConnection Request JSON.
Water connection creation is of two types:
A metered connection that requires Meter ID and meter installation Date/ Last Meter Reading Date and an optional field to capture meter reading.
Non-Metered Connection which requires the last billing cycle as mandatory params captured in the field as shown below.
Users can switch between connection types by selecting a desired value from the Service Type DropDown.
For consumers, users can give either Advance or Arrears along with a Penalty by selecting the respective option using the radio buttons. If a user selects Advance, the field is shown or else Arrears and Penalty will be shown where the user can enter the required amount.
The radio button “Advance” will be displayed only if the config flag “Advance enabled” is activated in the MDMS billing service.
The “Penalty” field (displayed along with arrears) on selecting the Arrears radio button, will be displayed only if the config flag “Penalty enabled” is activated in the MDMS billing service. The user will be able to see the arrears field and can enter the arrears amount.
billing-service/demand/_search API is used for calculating the advance amount for the current bill. We can get the advance amount if taxHeadMasterCode contains 'WS_ADVANCE_CARRYFORWARD'. Here we have two properties - collection amount and tax amount. The tax amount is the advance amount that is added to the system and the collection amount is how much we utilised from the total advance amount. We can get the current advance from the taxAmount - collectionAmount
billing-service/demand/_search API is used to calculate the Penalty amount. We can get the penalty amount if taxHeadMasterCode contains 'WS_TIME_ADHOC_PENALTY'. We get the penalty amount from the tax amount property.
The due date is calculated by adding the billexpirtyDate days with the demand generation date.
If it is the first demand and it has the taxHeadMasterCode 10201, we show the Penalty placeholder in the bill details.
Model →
View →
Controller →
Components utilised from the Widgets Library
This page provides the UI screen technical details for the following features -
Users are redirected to this screen once they click on the Generate Demand card on the home screen.
This is used in cases when the scheduler is not running (due to technical errors) and the GP wants to run it manually.
Link → {base url}/mgramseva/home/billmanualgenerate
Default Values Set
The service category displays water charges by default
The service type displays a non-metered connection by default
Set the billing year from the drop-down which contains the list of financial years.
Set the Billing cycle which contains billing cycles for the selected financial year.
On clicking the Generate Demand Button, Bulk Demand is generated and the user is navigated to the success screen.
The Billing Cycle drop-down shows a list of months starting from the selected financial year from Date month till the current date month.
On selection of the desired month, the billing period value is set from the selected month’s first date to the selected month’s last date. (Eg. Selected Billing Cycle: June 2021, so Billing period: 01/07/2021 - 30/07/2021)
Primary Files:
1 → Home Screen. + Generate Bulk Demand Screen
Pop → Home Screen
Widgets utilised from the Library
Users are redirected to the Generate New Bill screen once they click on the Generate New Bill option in the household detail screen.
Link
→ {base url}/mgramseva/home/householddetails/billgenerate
Default Values Set
The service category defaults to water charges
The service type defaults to a metered connection
The property type defaults to the selected property type of the consumer
Previous Meter Reading: Takes input from the user only for a first-time bill generation and if the Previous meter reading is null, else it's defaulted if the meter reading is present.
New Meter Reading: Takes input from the user
Meter Reading Date: Defaulted to today’s date, the User can change it to the desired date.
Users have the option of downloading the bill or sharing it via WhatsApp
On click of the Collect Payment button, the user is navigated to the Payment Screen
Primary Files:
1 → Home Screen + Household Details Screen + Generate Bill Metered
Pop → Household Details Screen
Widgets utilised from the Library
Users are redirected to this screen by selecting the Update Expense card on the home screen.
Update Expenses card is available on the home screen for defined roles that have EXPENSE PROCESSING permission.
Link → {base url}/mgramseva/home/searchExpense
Users can search the expense bills with the Vendor Name / Type of Expense / Bill ID ( Search with any one of these criteria
)
Click on Search navigates the user to the expense results screen which lists the expenditure bills matching the search criteria.
Primary Files:
Fields | Validations |
---|
1 → Home Screen. + Search Expense Bills Screen
Pop → Home Screen
Widgets utilised from the Library
This screen enables employees to update consumer details.
Users are redirected to this screen/page when they click on the Update Consumer Details card.
Link
→ {base url}/mgramseva/home/consumersearchupdate?Mode=update
→ {base url}/mgramseva/home/consumersearchresult
It redirects to Page in update
mode where users enter specific consumer details to search for consumers. The search result screen has the Edit Consumer button. Clicking on this button navigates the users to the Update Consumer screen.
Fields | Validations |
---|
Note: All fields are validated on Submit apart from the phone number which gets validated on change.
Components utilised from Widgets Library
Enables employees to modify/edit the expenses based on the status of the payment.
Link → {base url}/mgramseva/home/searchExpense/result/updateExpense
Update Expenses card is visible on the home screen for defined user roles that have EXPENSE PROCESSING permission. Clicking on the Update Expenditure card in the expense search results screen navigates the user to the Edit Expense Bills screen.
Users can edit the previously populated expense details for the vendors.
Clicking on the Submit button navigates the users to the Modified Expenditure Success screen.
Use Case 1: When the status is “Unpaid”
Allows modification of all the details except the Bill ID. Users can Mark the Bill as “Cancelled” by checking on the option.
Use Case 2: When the status is “Paid”
Cannot modify any details. But the users can Mark the Bill as “Cancelled” by checking the option.
Primary Files -
1 → Home Screen. + Search Expense Screen + Expense Results Screen + Edit Expense Bills Screen
Pop → Expense Results Screen
Widgets utilised from the Library
Field | Validation |
---|
API | Params | Description |
---|
Widgets | File Path | Description |
---|
API | Params | Description |
---|
API | Description |
---|
Components File Links |
---|
Fields | Validations |
---|
API End Point | Input Params (Module) | Description |
---|
End Point | Request Method | Request Info |
---|
Widgets | File Path | Description |
---|
Fields | Validations |
---|
API End Point | Input Params (Modules) | Description |
---|
End Point | Request Method | Request Info |
---|
Widgets | File Path | Description |
---|
API | Params | Description |
---|
Widgets | File Path | Description |
---|
API | Params | Description |
---|
Components File Links |
---|
Fields | Validations |
---|
API | Params | Description |
---|
Widgets | File Path | Description |
---|
Vendor Name* |
|
Mobile Number* |
|
Type of Expense* | None |
Amount* |
|
Bill Date* | Before Current Date and after party Bill Date. |
Party Bill Date |
|
Bill Paid | None |
Paid Date | After Bill date and less than current Date. |
Attach Documents | Option to upload a single document, Supported files - PDF, JPEG, PNG (maximum 5MB) |
|
| To get the Expense Type for the Dropdown |
|
| To get the list of vendors in the selected tenant for the suggestion text box - Vendor Name |
|
| To get the Property Type and service Type and billing cycle values for the Dropdown |
|
| To get the values for Locality DropDow |
Billing Year* |
|
Billing Cycle* |
|
|
| To Fetch the Details of
|
|
| "tenantId": {}, "billingPeriod": {} |
Previous Meter Reading* |
|
New Meter Reading* |
|
Meter Reading Date* |
|
|
| To Fetch the Details of
|
|
| "meterReadings": { "currentReading": {}, "currentReadingDate": {}, "billingPeriod": {}, "meterStatus": "Working", "connectionNo": {}, "lastReading": {}, "lastReadingDate": {}, "generateDemand": true, "tenantId": {} } |
|
| To get the Expense Type for the Dropdown |
|
| To get the Property Type and service Type and billing cycle values for the Dropdown |
|
| To get the values for Locality Dropdown |
|
| To Fetch Demand Details |
|
| To Fetch Property Type |
|
| On Demand this API is Made |
Vendor Name* |
|
Mobile Number* |
|
Type of Expense* | None |
Amount* |
|
Bill Date* | Before Current Date and after party Bill Date |
Party Bill Date |
|
Bill Paid | None |
Paid Date | After Bill date and less than current Date |
Attach Documents | Option to upload a single document, Supported files - PDF, JPEG, PNG (maximum 5MB) |
Mark this Bill as Cancelled | None |
|
| To get the Expense Type for the Dropdown |
|
| To get the list of vendors in the selected tenant for the suggestion text box - Vendor Name |
| Text Field |
| Suggestion Text Field |
(Primary File)
(Secondary File) | Searchable Drop down |
| Date Picker |
| Success Screen |
| Button |
| Property Creation Request JSON |
|
(Primary File)
(Secondary File) | Searchable Dropdown |
| Success Screen |
| Button |
| Meter Reading 5 digit boxes field |
(Primary File)
(Secondary File) | Searchable Drop down |
| Date Picker |
| Success Screen |
| Button |
| Text Field |
(Primary File)
(Secondary File) | Searchable Drop down |
| Button |
| Text Field |
| Suggestion Text Field |
(Primary File)
(Secondary File) | Searchable Drop down |
| Date Picker |
| Success Screen |
| Button |
consumer Name* |
|
Gender* | None |
Spouse/Parent’s Name* |
|
Phone Number* |
|
Old Connection No | None |
Category | None |
Sub Category | None |
Door Number | None |
Street Name/Number | None |
Gram Panchayat Name* | None- Disabled |
Propert Type* | None |
Service Type* | None |
Meter Id |
|
Meter Reading |
|
Billing Cycle | None |
Arrears |
|
Advance |
|
Penalty |
|
Owner Mobile Number |
|
Name of the Consumer |
|
Old Connection ID |
|
New Connection ID |
|
consumer Name* |
|
Gender* | None |
Spouse/Parent’s Name* |
|
Phone Number* |
|
Old Connection No | None |
Category | None |
Sub Category | None |
Door Number | None |
Street Name/Number | None |
Gram Panchayat Name* | None- Disabled |
Propert Type* | None |
Service Type* | None |
Meter Id |
|
Meter Reading |
|
Billing Cycle | None |
Arrears |
|
Advance |
|
Penalty |
|
Users are redirected to this screen when they select the GPWSC Dashboard option on the home screen.
Link → {base url}/mgramseva/home/dashboard?tab=1
Users can select the year from the drop-down which contains the list of financial years.
From the text field, users can search for the expenses using Bill ID or vendor name.
Users can see the expense data for paid and pending with respective tabs.
Initially, only 10 expenses are loaded for the selected tab. The pagination dropdown and right arrow click enable the user to load and view more expense records.
Selecting any Bill ID navigates the users to the Expense update screen.
Primary Files:
punjab-mgramseva/Dashboard.dart at develop · egovernments/punjab-mgramseva
punjab-mgramseva/search_expense.dart at develop · egovernments/punjab-mgramseva
End Point | Request Method | Request Info |
---|---|---|
1 → Home Screen. + Dashboard expenditure screen + update expense screen
Pop → Dashboard expenditure screen → Home Screen
2 → Home Screen. + Dashboard expenditure screen + update expense screen + expense update success
Pop → Home Screen
Widgets utilised from the Library
Model →
View →
Controller →
Users are redirected to this screen if they select the GPWSC Dashboard option on the home screen.
Link → {base url}/mgramseva/home/dashboard
Users can select the year from the drop-down which contains the list of the last 5 Financial years, on tap of any year respective months will be displayed.
Users can see the user satisfaction average scores of the selected month.
Users can see the Trend line graph plotted based on both Revenue and Expenditure.
By selecting any Month from the table, users are navigated to the Expenditure and Revenue Dashboard screen.
Users can see the WhatsApp Share button, by tapping on it users can share the Monthly dashboard as a screenshot via WhatsApp.
Primary Files:
punjab-mgramseva/Dashboard.dart at develop · egovernments/punjab-mgramsevaGitHub
punjab-mgramseva/revenue_charts.dart at develop · misdwss/punjab-mgramsevaGitHub
punjab-mgramseva/revenue_dashboard.dart at develop · misdwss/punjab-mgramsevaGitHub
Secondary Files:
punjab-mgramseva/revenue.dart at develop · misdwss/punjab-mgramsevaGitHub
1 → Home Screen + Monthly Dashboard + Revenue Dashboard + update connection screen
Pop → Revenue Dashboard screen → Home Screen
2 → Home Screen + Monthly Dashboard + Expenditure Dashboard + update expenditure screen
Pop → Expenditure Dashboard Screen → Home Screen
3 → Home Screen + Monthly Dashboard + Revenue Dashboard + update connection screen + Update Success
Pop → Home Screen
4 → Home Screen + Monthly Dashboard + Expenditure Dashboard + update expenditure screen + Update Success
Pop → Home Screen
Widgets utilised from the Library
Model →
View →
Controller →
The Revenue Collector uses the Collect Payment screen to collect payment against the demand generated for metered and non-metered connections or any arrears.
Collect Payment card is available on the home screen to the user role having the COLLECTION_OPERATOR
permission.
Link → {base url}/mgramseva/household/details/collectPayment
Users can pay the total due amount that is set by default.
Or, users can also pay an advance amount or partial amount by changing the value in the payment amount field to a higher or lower value. If a partial amount is to be paid, then users need to provide a lower amount than the total due amount. If the advance amount is to be paid, users need to provide a higher amount than the total due amount.
Clicking on Collect Payment opens a confirmation popup to confirm if the amount entered is correct.
Clicking on Confirm navigates the user to the Payment Success screen. The user can download the receipt or share the receipt for the collected amount.
Users can also print mini receipts with the help of Bluetooth thermal printers by selecting the Print mini receipt option.
billing-service/demand/_search
API is used to calculate the advance amount for the current bill. The advance amount is fetched from the logic - if taxHeadMasterCode
is 'WS_ADVANCE_CARRYFORWARD'.
This has two properties - collection amount and tax amount. The tax amount is the advance amount that is added to the system and the collection amount is the amount utilised from the total advance amount. We can get the current advance from the taxAmount - collectionAmount.
ws-calculator/waterCalculator/_getPenaltyDetails
API is used to calculate the Time Penalty amount. The time penalty amount is fetched from the logic - if taxHeadMasterCode
is'WS_TIME_PENALTY'.
The time penalty amount is retrieved from the tax amount property of the latest demand.
The due date is calculated by adding the billexpirtyDate
days to the demand generation date.
If the due date is crossed, billing-service/demand/_search
API gives the Time Penalty applied.
billing-service/demand/_search
API gives the Normal Penalty. The Penalty placeholder in the bill details is visible if it is the first demand and has the taxHeadMasterCode
as 10201.
The arrears are broken into 'BL_(TaxHeadCode)' fetched from Bill Details-->Bill Account Details --> Tax Head Code. The amount of particular arrears is similar to the Bill Details--> Amount from the Fetch Bill API.
(For instance, if there are two bills with tax head codes is 10101 and 10102, then arrears break up is represented as BL_10101(Water Charges) with the corresponding amount and BL_10102(Water Charges-Arrears) with the corresponding amount
).
Note:
The “Penalty” details displayed under the “Bill Details“ section is displayed only if the config flag “Penalty enabled” is set as true. If it is set as false, then the penalty details is not displayed.
The “Advance” details displayed under the “Bill Details“ section is displayed only if the config flag “Advance enabled” is set as true. If it is set as false, then the advance details is not displayed.
Primary Files: https://github.com/misdwss/punjab-mgramseva/blob/master/frontend/mgramseva/lib/screeens/common/collect_payment.dart
1 → Home Screen. + Search Connection Screen + Household Results + Household Details Screen + Collect Payment Screen
Pop → Household Details Screen
Widgets utilised from the Library
Users can provide their feedback by giving a rating. It's an Open URL. It does not require any Authentication user.
Link → {baseURL}mgramseva/feedBack?paymentId={}&connectionno={}&tenantId={}
Users can switch to multiple languages.
After submitting the feedback, users are navigated to the feedback submitted successfully acknowledgement screen.
API | Params | Description |
---|
Users are redirected to this screen once they select the Household Register tile/card on the home screen.
The Household Register tile/card is displayed to the user with COLLECTION_OPERATOR
role.
Link → {base url}/mgramseva/home/householdRegister
From the text field, users can search for connections by using the connection ID.
Users can see all the connection data of the selected tenant till the current date based on their payment status (Ex: All, Paid, Pending).
Initially, only 10 connections are loaded for the selected tab. The pagination drop-down and right arrow click enable users to view more connections.
Selecting any connection ID redirects users to the View Consumer Details screen.
Click on the Download button to get all the household records in PDF format.
Click on Share to share the PDF on Whats App.
Primary Files:
1 → Home Screen. + Household Register Screen
Pop → Household Register Screen→ Home Screen
2 → Home Screen. + Household Register Screen + View Consumer Details Screen
Pop → View Consumer Details Screen → Household Register Screen
Widgets used from the Library
Model →
View →
Controller ->
defined in
Water Connection Request JSON defined in
Widgets | File Path | Description |
---|---|---|
End Point | Request Method | Request Info |
---|---|---|
Widgets | File Path | Description |
---|---|---|
punjab-mgramseva/revenue_charts.dart at develop · misdwss/punjab-mgramsevaGitHubpunjab-mgramseva/revenue_dashboard.dart at develop · misdwss/punjab-mgramsevaGitHub
Fields | Validations |
---|---|
API End Point | Input Params (Modules) | Description |
---|---|---|
Widgets | File Path | Description |
---|---|---|
End Point | Request Method | Request Info |
---|
Widgets | File Path | Description |
---|
Pagination
Pagination
BuildTextField
Text Field
BillsTable
Table
LabelText
Subtitle
dashboard-analytics/dashboard/getChartV2
POST
aggregationRequestDto
: {}
requestDate
: {}
headers
: {}
RequestInfo
: {}
ws-services/wc/_revenueCollectionData
POST
tenantId : {} fromDate : {} toDate : {}
RequestInfo
: {}
echallan-services/eChallan/v1/_chalanCollectionData
POST
tenantId : {} fromDate : {} toDate : {}
RequestInfo
: {}
/filestore/v1/files
POST
tenantId
: {}
module
: {}
/egov-url-shortening/shortener
POST
url
: {}
Pagination
Pagination
BuildTextField
Text Field
BillsTable
Table
LabelText
Subtitle
NestedDatePicker
Nested Date Picker
Partial Amount (If Partial Amount is selected
)
r'^[0-9]+$' , Can not be 0
Payment Method
Defaulted to Cash
egov-mdms-service/v1/_search
[{"moduleName":"BillingService","masterDetails":[{"name":"BusinessService","filter":"[?(@.code=='WS')]"}]}]
To get the billGeneiURL, Calculation of Water services and collectionModesNotAllowed
billing-service/bill/v2/_fetchbill
consumerCode : {}
businessService : WS
tenantId : {}
To fetch the bills of the connection/Consumer
billing-service/demand/_search
consumerCode, businessService, tenantId
To Fetch Demand Details
ws-calculator/waterCalculator/_getPenaltyDetails
{ "tenantId": "", "consumerCodes": "", "isGetPenaltyEstimate": "true"},
{
"GetBillCriteria":
{"tenantId": "", "isGetPenaltyEstimate": true, "consumerCodes": [""] }
}
To get the Time Penalty Amount
BuildTextField
Text Field
BottomButtonBar
Button
RadioButtonField
Radio Buttons for options
ConfirmationPopUp
Dialog box to confirm and proceed to next step
CustomDetailsCard
Secondary theme color Card to display Details Eg. Penalty Card
/ | POST |
|
| POST |
|
| POST |
|
| Pagination |
| Text Field |
| Table |
| Title |
| Subtitle |
/echallan-services/eChallan/v1/_create
POST
tenantId : {} offset ; {} limit : {} fromDate : {} toDate : {} vendorName : {} challanNo : {} toDate : {} freeSearch : {} status : {} isBillCount : {}
sortOrder ; {} sortBy : {} isBillPaid : {}
|
| API to submit user feedback |