Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jurisdiction based Workflow #71

Open
vibhor-dubey-egov opened this issue Apr 20, 2023 · 3 comments
Open

Jurisdiction based Workflow #71

vibhor-dubey-egov opened this issue Apr 20, 2023 · 3 comments

Comments

@vibhor-dubey-egov
Copy link

vibhor-dubey-egov commented Apr 20, 2023

Background

DIGIT has the capability of role-based workflow mapping using which workflows can be defined in the system based on role mapping that controls which users can take which actions based on a role assigned to them. Also, each employee can be mapped to a defined jurisdiction in the system. But while the concept of jurisdiction exists in the system, the system lacks the ability to associate workflow events and role mapping with jurisdiction in tandem. As a result, it is not possible to define automatic workflow events in the system based on jurisdiction. This delays service delivery beyond the desired SLA since time is lost in assigning the right person to deal with the issue. The request keeps sitting in the inbox for many days until someone manually picks up the request relevant to them.

What is the feature
Ability to associate service requests to relevant employees based on jurisdiction

Preliminary Requirements - Open to Inputs
Here is an initial list. Please suggest further requirements in the comments.

  1. Route applications based on jurisdiction- Redirect service requests to the relevant employee using the association with jurisdiction.
  2. Manual assignment made easy - Show relevant users based on jurisdiction, if someone is doing the assignment manually.
  3. Jurisdiction-based access - Permit CRUD on application only for a specific ‘User’ based on the association to a Jurisdiction.
  4. Restrict CRUD operations on the applications for other users of the same role - If there are two users of the same role in different jurisdictions - User A in Jurisdiction X and User B in Jurisdiction Y both have the same role Z, they should only have access to applications that are relevant to their jurisdiction.

Detailed description of the problem:
Service delivery is delayed because all assignment currently happens manually. The system lacks the required rules to decide which application belongs to which employee.

Let’s say once a citizen creates an application. Based on the workflow, the application will be made visible to users of a certain role.
This is where the problem happens because all users of a certain role will be looking at all the applications at once. This creates a huge problem in cases where hundreds of applications come in on a daily basis.

The following cases illustrate the problem as experienced in different solutions:

  • Case 1 - Public Grievance Redressal: All complaints are directed to one person. This person redirects the complaints manually to the relevant employees. The system currently shows all employees in the drop-down and as the assigner, I have to go through a long list to find the right employee for the application.

  • Case 2 - OBPAS, TL: Every application is visible to multiple employees of the same role. These employees have to search for the applications from the common pool rather than the system only showing them the applications relevant to them.

Information for Reference
Here is a quick description of a few terms mentioned in the discussion.

  1. Role mapping is a mapping of a role to a set of actions in the system. It helps define and manage user access by associating users with a certain role.

  2. Workflow is a state machine that allows the transition of service requests (or any entities in general) from one state to another. A state change could be the assignment of the service request to a particular person or a change of the status of the application from open to closed or from open to rejected.

  3. Jurisdiction is a hierarchical data structure that can be defined by master data management. For example, a city can have multiple circles which can have multiple wards. Depending on the city, the terms ‘circle’ and ‘ward’ can have different names. For example - these wards or circles are related to actual areas like Koramangala, Whitefield, and Bellandur as in the case of Bangalore.

Learning Path:

Learning how to integrate workflow configuration for different heirachy. These are general concepts across domains.

Complexity
Medium

Skills Required
Java, Spring Boot, Redis

Name of Mentors:
[email protected]

Project size
8 Weeks

Product Set-Up:

Setting up a development environment with the required tools and libraries like Java, Spring Boot, Redis, etc.
Setting up the few core services of DIGIT like zuul and ego-user locally for testing and development purposes.
Configuring the development environment with appropriate secrets, keys, and environment variables for secure JWT token generation and verification.
Refer : Developer Guide

Acceptance Criteria:

Successful integration of the Jurisdiction based workflow with the DIGIT platform

**For further information: **

@KeenWarrior
Copy link

KeenWarrior commented May 4, 2023

Hello @vibhor-dubey-egov , Please ensure that the following fields are filled out

  • Project Details
  • Features to be implemented
  • Learning Path
  • Product Set Up
  • Acceptance Criteria

You can find here description of what needs to be added in corresponding fields.

Here are sample tickets for reference.

@aryanmishra29
Copy link

Hey, I am interested in contributing to this project and hence solving this issue.
I will need a little help in understanding the pre existing jurisdictions and API endpoints. @vibhor-dubey-egov can you please help me connect with the mentors for this project?

@davidjennicson
Copy link

I am a final-year engineering student interested in contributing to this issue. After reviewing the problem statement, I suggest utilizing Natural Language Processing (NLP) and Machine Learning (ML) techniques to address it. By implementing a Python-based language model, we can associate specific requests (such as grievance complaints) with the appropriate person. To achieve this, we can create an API using Flask or Django, which can be interconnected with the Spring Boot service.

pradeepkumarcm-egov added a commit that referenced this issue Sep 15, 2023
…sed-filtering

Changes for #71 Changes for filtering based on boundaryType and boundary added
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants