Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
To ensure proper disposal of waste, the Swachh Bharat Mission has approved the building of deep row entrenchments for the disposal of sludge for up-to three years. With this mandate, there are approximately 10k+ deep row entrenchments that now exist, and are usually unmanned. To confirm disposal to these legal unmanned dumping sites, there is a need for automated verification of disposal at these sites.
India’s FSM ecosystem is made of highly interdependent parts, across the value chain of generation, containment, transport, treatment, and disposal/reuse. This means that there are different actors at each stage of the value chain whose behaviours and business models affect how well the next stage functions, creating a complex mesh of constraints that affect the effective functioning of the sanitation service delivery.
While the linear value chain gives a lucid frame to understand the ideal flow of faecal sludge, there are various points of friction between stakeholders that currently undermine the effectiveness of the sanitation value chain. Illegal dumping remains a challenge in regard to the waste value chain.
We want to improve the verifiability of the transport information on faecal sludge through the implementation of vehicle tracking to drive the following benefits:
Improved verification: The service enhances the verification process of the faecal sludge disposal. By accurately tracking the movement of vehicles carrying the sludge, it ensures that the sludge reaches its designated disposal site, providing transparency and accountability in the disposal process.
Removal of manual intervention to confirm disposal: The implementation of the vehicle tracking service removes the need for manual intervention to confirm the disposal of faecal sludge. Traditionally, manual methods involve physical confirmation by the treatment plant operator.
Identification of Illegal dumping: By closely monitoring the transportation of faecal sludge from the point of containment to disposal, the vehicle tracking service helps in minimising disposal in illegal sites. It facilitates identifying potential inefficiencies, route deviations, or incidents, allowing for prompt corrective actions.
The vehicle tracking service within DIGIT aims to capture real-time spatial data by tracking vehicles from their starting coordinates (longitude and latitude) to their destination point. This service helps in enhancing the credibility of service delivery by providing a reliable means to track and verify the transportation process. The vehicle tracking service can be seamlessly integrated with various service delivery operations, offering the flexibility to configure it for different purposes.
Here are the articles in this section:
This release includes a new feature called vehicle tracking, which has been developed as part of a community project. It aims to capture real-time spatial data by tracking vehicles from their starting coordinates (longitude and latitude) to their destination point. Additionally, it enables an urban local body (ULB) to designate illegal dumping spots, and monitor corresponding alerts
Vehicle Tracking
Feature | Description |
---|---|
A user cannot delete the added Illegal dumping site.
A user cannot edit the added illegal dumping site.
A driver cannot cancel/reject the trip.
Click here to view the details.
This section illustrates the steps for drivers at the urban local body (ULB) level.
Drivers can:
View the trips.
Start and end the trips.
Log in to the application using the user Id and the password provided by the ULB along with selecting the city.
In case a user has forgotten the password, he/she can click the "Forgot Password?" hyperlink, which will display a message instructing users to get in touch with the ULB.
Driver’s home page and inbox
After successful login, the driver's inbox will show both assigned trips and completed ones.
Home: This option prominently displays the assigned trips, serving as the central hub for trip management.
Language: Drivers have the flexibility to select their preferred language for a more convenient experience.
Logout: This option allows the driver to safely exit the system.
Upon successful login, the driver can see all the trips assigned through the ULB.
Trip search: This allows the driver to search the trip by name or phone number.
In progress tab: This section presents trips that are pending initiation and assignment.
Completed tab: Here, the driver can view a compiled list of completed trips.
Upon clicking the "View Details" hyperlink, the driver can see the applicant's information, including both the pickup location and the drop-off point.
The driver can click on “Start Trip” button. A pop-up will appear with a warning message “Start the trip only after reaching the pickup location. Have you reached the applicant location?”
When the driver clicks on 'Yes', a toast message will emerge, confirming the successful initiation of the trip: "Trip Started Successfully."
Upon successful completion of the desludging process in the FSTP, the driver can click on the "End Trip" button to conclude the request.
Upon selecting the "End Trip" button, the system shows a warning message: "Are you sure you want to end the trip for Locality 1...?. When the driver clicks on 'Yes', the trip reaches its completion status.
Urban Local Bodies (ULB) and other government agencies provide citizen centric services. Some of these services involve/require movement of people or assets(eg : vehicle, equipment etc). Below is a sample list of such services:
Pickup of Fecal sludge from a citizen’s premises and offloading at a designated place
Garbage pickup truck visits multiple collection points and deposits the load at a designated waste segregation yard
ULB assigns a drinking water tanker to supply water to schools in a particular area. The water tanker visits the assigned schools and supplies the required amount of water.
Fumigation to contain mosquitoes spread involves an operator moving in a 2-wheeler from one street to another.
Medicines have to be moved from district headquarters to mandal level villages.
Key challenges in the above scenarios are :
Ensuring the vehicle / person took the designated route
Checking if all pickup/dropoff locations are visited
Monitoring if a restricted location is visited
Tracking of live location
Challenges listed above are solved with a new tracking service component. This document captures the technical design of such a tracking service. For functional use cases related to a specific citizen service (Fecal Sludge Management), please refer to .
Tech design for Tracking service addresses following key design goals. These goals are derived from DIGIT’s view of how a service should evolve and also the constraints arising from the usage of client side application.
Client side devices may have network bandwidth constraints, hence the communication between client and Tracking service should be optimized on data.
Tracking service should be generic enough to handle any kind of citizen services that involve movement of assets or service delivery by an operator on move. Type of service being rendered decides the monitoring rules (alerts, notifications) that are applied to the trip.
Within the DIGIT platform, event based models processing should be used so that newer applications can be plugged in by consuming the event messages.
Below is the list of entities, actors and tech components involved in tracking service.
Entities
Point of Interest (POI) - Latitude, longitude coordinates of various locations. Types of locations include citizen pickup point, intermediate points, destination location, polygons to identify larger areas and tags to identify anomalies (like illegal dump yards).
Designated route - A sequence of POIs which indicate the route an operator should take.
Trip - Created for each service delivery involving an operator. It is either created based on request or through an automatic scheduler. Trip is made up of operator details and designated routes. Actual route taken by the operator is also associated with the trip.
Actors
Supervisor - Individual is responsible for making configuration level changes. These can be two separate roles or just one
Operator - Travels from source to destination of a trip as part of service delivery.
System - Tracking service has the intelligence to take some actions on its own.
Tech components
Mobile App - User facing application to manage routes, trips and POIs
Tracking service - Stores entities, applies automated rules and generates alerts.
Low level design
Tracking service
Controller classes
ConfigController, PoiController, RouteController, TripController
Service classes
ConfigService, POIService, RouteService, TripAlertService, TripService
Data access
ConfigDao, PoiDao, RouteDao, TripAlertDao, TripDao, TripProgressDao
Service access
POISao, TripSao
Model
FsmApplication, FsmVehicleTrip, TripAlert
Trip monitoring module
Monitoring logic
Trip data store
Database schema
Rule management schema
3.4.6 Use case to API mapping (with FSM integration)
Vehicle tracking system (VTS) and FMS are the two systems that provide these APIs
Driver use cases (mobile app)
Appendix A - REST APIs for client applications
Note -
(i) Additional attributes will be added to cater to integration with other entities within the DIGIT ecosystem. For example, Tenant Id, User Id, ULB id/name, auth token etc
(ii) All API requests will include timestamps and other information necessary for auditing.
a.1. /poi/_create (Implemented)
Request message
Response message
a.2. /poi/_update (Implemented)
Request
Response
a.3. /poi/_search
** Additional search filters will be added to restrict the results to ULB, user role and other related restrictions.
Request
Response
An array of below objects will be returned for the POIs matching with search criteria.
b.1. /designated_route/_create
Request
Response message
b.2. /designated_route/_update
Request
Response
b.3. /designated_route/_search
** Additional search filters will be added to restrict the results to ULB, user role and other related restrictions.
Request
Response
An array of below objects will be returned for the designated routes matching with search criteria.
c.1. /trip/_create (Implemented)
Request
Response
c.2. /trip/_update
Request
Response
c.3. /trip/_progress
Request
Response
c.4. /trip/_search
** Additional search filters will be added to restrict the results to ULB, user role and other related restrictions.
Request
Response
Array of trips is returned
c.5. /trip/_search/{tripId} (Implemented)
Request
Event type = LocationUpdate
Event data
{
“latitude” :
“longitude” :
“update_time” :
“trip_id” :
}
Event type = TripAnomaly
Event data
{
“anomaly_poi_id” :
“duration_at_poi” :
“update_time” :
“trip_id” :
}
Event type = TripComplete
Event data
{
“update_time” :
“completion_time” :
“trip_id” :
}
Mobile app
FSM portal
Assigning drivers to the trips
The ULB personnel can assign the driver when assigning the vehicle for a particular trip.
Geo-location
Employee form has been enhanced to add geo-location.
Enhancement to application by introducing end trip
The vehicle tracking service can be leveraged to automate certain aspects of the disposal process.
System Verified : The trip is closed automatically if the vehicle is near the geo-fenced area of the FSTP. In this case, the end type is updated as System Verified .
FSTP Verified: If the driver concludes the trip at a location that is not necessarily close to the FSTP, the FSTP staff will need to manually finalise the trip. In this case, the end type is updated as FSTP Verified.
4. A standalone mobile application for the drivers
Drivers will be able to see the trips assigned to them with start and end trips provided. With this functionality, the driver can start the trip when he/she reaches the citizen’s location, provide service, and end the trip when he/she reaches the FSTP.
5. Defining Illegal Dumping Spots
The vehicle tracking service can help the ULB personnel to identify and input these locations into the system . If a driver stops at one of these spots for an extended period , the system triggers an alert to notify the ULB of potential illegal dumping activity.
6. Alerts
On events where local authorities should be informed:
Longer waiting of vehicles near farm lands, water sources, etc., could be a possible indication of the illegal disposal.
The popular open disposal spots as generally defined as prohibited zones and any desludging vehicles around those areas are also an indication of open disposal.
Category
Services
GIT TAGS
Docker artifact ID
Remarks
Tracking Service
TrackingService
egovio/trackingservice:latest-final
FSM v1.4
FSM
fsm:v1.4.0-4ca02ac299-75
FSM calculator
fsm-calculator:v1.2.0-01dd6c9b3a-14
Vehicle
vehicle:v1.3.0-5682061fd3-18
Vendor
vendor-db:v1.3.0-ece6fa00d1-35
Digit-UI FSM v1.4
DIGIT UI
sanitation-ui:v1.5.0-99fe703c60-449
DIGIT dependency builds
The FSM release is bundled with the DIGIT 2.8 release. Hence, the release builds for DIGIT 2.8 release can be accessed here.
Configs v1.4
MDMS v1.4
Localisation v1.4
Devops v1.4
Name | Type | Mandatory? | Comments |
locationName | Text | Yes |
|
locationDetails | Array | Yes | List of locations that are part of a POI. This can be a single LatLong or group of LatLongs (line, polygon) |
locationDetails -> lattitude | Decimal | Yes |
|
locationDetails -> longitude | Decimal | Yes |
|
alert | Array of Strings | No | One or more alert codes can be mapped to the point of interest. This is optional and can be set only in cases where the POI is related to some illegal dump yard etc |
userId | Text | Yes | DIGIT user id of the individual performing the create operation |
Name | Type | Mandatory? | Comments |
responseCode | Text | Yes |
|
responseMessage | Text | Yes |
|
id | Text | No | GUID of the POI created on success |
Name | Type | Mandatory? | Comments |
id | Text | Yes | POI to be updated |
status | Text | No | Can be set to active or Inactive |
locationName | Text | No |
|
userId | Text | No | DIGIT user id of the individual performing the create operation |
Name | Type | Mandatory? | Comments |
responseCode | Integer | Yes |
|
responseMessage | Text | Yes |
|
id | Text | No | GUID of the POI updated |
Name | Type | Mandatory? | Comments |
poi_id | Text | No |
|
poi_status | Text | No |
|
location_name | Text | No |
|
location_lattitude | Decimal | No |
|
location_longitude | Decimal | No |
|
geofence_radius | Integer | No |
|
illegal_dumpyard | Boolean | No |
|
Name | Type | Mandatory? | Comments |
poi_id | Text | Yes |
|
poi_status | Text | Yes |
|
location_name | Text | Yes |
|
location_details | Array | Yes |
|
location_details -> location_lattitude | Decimal | Yes |
|
location_details -> location_longitude | Decimal | Yes |
|
location_details -> geofence_radius | Integer | Yes |
|
location_details -> illegal_dumpyard | Boolean | Yes |
|
Name | Type | Mandatory? | Comments |
designated_route_name | Text | Yes |
|
designated_route_status | Boolean | No | This will be used to inactivate a route when needed
Default value is true. |
start_poi_id | Text | Yes |
|
intermediate_poi_id | Array <Text> | No | Defaults to null |
end_poi_id | Text | Yes |
|
designated_route_traversal_time | Integer | No | Estimated time to complete a trip on this route.
Default value is 0. |
Name | Type | Mandatory? | Comments |
response_code | Numeric | Yes |
|
response_message | Text | Yes |
|
designated_route_id | Text | No | GUID of the Designated route created on success |
Name | Type | Mandatory? | Comments |
designated_route_id | Text | Yes |
|
designated_route_name | Text | No |
|
designated_route_status | Boolean | No |
|
start_poi_id | Text | No |
|
intermediate_poi_id | Array <Text> | No |
|
end_poi_id | Text | No |
|
designated_route_traversal_time | Integer | No |
|
Name | Type | Mandatory? | Comments |
response_code | Integer | Yes |
|
response_message | Text | Yes |
|
designated_route_id | Text | No | GUID of the Designated route updated |
Name | Type | Mandatory? | Comments |
designated_route_id | Text | No |
|
designated_route_name | Text | No |
|
designated_route_status | Boolean | No |
|
start_poi_code | Text | No |
|
intermediate_poi_code | Text | No |
|
end_poi_code | Text | No |
|
start_poi_name | Text | No |
|
intermediate_poi_name | Text | No |
|
end_poi_name | Text | No |
|
Name | Type | Mandatory? | Comments |
designated_route_id | Text | Yes |
|
designated_route_name | Text | Yes |
|
designated_route_status | Boolean | Yes |
|
start_poi_code | Text | Yes |
|
intermediate_poi_codes | Array | No |
|
end_poi_code | Text | Yes |
|
start_poi_name | Text | Yes |
|
intermediate_poi_names | Array | No |
|
end_poi_name | Text | Yes |
|
designated_route_traversal_time | Integer | No |
|
Name | Type | Mandatory | Comments |
routeId | Text | Yes | Predefined route id, which has the list of POIs for that the trip should follow |
serviceCode | Text | Yes | Type of service the trip is performing |
status | Text | Yes | Client passes “created” value initially |
operator | Object |
|
|
operator -> id | Text | No | DIGIT user id of the operator delivering this service |
operator -> name | Text | No |
|
operator -> email | Text | No |
|
operator -> contactNumber | Text | No |
|
operator -> vehicleNumber | Text | No |
|
plannedStartTime | Text | No |
|
plannedEndTime | Text | No |
|
userId | Text | Yes | DIGIT user id of the person performing this create activity |
Name | Type | Mandatory? | Comments |
responseCode | Text | Yes |
|
responseMessage | Text | Yes |
|
id | Text | No | GUID of the trip created on success |
Name | Type | Mandatory | Comments |
trip_id | Text | Yes |
|
trip_designated_route_id | Text | No |
|
trip_expected_start_time | Text | No |
|
trip_expected_end_time | Text | No |
|
trip_current_status | Text | Yes |
|
Name | Type | Mandatory? | Comments |
response_code | Integer | Yes |
|
response_message | Text | Yes |
|
Name | Type | Mandatory | Comments |
trip_id | Text | Yes |
|
location_details | Array | Yes | Array is used to support bulk updates in case the device comes online after being offline during a trip. |
location_details -> location_lattitude | Decimal | Yes |
|
location_details -> location_longitude | Decimal | Yes |
|
location_details -> progress_timestamp | Text | Yes |
|
Name | Type | Mandatory? | Comments |
response_code | Integer | Yes |
|
response_message | Text | Yes |
|
Name | Type | Mandatory | Comments |
operatorId | Text | No | DIGIT id of the person to whom a trip is assigned |
tripName | Text | No | Partial name search is supported |
status | Text | No |
|
userId | Text | No | DIGIT id of the person who created the trip |
Name | Type | Mandatory? | Comments |
id | Text | Yes | Trip id |
routeId | Text | No |
|
serviceCode | Text | No |
|
status | Text | No |
|
operator | Object | No |
|
operator -> id | Text | No | DIGIT user id of the operator delivering this service |
operator -> name | Text | No |
|
operator -> email | Text | No |
|
operator -> contactNumber | Text | No |
|
operator -> vehicleNumber | Text | No |
|
plannedStartTime | Text | No |
|
plannedEndTime | Text | No |
|
userId | Text | No | DIGIT user id of the person performing this create activity |
actualStartTime | Text | No |
|
actualEndTime | Text | No |
|
locationAlerts | Text | No | Alerts are assigned by backend service, in case the operator takes a path that triggers an alert |
Name | Type | Mandatory | Comments |
id | Text | Yes | Trip id to be searched for |
Use case | VTS database fields |
User login functionality | VTS is not used. DIGIT user login API is invoked |
List of trips assigned to driver | VTS API is called but all data is retrieved from FSM vehicle trip APIs.
Additional details stored in VTS db: Trip.status Trip.id Trip.routeId Route.Id Route.startPoi Route.endPoi |
Trip details | Trip details are fetched from FSM vehicle trip API. VTS does not store trip details in its db |
Trip progress once vehicle moves | VTS db stores trip progress information: TripProgress.id TripProgress.tripId TripProgress.progressReportedTime TripProgress.userId TripProgress.positionPoint TripProgress.progressTime
|
Illegal dumpyard creation | Illegal dumpyard details are stored in VTS db: POI.id POI.locatioName POI.type POI.positionPoint POI.positionLine POI.positionPolygon POI.alert |
Use case | VTS database fields |
Trip details | Fields in VTS db: Trip.id Trip.status Trip.actualStartTime Trip.actualEndTime TripAlert.id TripAlert.tripId TripAlert.alert TripAlert.alertDateTime |
Trip actual route details | Fields in VTS db:
TripProgress.id TripProgress.tripId TripProgress.progressReportedTime TripProgress.userId TripProgress.positionPoint TripProgress.progressTime
|
Here are the articles in this section
PostGIS is an extension to PostgreSQL for storing and managing spatial information. To learn more about PostGIS, see PostGIS.net
Tracking Service uses spacila data for tracking and storing geo coordinates and analysing the POI data. To make tracking service function properly, it requires support of the PostGIS extension on Postgres Database.
Category | Services | GIT TAGS | Docker Artifact ID | Remarks |
Citizen |
| citizen:v1.8.0-b078fa041d-97 |
|
| Employee |
| employee:v1.8.0-2ac8314b2f-116 |
|
| DSS dashboard |
| dss-dashboard:v1.8.0-0d70d60e63-53 |
|
Encryption |
| egov-enc-service:v1.1.3-44558a0-3 |
|
| xState chatbot |
| xstate-chatbot:v1.1.1-44558a0-2 |
|
| Searcher |
| egov-searcher:v1.1.5-72f8a8f87b-16 |
|
| Payment gateway |
| egov-pg-service:v1.2.3-ffbb7a6-4 |
|
| Filestore |
| egov-filestore-db:v1.3.0-72d8393-4 |
|
| Zuul - API gateway |
| zuul:v1.3.1-76bf31f-5 |
|
| Mail notification |
| egov-notification-mail:v1.2.0-9fde481-3 |
|
| SMS notification |
| egov-notification-sms:v1.1.3-48a03ad7bb-10 |
|
| Localisation |
| egov-notification-sms:v1.2.0-9fde481-3 |
|
| Persist |
| egov-persister:v1.1.5-3371bc2-5 |
|
| ID gen |
| egov-idgen:v1.2.3-44558a0-3 |
|
| User |
| egov-user:v1.2.8-9fde481-19 |
|
| User chatbot |
| egov-user-chatbot:v1.3.0-6cfa52c1f9-1 |
|
| MDMS |
| egov-mdms-service:v1.3.2-44558a0-3 |
|
| URL shortening |
| egov-url-shortening:v1.1.2-1715164454-3 |
|
| Indexer |
| egov-indexer:v1.1.7-44558a0-3 |
|
| Report |
| report:v1.3.4-96b24b0d72-16 |
|
| Workflow |
| egov-workflow-v2:v1.3.0-fbea797-11 |
|
| PDF generator | pdf-service:v1.1.6-96b24b0d72-22 |
|
| Chatbot |
| chatbot:v1.1.6-72f8a8f87b-8 | Deprecated |
| Access control |
| egov-accesscontrol:v1.1.3-72f8a8f87b-24 |
|
| Location |
| egov-location:v1.1.5-fbea797-5 |
|
| OTP |
| egov-otp:v1.2.3-9fde481-3 |
|
| User OTP |
| user-otp:v1.2.0-9fde481-8 |
|
| NLP engine |
| nlp-engine:v1.0.0-fbea6fba-21 | No changes in the current release. |
| Egov document-Uploader |
| egov-document-uploader:v1.1.1-6cfa52c1f9-4 |
|
| National dshboard ingest |
| national-dashboard-ingest:v1.0.1-44558a0-3 | New service |
| National dashboard Kafka pipeline |
| national-dashboard-kafka-pipeline:v1.0.1-44558a0-3 | New service |
Apportion |
| egov-apportion-service:v1.1.5-72f8a8f87b-5 |
|
| Collection |
| collection-services:v1.1.6-c856353983-29 |
|
| Billing |
| billing-service:v1.3.4-72f8a8f87b-39 |
|
| HRMS |
| egov-hrms-db:v1.2.6-116d8db-9 |
|
| Dashboard analytics |
| dashboard-analytics:v1.1.7-1ffb5fa2fd-49 |
|
| Dashboard ingest |
| dashboard-ingest:v1.1.4-72f8a8f87b-10 |
|
| EGF instrument |
| egf-instrument:v1.1.4-72f8a8f87b-4 |
|
| EGF master |
| egf-master:v1.1.3-72f8a8f87b-15 |
|
| Finance collection Voucher consumer |
| finance-collections-voucher-consumer:v1.1.6-96b24b0d72-18 |
|
Individual |
|
|
| User event |
| egov-user-event:v1.2.0-c1e1e8ce24-21 |
|
| Inbox |
| inbox:v1.3.1-733167672c-14 |
|
Custom consumer |
| egov-custom-consumer:v1.1.1-72f8a8f87b-3 |
|
|
| egov-pdf:v1.1.2-344ffc814a-37 |
|
eDCR |
| egov-edcr:v2.1.1-1815083c26-25 |
|
Finance |
| egov-finance:v3.0.2-0d0a8db8ff-28 |
|
Overview
Urban Local Bodies (ULB) and other government agencies provide citizen centric services. Some of these services involve/require movement of people or assets(eg : vehicle, equipment etc). Below is a sample list of such services:
Pickup of Fecal sludge from a citizen’s premises and offloading at a designated place
Garbage pickup truck visits multiple collection points and deposits the load at a designated waste segregation yard
ULB assigns a drinking water tanker to supply water to schools in a particular area. The water tanker visits the assigned schools and supplies the required amount of water.
Fumigation to contain mosquitoes spread involves an operator moving in a 2-wheeler from one street to another.
Medicines have to be moved from district headquarters to mandal level villages.
Key challenges in the above scenarios are :
Ensuring the vehicle / person took the designated route
Checking if all pickup/dropoff locations are visited
Monitoring if a restricted location is visited
Tracking of live location
Challenges listed above are solved with a new tracking service component. This document captures the technical design of such a tracking service. For functional use cases related to a specific citizen service (Fecal Sludge Management), please refer to this doc.
Tech design for Tracking service addresses following key design goals. These goals are derived from DIGIT’s view of how a service should evolve and also the constraints arising from the usage of client side application.
Client side devices may have network bandwidth constraints, hence the communication between client and Tracking service should be optimized on data.
Tracking service should be generic enough to handle any kind of citizen services that involve movement of assets or service delivery by an operator on move. Type of service being rendered decides the monitoring rules (alerts, notifications) that are applied to the trip.
Within the DIGIT platform, event based models processing should be used so that newer applications can be plugged in by consuming the event messages.
Below is the list of entities, actors and tech components involved in tracking service.
Entities
Point of Interest (POI) - Latitude, longitude coordinates of various locations. Types of locations include citizen pickup point, intermediate points, destination location, polygons to identify larger areas and tags to identify anomalies (like illegal dump yards).
Designated route - A sequence of POIs which indicate the route an operator should take.
Trip - Created for each service delivery involving an operator. It is either created based on request or through an automatic scheduler. Trip is made up of operator details and designated routes. Actual route taken by the operator is also associated with the trip.
Actors
Supervisor - Individual is responsible for making configuration level changes. These can be two separate roles or just one
Operator - Travels from source to destination of a trip as part of service delivery.
System - Tracking service has the intelligence to take some actions on its own.
Tech components
Mobile App - User facing application to manage routes, trips and POIs
Tracking service - Stores entities, applies automated rules and generates alerts.
Tracking service has APIs to manage the 3 core entities - Point of interest (POI), Designated route and Trip. Basic details of these APIs are mentioned below.
Following are the list of APIs this service will support. For details of the request and response message structure, please refer to Appendix A in this document.
Point of interest
/poi/_create
/poi/_update
/poi/_search
Designated route
/designated_route/_create
/designated_route/_update
/designated_route/_search
Trip
/trip/_create
/trip/_update
/trip/_progress
/trip/_search
Event entity has a generic format. Structure of the event is listed below.
Service design
Tracking service [New]
A gateway service for client endpoints. POI, Designated routes and Trips are managed by this service
Location updates received from client are published as events in a standard format
Trip monitoring module [New]
Consumes the location update events received from client (published by Tracking service)
Persists the location data, identifies anomalies, marks trips as complete based on rules
Events that should be notified are published by this service
Notification module [New]
Consumes the notification events
Fetches contact information from DIGIT User Service and sends SMS in predefined format
Tracking data store [New]
Data store for POIs, routes, trips, location updates and notifications
DIGIT user service [Existing]
Provides contact information of the user to which notification will have to be sent
User can be a supervisor or operator
To ensure proper disposal of waste, the Swachh Bharat Mission has approved the building of deep row entrenchments for the disposal of sludge for upto three years. With this mandate, there are approximately 10k+ deep row entrenchments that now exist, and are usually unmanned. To confirm disposal to these legal unmanned dumping sites, there is a need for automated verification of disposal at these sites.
India’s FSM ecosystem is made of highly interdependent parts, across the value chain of generation, containment, transport, treatment, and disposal/reuse. This means that there are different actors at each stage of the value chain whose behaviours and business models affect how well the next stage functions, creating a complex mesh of constraints that affect the effective functioning of the sanitation service delivery.
While the linear value chain gives a lucid frame to understand the ideal flow of faecal sludge, there are various points of friction between stakeholders that currently undermine the effectiveness of the sanitation value chain. Illegal dumping remains a challenge in regard to the waste value chain.
We want to improve the verifiability of the transport information on faecal sludge through the implementation of vehicle tracking to drive the following benefits:
Improved verification: The service enhances the verification process of the faecal sludge disposal. By accurately tracking the movement of vehicles carrying the sludge, it ensures that the sludge reaches its designated disposal site, providing transparency and accountability in the disposal process.
Removal of manual intervention to confirm disposal: The implementation of the vehicle tracking service removes the need for manual intervention to confirm the disposal of faecal sludge. Traditionally, manual methods involve physical confirmation by the treatment plant operator.
Identification of Illegal dumping: By closely monitoring the transportation of faecal sludge from the point of containment to disposal, the vehicle tracking service helps in minimising disposal in illegal sites. It facilitates identifying potential inefficiencies, route deviations, or incidents, allowing for prompt corrective actions.
The vehicle tracking service within DIGIT aims to capture real-time spatial data by tracking vehicles from their starting coordinates (longitude and latitude) to their destination point. This service helps in enhancing the credibility of service delivery by providing a reliable means to track and verify the transportation process. The vehicle tracking service can be seamlessly integrated with various service delivery operations, offering the flexibility to configure it for different purposes.
Future Use Cases Apart from the benefits mentioned above, the vehicle tracking functionality can be used to implement the following use cases in the future:
Proximity-based discovery: By helping service providers or customers identify the nearest available vehicles for transportation or disposal purposes.
Distance-based pricing: Leveraging the tracking data, the vehicle tracking service can support distance-based pricing models.
Understanding capacity and capacity utilisation of vehicles: By analysing the metrics around transportation such as average trip time, average distance traveled, number of trips completed per day, idle time, etc., one can arrive at the utilised and available capacity for transportation. Further, these can be used to arrive at the profitability of vendors in transportation.
Assigning drivers to the trips: The ULB personnel can assign a driver when assigning the vehicle for a particular trip.
Employee form has been enhanced to add geo-location.
A standalone mobile application for the drivers: Drivers will be able to see the trips assigned to them with start and end trips provided. With this functionality, the driver can start the trip after reaching the citizen’s location, provide service, and end the trip after reaching the FSTP.
Enhancement to the application by introducing end trip: The vehicle tracking service can be leveraged to automate certain aspects of the disposal process.
System Verified: The trip is closed automatically if the vehicle is near the geo-fenced area of the FSTP. In this case, the end type is updated as system verified.
FSTP Verified: If the driver concludes the trip at a location that is not necessarily close to the FSTP, the FSTP staff will need to manually finalise the trip. In this case, the end type is updated as FSTP verified.
Defining illegal dumping spots: The vehicle tracking service can help the ULB personnel to identify and input these locations into the system. If a driver stops at one of these spots for an extended period , the system triggers an alert to notify the ULB of potential illegal dumping activity.
Alerts: On events where local authorities should be informed:
- Longer waiting of vehicles near farm lands, water sources, etc., could be a possible indication of illegal disposal.
- The popular open disposal spots as generally defined as prohibited zones and any desludging vehicles around those areas are also an indication of open disposal.
As per the understanding on the field, collection and transportation services are provided by the sanitation workers (usually a driver plus helper). Given that the driver is operating the vehicle, it makes sense for us to add an additional actor in the workflow:
Current workflow (Without vehicle tracking) :
Proposed workflow (With vehicle tracking) :
Assign Driver
The driver will be assigned to a request.
Start and End Trip
Trips will be started and ended by the driver using a mobile app.
See flow diagram here View Trip Details ULBs can currently view the applications. This needs to be enhanced with the following:
Trip details need to be viewable along with status and route of the trip.
Alerts need to be viewable if there has been an illegal stoppage on the trip.
The ULB can deep-dive and view the route taken and the number of stops by the vehicle.
Mark Illegal Dumping Zones
Edit Illegal Dumping Zones
Capturing the geo-locations with timestamps of the driver at configurable frequency thresholds.
Creating geo-boundaries at particular spots earmarked as illegal dumping spots.
Defining anomalies based on rules, and sending alerts to the ULB employee when an anomaly is detected.
ULB employee: To track the locations and cross-verify the alerts received.
Driver: Responsible for pickup and completing disposal, and ensuring proper sludge disposal.
Driver
After the driver is assigned, they proceed to the pickup location. Before providing any services, the driver must initiate the trip by selecting the 'Start' option. After the service is complete, and the disposal is done, the driver can choose to 'End' the trip. If the end trip is within the geo-fenced area of an FSTP, then the trip automatically gets closed. However, if the driver tries to end the trip outside the FSTP geo-fence area, the FSTPO has to confirm that the disposal is successful. Simultaneously, the DSO gets a notification that the respective trip has ended.
In cases where the actions are performed offline, the system records the timestamps of both the 'Start' and 'End' trips, and the transportation to ensure accurate tracking and documentation.
Tracking Transportation
By utilising the tracking feature, assigned vehicles can be monitored for respective applications. If a vehicle halts near any marked illegal dumping sites on the map or for a duration exceeding the configurable threshold, an alert is promptly sent to the DSO, ensuring timely awareness of potential unauthorised dumping activities.
Notifications and alerts: The tracking system is configured to generate alerts within the application.
A new "Trip Details" table is introduced which displays the number of alerts generated during the trip, the trips start and end times, the end type, and offers a link to view the route taken by the driver.
Upon initiating the trip, the driver's geo-locations are continuously recorded at a configurable threshold, enabling the DSO or a ULB employee to track each vehicle's movements. If the driver halts at spots apart from the disposal site for a duration exceeding a configurable threshold, the DSO receives an alert. The system records alerts in real-time when the driver is online, while geo-locations are updated once the driver reconnects, generating corresponding alerts for offline periods.
The ULB has a centralised inbox to effectively monitor and track the drivers' trips. The inbox shows the alerts raised per trip respective to the application.
The application details page needs to be enhanced for the following:
Geo-location to be added on the employee form.
Display driver details.
View route details: This shows the ULB employee a map showing route taken by driver and points of stoppages along with time of stoppage.
Display a map view showing the stops (exceeding a certain time) made during the trip.
Vehicle route: Utilise the tracked geo-location coordinates to generate and display the vehicle's route on the map with respect to each trip.
Illegal dumping zones:
ULB defined: ULB personnel/admin can define illegal dumping zones.
Clicking on illegal dumping sites on menu options will allow users to see the illegal dumping sites in the ULB. If no sites are present, then user will only see the option to “Add new site”.
Clicking on “Add new site” will allow users to create a new illegal dumping site as an anomaly object.
User will need to add following details to create an anomaly object:
Site name - Name of the site (For example, Dhenkanal Lake).
Location category - The type of geographical body (For example, Lake/Road/Highway/Bridge/Old building/Open field/Rainwater pipe, etc.).
Buffer area (in metres) (Distance from these coordinates which can considered an anomaly).
Map UI
For Polygon - (For example, a pond):
Upto 20 points are allowed on the screen.
Each point will have a cross icon.
If two points are already added. User has to remove one point to add a new point.
If a buffer is added. Show a corresponding figure of ‘X’ metres buffer perpendicular to line in all directions, with highlighted colour (even before saving), so that the user is clearly aware of the boundaries he/she is making.
Polygon should be a closed figure.
Once saved, the coordinates are saved in the anomaly object.
To edit or make changes to an illegal dumping site click on an anomaly object from the list of objects in the menu.
In the next screen, click on actions. Actions will open edit and delete.
Clicking on edit will make the menu editable (until then it will be non-editable).
Users are allowed to edit all options. There is no restriction.
Buttons will be shown as “Save Changes” and 'Cancel'.
Clicking on save changes will save all the changes made to the anomaly object.
Clicking on cancel will take the user to the previous screen.
Alerts on Illegal dumping:
If any vehicle is found stopping in these locations, including buffer areas, for more than 'X' minutes, should send an alert immediately. Who to send:
ULB employee - He/she will receive the alerts raised against the trip ID.
Alerts should be generated for a ULB employee when vehicles are stationary near the marked illegal dumping spots for a configurable duration.
The system should provide the ability for the DSO to add illegal dumping zones, allowing flexibility in response to changing circumstances.
There is no other activity tracking of disposal vehicles other than the duration between the start and end trips.
No verification of which vehicle is being tracked. For example, if the mobile of the disposal truck driver is given to a two-wheeler driver, then the geo-location of the two-wheeler driver is recorded.
No verification of the disposal truck driver for example the registered driver and the actual disposal driver might be different.
Capturing the location of the vehicle at the disposal site.
Verification of whether the vehicle location is within the geo-fenced boundary of the disposal site.
Automated confirmation of the disposal based on positive verification.
Admin portal: Geo-fencing data need to be added at the backend in the MDMS of disposal spots.
Driver: Responsible for completing disposal requests and ensuring proper sludge disposal.
The vehicle tracking service in FSM helps to automate the disposal process requests in legal dumping sites. By utilising geo-tagging and proximity data, the system can verify if the driver has disposed off waste at the designated disposal spot.
Admin functionality (no UI required):
Allows administrators to view, add, delete, and modify the MDMS at the backend.
Define the proximity radius for verification (for example, 50 meters) at the backend.
Driver:
When a driver is completing a disposal request, the system captures their geo-tags (longitude and latitude) at the time of disposal. The system compares the driver's geo-tags with the predefined disposal spots set by the admin. There are two possibilities:
If the driver's geo-tags are within the specified proximity radius (for example, 50 metres) of the disposal spot, the disposal is considered system verified, then the system automatically closes the disposal request, marking it as system verified.
The driver should be able to start the trip, and the system should capture and record the geo-location coordinates (longitude and latitude) at the start of the trip.
At a specific configurable frequency (for example, every 2 minutes; this is configurable), the driver's geo-location coordinates should be recorded and stored by the system.
The system compares driver geo-tags with the predefined disposal spots.
Upon reaching the plant, the driver should be able to end the disposal request from his/her mobile phone and the system should capture the geo-location coordinates at the time of closure.
Automated closure at the disposal location:
If the driver's geo-location coordinates indicate that they are within the geo-fenced area of an FSTP, the disposal request should be automatically closed and marked as system verified.
The closure should trigger an automated notification or confirmation to the driver and the admin.
If the driver ends the trip outside a geo-fenced area, the driver uploads a picture and the FSTPO is required to verify the end of trip from their end.
Alert for non-closure at the legal disposal site:
If the distance between the driver's coordinates at closure and the designated disposal location is greater than the defined threshold (for example, 50 meters), an alert should be generated.
There is no other activity tracking of disposal vehicles other than the duration between the start and the end trips.
If the driver goes offline during the trip, the driver application should continue recording the geo-location coordinates at the predefined frequency. The recorded coordinates should be stored locally on the device until an internet connection is available. Once the driver's device regains internet connectivity, the recorded geo-location coordinates should be synced with the server or the backend system.
Find the mock-ups below:
Users to be able to delete and edit the added illegal dumping.
Include the process of adding point locations for a polyline, creating a line through the user interface.
Incorporate additional alerts for prolonged stops at regular sites when sludge is collected for a duration exceeding 'X' minutes.
System generated illegal dumping spots: These are identified based on multiple drivers being stationary at the same location for a predetermined period. The DSO or ULB employee has the authority to designate or remove such zones, enhancing the system's ability to pinpoint areas prone to unauthorised waste disposal.
Bringing in the safety measures screen, and making it mandatory in the driver application.
Explore on advanced analytics for vehicle tracking, including metrics such as the number of trip requests, average distance covered, and the number of closed applications, with a focus on distinguishing between FSTP verified and system verified cases.
See the following video to understand how vehicle tracking works:
Configure a Jenkins job builder to automate the build and deployment process.
Configuration File: build-config.yaml
Create a docker file for your application
File: Dockerfile
File: Jenkinsfile
Configure the Nginx to serve the application
File: nginx.conf
Create a helm chart for deployment
Files in the helm chart directory:
Chart.yaml
values.yaml
templates/Deployment.yaml
templates/Service.yaml
templates/Ingress.yaml
templates/subfilter-injection-configmap.yaml
Add the custom js injection config in the environment directory
Push these changes to the DevOps repository in the desired environment.
Trigger the Jenkins job manually or set it up to run automatically on every push to the repository.
Jenkins will build the application using the Dockerfile, and then deploy it using the Helm chart to the desired environment.
For any more information check this repository:
DevOps changes-
This section illustrates the steps for employee roles at the urban local body (ULB) level.
A ULB employee can:
Assign vehicle and driver
View Trip Details and the Route Taken
View Alerts
Add Illegal Dumping Spots
The ULB employee can assign the vehicle and driver in a single go by clicking on "Assign Vehicle".
A new section called "Trip Details" is added within the application, displaying the number of trips scheduled for the respective application along with the ability to view the route taken by the driver by clicking on "View Route" hyperlink. This table also shows the number of alerts raised for the particular trip along with the start and end time of the trip.
The ULB employee can access trip details and review any raised alerts. Upon selecting the "View Route" option, the path taken by the driver is showcased for observation.
Routes can be chosen in alignment with specific trips. The system is equipped with pre-identified illegal dumping sites, and if the driver remains stationary near any of these sites for a duration surpassing a configurable threshold, an alert is automatically triggered, notifying the ULB employee.
The ULB employee can view these alerts and take appropriate actions based on the situation.
The ULB employee can also view alerts by clicking on the newly added card “Vehicle Tracking”.
Two cards: 'Alerts' and “Illegal Dumping Spots” are displayed.
The ULB employee can see the alerts in the form of inbox. This inbox features the alert type such as stoppage, verified closure, unverified closure, etc.
The ULB employee can add illegal dumping spots by clicking on “Illegal Dumping Spots”.
Add Point Location
By clicking on the "Add Point Location" function, the ULB employee can add a new dumping site. They can then proceed to furnish all the essential particulars, including the Site Name, Site Type, and the distance threshold for triggering an alert when within proximity.
Once the site is added, a success message will be displayed. If one fails to add a site, a failure message will be displayed.
Frontend (old UI)
Core Services
Business Services
Municipal Services
Utilities Services
eDCR
Finance
Term
Definition
Actual route
Route recorded by the tracking device. This can be different from the designated route. It is not created upfront.
Designated route
Pre-designated route to be taken by the person/asset.
Tracking service
A software component that stores data related to a trip, applies rules to identify anomalies and notifications.
Operator
A user responsible for delivering the service. For example, a PHC staff member doing a door to door survey to check for health details of citizens in a particular area.
Point of interest (POI)
A place on map that is of interest during service delivery. It consists of the geo location, name and additional tags. For example, a legal dumpyard for fecal sludge or customer location where a service has to be delivered..
Polygon
This is a type of POI which is formed on the basis of multiple geo-coordinates. It helps in identifying large areas on a map, like an illegal dump yard or a cluster of homes and check the trip progress w.r.t to the polygon.
Supervisor
A user with additional responsibilities like creation of a trip, registering points of interest.
Trip
Assignment of a designated route to an operator forms a trip. This is the actual work done by the operator. Monitoring of distance covered, route taken, anomalies, service delivery and payment are linked to completion of trip.
Use Case
Use cases for the backend service
Triggered by
UC 1
Trip management
UC 1.1
Create a new trip based on citizen service, ULB, operator id, starting location, ending location, designated route (refer UC 2), timestamp and other relevant information
Supervisor
UC 1.2
Start an assigned trip
Operator
UC 1.3
Process continuous updates on geo location of the operator assigned to a trip
User app
UC 1.4
[Offline mode] Process the bulk updates related to geo location and timestamps related to operator movement
User app
UC 1.5
End a trip automatically once the operator reaches the destination. Supervisor can do a manual override
System, Supervisor
UC 1.6
Search for a trip based on trip id, ULB, service, operator, geo codes and other relevant information
Supervisor
UC 2
Citizen service master configuration
UC 2.1
Create designated route for a trip based on points of interest (refer UC 3), ULB and type of service
Supervisor
UC 2.2
Search for designated routes
Supervisor
UC 2.3
Update designated route status to active or inactive
Supervisor
UC 2.4
Register a new operator
Supervisor
UC 3
Points of interests and Geofencing
UC 3.1
Create points of interests based of LatLong coordinates
Supervisor
UC 3.2
Create polygon based geofence using multiple sets of LatLong coordinates
Supervisor
UC 3.3
Associate points of interest and geofences with various tags like pickup points, legal dumpyards, illegal dump yards and so on
Supervisor
UC 3.4
Search for the existing points of interest, geo fences and the associated tags
Supervisor
UC 3.5
Update geo points status to active or inactive
Supervisor
UC 4
Watcher and alerts
UC 4.1
Identify trip anomalies based on geo tags assigned in UC 3.
System
UC 4.2
Identify time based anomalies in a trip based on specific preconfigured rules
System
UC 4.3
Generate alerts (email, SMS) on detection of anomalies
System
UC 4.4
Search for anomalies based on trip id, geo location, ULB id and so on
Supervisor
UC 4.5
End trip if it goes beyond a time limit
System
Field
Description
id
GUID to uniquely identify an event
type
Event type indicates the nature of the event and helps consuming applications identify if/how to process it. For example - tracking service generates an event with type “LocationUpdate”. Similarly, trip monitoring service generated events will have the type “TripAnomaly”, “TripCompleted”
creation_time
Time at which the event is created
source
Application that published this event. This can be a short code / acronym of the source application
data
This is a JSON object. For example, “LocationUpdate” events will have fields like current_location and received_time.
#Vehicle tracking web app - name: 'builds/SANITATION/vehicle-tracker' build: - work-dir: 'frontend/vehicle-tracker/map_web_app/route_map' image-name: 'vehicle-tracker' dockerfile: 'frontend/vehicle-tracker/map_web_app/docker/Dockerfile'
# Docker flutter tags https://hub.docker.com/r/cirrusci/flutter/tags?page=1&name=1.16 FROM ghcr.io/cirruslabs/flutter:3.10.3 AS build ARG WORK_DIR WORKDIR /app # copy the project files COPY ${WORK_DIR} . RUN flutter doctor RUN flutter pub get RUN flutter build web # Create runtime image FROM dwssio/nginx:mainline-alpine ENV WEB_DIR=/var/web/vehicle-tracker #RUN mkdir -p ${WEB_DIR} COPY --from=build /app/build/web/ ${WEB_DIR}/ COPY --from=build /app/nginx.conf /etc/nginx/conf.d/default.conf
library 'ci-libs' buildPipeline(configFile: './build/build-config.yml')
server { listen 80; underscores_in_headers on; server_tokens off; location /vehicle-tracker { root /var/web; index index.html index.htm; try_files $uri $uri/ /vehicle-tracker/index.html; } }
apiVersion: v2 name: vehicle-tracker description: A Helm chart for Kubernetes # A chart can be either an 'application' or a 'library' chart. # # Application charts are a collection of templates that can be packaged into versioned archives # to be deployed. # # Library charts provide useful utilities or functions for the chart developer. They're included as # a dependency of application charts to inject those utilities and functions into the rendering # pipeline. Library charts do not define any templates and therefore cannot be deployed. type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. version: 0.1.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. appVersion: 1.16.0 dependencies: - name: common version: 0.0.5 repository: file://../../common
# Common Labels labels: app: "vehicle-tracker" group: "web" # Ingress Configs ingress: enabled: true context: "vehicle-tracker" namespace : egov # Init Containers Configs initContainers: {} # Container Configs image: repository: "vehicle-tracker" replicas: "1" httpPort: 80 healthChecks: enabled: true livenessProbePath: "/vehicle-tracker/" readinessProbePath: "/vehicle-tracker/" extraVolumes: | - name: js-injection configMap: name: vehicle-tracker-js-injection extraVolumeMounts: | - mountPath: /etc/nginx/conf.d/sub_filter.conf name: js-injection subPath: sub_filter.conf
# deployment.yaml {{- template "common.deployment" . -}}
# service.yaml {{- template "common.service" . -}}
# ingress.yaml {{- template "common.ingress" . -}}
{{- $envOverrides := index .Values (tpl .Chart.Name .) -}} {{- $_ := set . "Values" (merge .Values $envOverrides) -}} {{- if index .Values "custom-js-injection" -}} apiVersion: v1 kind: ConfigMap metadata: name: {{ .Chart.Name }}-js-injection {{- if .Values.global.namespace }} namespace: {{ .Values.global.namespace }} {{- else }} namespace: {{ .Values.namespace }} {{- end }} data: {{- index .Values "custom-js-injection" | nindent 2 }} {{- end -}}
vehicle-tracker: custom-js-injection: | sub_filter.conf: " sub_filter '<head>' '<head> <script src=https://s3.ap-south-1.amazonaws.com/egov-dev-assets/globalConfigs.js type=text/javascript></script> ';"
Actor
Description
Citizen
A citizen can request for a desludging operation online. The user can check the status of the application online, make the payment for the service online, and post desludging, they can rate the quality of the service online.
ULB employee (Can be assigned roles as creator, collector, editor, report viewer, dashboard viewer, or admin)
A ULB official will act as a regulatory and management authority for the entire desludging process. He/she can receive the request from a citizen online or can create a request on behalf of the citizen online. When the request is received, the user can assign a desludging operator for a request. The official can also update the status of the request on behalf of the DSO after the service is completed at the site, and view the relevant reports.
Transportation vendors
The transportation vendor will receive the requests assigned to them, and update the status of the transaction after the collection of faecal sludge is complete.
Treatment plant operator
This user can view the current demand, that is, the list of planned desludging requests available in the system. He/she can update the vehicle log which enters the FSTP/STP every day.
Actor
Description
Driver
A driver is responsible for pickup, and disposal of sludge.
Persona
Priority
Use Case
Driver
P0
Should be able to start and end the trip.
FSTPO
P0
Should be able to view if the vehicle has reached the FSTP or not via the inbox.
ULB
P0
Should be able to view the route followed by the vehicle and stoppage. They should also be able to view metrics such as movement time and stoppage time.
ULB
P0
Should get alerts for long stoppages, and stoppages near illegal dumping spots.
Serial number
Theme
Assumption
1
Customer persona
The drivers using the application are not digitally literate and need training before being able to use the application independently.
2
Device and services
The drivers using the mobile application must have internet connection to get the trip details in the application.
3
Start trip
The driver is required to click on “Start Trip” before commencing the desludging service.
4
End trip
The driver is expected to click on "End Trip" upon the completion of the desludging process at the FSTP.
6
Geo-tagging precision
The latitude-longitude added within the system are sufficiently accurate to pinpoint the exact locations.
9
Additional fields
All the non-mandatory fields must be taken care of during implementation. This must be done across all the flows.
10
Dropdown
If the field contains only one value, then it must be auto-populated by the system.
Field
Data Type
Data Validation
Required (Y/N)
Comments
User Id
String
Min Length = 2
Max Length = 64
Y
Password
String
Min Length = 2
Max Length = 64
Y
Field
Data Type
Data Validation
Required (Y/N)
Comments
Start Trip
Button
Y
The "Start Trip" button initiates the tracking and monitoring of the desludging service journey.
Route StartPoi
Text
Y
Captured when the driver starts the trip
End Trip
Button
Y
The "End Trip" button signifies the completion of the desludging service journey and finalizes tracking.
Route EndPoi
Text
Y
Captured when the driver ends the trip
Name
Text
Y
Auto-generated on the creation of trip
Trip ID
String
Y
Auto-generated on the creation of trip
Trip Status
Text
Y
Status of the trip
Vehicle Number
String
Y
Auto-generated on the creation of trip
Route ID
Text
Y
Predefined route id, which has the list of POIs for that the trip should follow
Pick Up Location
String
Y
Auto-generated on the creation of trip
Drop Location
String
Y
Auto-generated on the creation of trip
Date
Date
Y
Auto-generated on the creation of trip , Expected date of completion
Field
Data Type
Data Validation
Required (Y/N)
Comments
Vehicle Number
Dropdown
Y
All the vehicle numbers in the registry should be shown in the dropdown
Vehicle Capacity
Numeric
View only
Y
Auto-populated based on what is selected while filling the application
Assign Driver
String
Y
Driver associated with the vehicle number to be shown in the dropdown
Possible Service Date
Date
Y
Expected date of completion
Trip Id
Text
Y
Trip Designated RoutId
Text
N
Trip Expected StartTime
Text
N
Trip Expected EndTime
Text
N
Trip CurrentStatus
Text
Y
Field
Data Type
Data Validation
Required (Y/N)
Comments
Site Name
Text
Max character - 256
Y
Name of the illegal dumping site
Site Type
Array
Single select
Y
The dropdown will be auto populated basis the list of possible dumping sites in the MDMS
Alert
Numeric
Min distance = 20m
Max distance = 50-100 (TBD)
Y
Generate an alert when the vehicle is within a specified proximity.
LocationDetails
Array
Y
List of locations that are part of a POI. This can be a single LatLong or group of LatLongs (line, polygon)
locationDetails -> latitude
Decimal
Y
locationDetails -> longitude
Decimal
Y
alert
Array of Strings
N
One or more alert codes can be mapped to the point of interest. This is optional and can be set only in cases where the POI is related to some illegal dump yard etc
POI Id
Text
Y
POI Type
Array
Y
POI PositionPoint
Text
Y
POI PositionLine
Text
Y
POI PositionPolygon
Text
Y
POI Alert
Text
Y
Entities
Actions
Create
Read
Search
Update
Delete
Add Point Location
X
X
X
Edit Existing Site
X
X
Trip
X
X
X
Anomalies
X
X
X
X
Goal
How will we know vehicle tracking is successful
Introducing end type
- System Verified
- FSTP Verified
The percentage reduction in manual intervention required for status updates.
Count of applications closed with end type - System verified.
Mobile application for drivers
Driver engagement.
The number of trips initiated (in-progress) and completed.
The number of trips started by the driver.
The number of trips ended by the driver.
Identifying illegal dumping spots
The percentage reduction in unauthorised sludge disposal incidents through the intervention of alerts.
Alerting
The number of alerts triggered per application for longer waiting near marked illegal dumping sites.
Driver Login Screen
After a specific request is generated, the ULB employee assigns a driver, who is then prompted with a login screen. The driver receives a user ID and password from the ULB employee, and has to select the respective city from the dropdown, enabling access to the system.
The back button takes the user to the language selection screen.
Upon clicking the "Forgot Password" hyperlink, the screen displays a message instructing users to get in touch with the ULB in case they have forgotten their password.
Driver Home & Inbox
Upon the driver's successful login, their inbox interface will present a layout featuring both assigned trips and completed ones. The hamburger menu offers options for navigation:
Home: This option displays the assigned trips, serving as the central hub for trip management.
Language: Drivers have the flexibility to select their preferred language for a more convenient experience.
Logout: This option allows the driver to exit the system.
Upon successfully login, the driver gains access to an overview of all assigned trips. The key features of this interface include:
Efficient trip search: The inclusion of a search bar empowers the driver to easily locate a specific trip using the applicant’s name and contact number.
Organised trip categorisation: The screen presents two distinct tabs:
- "In progress" tab: This section shows trips that are pending initiation and assignment.
- 'Completed' tab: Here, the driver can view a compiled list of the completed trips.
Upon selecting the "View Details" hyperlink, the driver can see the information of the applicant, including both the pickup location and the designated drop-off point (referred to as the "FSTP plant").
The "Start Trip” button triggers the commencement of the desludging service's tracking and monitoring process.
Upon clicking the "Start Trip" button, the system displays a warning: “Start the trip only after reaching the pickup location. Have you reached the applicant location?”
When the driver clicks on 'Yes', a toast message - “Trip Started Successfully” - is displayed.
After the trip has been initiated and the driver has concluded the desludging process, the driver proceeds to the provided FSTP (to finalise the desludging task and complete the request). After successful completion of the desludging process in the FSTP, the driver has to click on the "End Trip" button to conclude and finalise the request.
Upon selecting the "End Trip" button, the system shows a warning message: "Are you sure you want to end the trip for Locality 1...?" Following the acknowledgment of this warning, the trip reaches its completion status.
When the driver clicks on 'Yes', a toast message - “Trip Ended Successfully” - is displayed.
View Applications: ULB
The ULB employee can access the trip details and review any raised alerts.
Upon selecting the "View Route" option from the new table “Trip Details”, the path taken by the driver is shown. The trip details table also shows- Date: Start date of the trip. Start time: Start time of the trip. End time: End time of the trip. Alerts: The number of alerts raised for the respective trips. Route: Shows the route taken by the driver, which also shows the "Stop Locations", "Alert Locations", "Pickup and End Location".
Add Illegal Dumping Sites: ULB
An additional feature has been introduced under the "Faecal Sludge" section, labeled as "Vehicle Tracking".
Upon clicking on this, the page is redirected to options such as ‘Alerts’ and "Illegal Dumping Sites".
Alerts are set up as an inbox that showcases the application ID, the corresponding vehicle, and the type of generated alert.
Upon clicking on illegal dumping sites, the user can add the pint location and define the spots.
Add Point Location
By clicking on "Add Point Location", the ULB employee can add a new dumping site. They can then proceed to furnish all the essential particulars, including the Site Name, Site Type, and the distance threshold for triggering an alert when within proximity.