Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
An overview of Employee Management, what it is used for and the various employee roles to select from.
Employee Management allows you to add “government employees” to explore DIGIT products from the lens of different stakeholders. Usually, DIGIT products are used by governments in a decentralized manner - government employees are each assigned specific product user role(s). For example, the Complaints product has one user role for a last-mile employee to resolve complaints, and a different user role for a grievance officer to assign complaints to a last-mile employee.
Employee Management lets you assign a role to each employee, determining how they can use DIGIT products. To view the products on Sandbox as a particular employee, log in to the employee portal with the given employee’s ID, which is an email address. For more information as well as the link to the employee portal, refer to the right panel on the Sandbox home page.
Superuser - Can perform all Sandbox-related actions, and is assigned to the Sandbox account creator by default. If you want to add a team member to your Sandbox account, you can create an employee with a Superuser role and your team member’s email.
Admin - Can perform all Complaints and Employee Management related actions (apart from configurations).
Complaints-Admin - Can perform all Complaint-related actions. If you want to allow your partners to interact with DIGIT products directly, you can create an employee with the Complaints-Admin role and the partner’s email.
Assigner - Can assign, reject or reassign a complaint.
Resolver - Can resolve or reject a complaint
The home page offers the below menu options to interact with the Employee Management module.
Create Employee - Create a new employee and assign a role and jurisdiction to them.
Search Employee - Search the existing list of employees. Two employees with Assigner and Resolver roles have already been created for you by default.
Configure Employee Management - Change the default Employee Management behaviour by modifying or adding configuration (master) data.
A quick overview of the Complaints product, the functionality offered and the card options on the home page.
Complaints is a self-serve, web and mobile-based, easy-to-use, configurable product for the submission, tracking and resolution of grievances from anywhere and at any time. Designed to provide maximum transparency for all stakeholders, the lifecycle of each complaint is mapped - right from the time of filing, all the way till closure by the complainant. Traditionally used for the redressal of public grievances, the Complaints module features a citizen and employee portal with several user roles, facilitating coordination between multiple actors in the complaint resolution process.
Registration, Login and Creation of User Profile
Lodging a Complaint
Assigning a Complaint
Resolving a Complaint
Manage Complaints
Track Complaints
Dashboards and Reports
Superuser - Can perform all Sandbox-related actions, and is assigned to the Sandbox account creator by default. If you want to add a team member to your Sandbox account, you can create an employee with a Superuser role and your team member’s email.
Admin - Can perform all Complaints and Employee Management related actions (apart from configurations).
Complaints-Admin - Can perform all Complaint-related actions. If you want to allow your partners to interact with DIGIT products directly, you can create an employee with the Complaints-Admin role and the partner’s email.
Assigner - Can assign, reject or reassign a complaint.
Resolver - Can resolve or reject a complaint
The home page cards provide the below menu options to interact with the Complaints module.
File Complaint - File a complaint by selecting the complaint type and sub-type, along with the location.
View Inbox - View the list of filed complaints and take actions such as assigning/rejecting a newly filed complaint, or resolving a complaint which has already been assigned. The Inbox presents a view seen by Grievance Routing Officers when Complaints are used for Public Grievance Redressal.
Explore Dashboard - See a graphical representation of complaint statistics over time, including complaint status, resolution time, categories, etc. The dashboard has already been prepopulated with sample data for you
Configure Complaints - Change the default product behaviour by modifying or adding configuration data.
Employee Management - Each “employee” is assigned a user role that allows certain interactions with the Complaints product. In employee management, you can add employees or view the list of employees. Some employees have already been created for you by default, so you can explore Complaints.
User management is a critical component of any software system, involving the administration of user accounts, roles, permissions, and authentication mechanisms. It ensures that users have the appropriate access to system resources and functionality while maintaining security and compliance.
Below are some important points for User Management -
Assign Users to Root Tenants: All the users(CITIZEN/EMPLOYEE) get created at the root tenant level, ensuring that user data is scoped to the tenant.
Manage User Roles within a Tenant: Allow for managing user roles specific to each root tenant or sub-tenant. This will ensure that the user is restricted from doing the transactions in other tenants for which the user does not have access
Standardized Roles: We will have the predefined roles below.
CITIZEN (Will have access at root tenant level)
EMPLOYEE (Will have the access at subtenant level)
ADMIN (Can do everything within root tenant and subtenant)
SUPERADMIN (Only allowed to do tenant operations and the permissions cannot be edited)
USER (user role can perform operations on its data. Example: profile update)
Users can sign up for accounts themselves, typically used for public-facing systems where end-users (e.g., citizens) need access. Self-register users will get only the “CITIZEN” role
Self-user registration is a two-step process
Create the user an active flag as “False”
Activate the user by verifying the email/mobile number
Implement an API for admins to create users with various roles (Citizen/Employee/Admin). This should include input fields for user details and role selection.
Develop functionality to block a user. Blocking should prevent the user from logging in and accessing any system resources.
Admin will select the user
Admin performs block action for the user
Block action will call the user/_block API
Update the status of the user from Active to Blocked
Publish an event on the queue. This can be used if a notification needs to be sent to the user
Allow admins to unlock previously blocked users.
Admin will select the user
Admin performs block action for the user
Unblock action will call the user/_unblock API
Update the status of the user from Blocked to Active
Publish an event on the queue. This can be used if a notification needs to be sent to the user
Provide an admin interface to change user passwords. Ensure that passwords meet security guidelines.
Implement functionality to delete users. Ensure that this operation securely removes user data or marks it for deletion.
Admin will select the user
Admin performs delete action for the user
Delete action will call the user/_delete API
Update the status of the user from AnyStatus to Deleted
Publish an event on the queue. This can be used if a notification needs to be sent to the user
Allow admins to assign additional roles and tenants to users. This should include validation to prevent conflicts or over-privileged roles.
Provide functionality to remove roles and tenant associations from users.
Enable admins to map specific roles to users, defining their permissions within the system.
Implement functionality to remove specific roles from users.
Sandbox is a hosted platform upon which partners can experience DIGIT without any environment setup costs. In tandem with “Workbench”, Sandbox facilitates configuration of various DIGIT-based products through an intuitive GUI. Sandbox is among the first initiatives to transition from program-led to product-led growth with regards to DIGIT. The overarching goal of Sandbox is to reduce friction experienced by partners as they try out and demo DIGIT-based products.
Market partners are forced to invest a lot of time and effort to learn how DIGIT works before they can utilize the platform. This necessitates continuous hand holding, meetings and demos from Egov’s end before the platform is used. Hence, market partners experience a long time to value, leading to drop offs even before DIGIT is deployed.
Additionally, market partners need to procure and set up the infrastructure needed to try out DIGIT. They bear the onus of understanding and configuring the Devops setup and the tech stack upon which DIGIT is built. The cost of trying out DIGIT-based products limits use case discovery by partners. As a result, the utilization of DIGIT by market partners is predominantly limited to large organizations who have a financial motive.
DIGIT’s growth vectors, focusing on replication at scale and co-creation, require a widespread trial and adoption of DIGIT by tech partners and governments. New use cases can only be discovered if partners are able to experiment on DIGIT without affecting current systems.
Hence, there is a need to make DIGIT and its products easier to try out and utilize for interested partners, where the developer involvement needed, setup costs and time to value is minimized.
Sandbox adds value for both external DIGIT users as well as for Egov:
Sandbox benefits partners in the following ways:
Lower infrastructure and setup costs to try out DIGIT: Since Sandbox is hosted on the cloud, partners do not need to utilize their own resources while discovering DIGIT.
Ease of use : Partners need not know the intricacies of DIGIT’s architecture in order to configure and build products. An intuitive GUI minimizes the involvement of their development teams.
Faster Time to Value : Partners can demo DIGIT products to their clients faster, since the number of touchpoints required with Egov is greatly reduced.
Access to learning resources : DIGIT Academy along with extensive documentation of the platform enables partners to understand the basics of the platform with minimum pain points.
Enhanced use case discovery: Partners can experiment on Sandbox in isolation from their existing systems. This in turn will enable them to discover new use cases for DIGIT-based products.
Sandbox also has the potential to affect Egov and DIGIT in the following ways:
Lower partner drop-off rates : As Sandbox directly addresses many of the pain points faced by partners while exploring DIGIT, we can expect to onboard more partners who utilize the platform.
Possible transition to Saas : Sandbox is the first step in the journey to make DIGIT and related products Saas offerings. With Sandbox, the expectation is that DIGIT would be hosted in partner’s datacenters. However, the opportunity arises for Egov to develop the core competencies needed to make DIGIT a fully fledged Saas offering later down the line.
Higher DIGIT Adoption : As the friction partners experience in discovering DIGIT is reduced, it is expected that the platform would see higher adoption numbers.
Towards Product-Led Growth: Since partners now have a much smoother onboarding process through Sandbox, the involvement of Egov’s program teams will be much lower in partner acquisition.
Version 1 of Sandbox will target only business users.
Business users are defined as those looking to utilize DIGIT for monetization.
Categories of business users include:
Tech implementation Partners, System Integrators - Business Development Managers, Program Managers and technical personnel from companies like Deloitte and PWC, who are mainly concerned with speed to implement solutions on DIGIT, cost of utilizing DIGIT and support offered. These companies customize DIGIT products for government requirements.
Government Development Partners - Organizations who are contracted by governments to solve problems. They are concerned with brand equity and reputation as well as time taken to achieve targets and milestones. Eg: Selco.
Demo to clients - Business users can show products’ features and sources of value to prospective clients
Use case discovery - By experimenting on DIGIT without affecting existing systems, business users can discover use cases quickly
Customization - DIGIT products can be customized to client requirements without developer involvement
Exploration - Business users can tryout DIGIT without needing to setup their own infra and having to understand the internals of the platform
Learning - Users can learn about the capabilities of DIGIT through DIGIT Academy and extensive documentation
*Please note that User Management has been deprioritized for Sandbox V1
Need: Sandbox Account Creation for a partner, government organization or Individual.
Context: Users exploring DIGIT from marketing channels etc will land on the DIGIT Sandbox Web Page. Clicking on “Access Sandbox” will bring the user to the Signup page of Sandbox. The below stories explain the various use cases of Signup of sandbox users.
Acceptance Criteria
First-time user should be able to successfully create a new sandbox account for his/her organization/entity.
The first-time user should be able to verify email
The first-time user should be able to login
Returning user should be able to login
Context: Sign-up flow for first-time Sandbox users
Sign-up flow where OTP based login is involved
The user will give the following details. On hovering over the information icon "This will be used as your account name" appears.
After clicking the signup button, the user is directed to the below screen and prompted to enter OTP.
The email the user will receive is as below:
Validation: When pressing the confirm button, the match between the sent OTP and the entered OTP is checked. If the OTP is entered incorrectly, present the error message “The entered OTP is incorrect. Please Retry”
Upon entering the OTP, the user’s sign-up flow is complete and is directed to the signup success screen. The user is prompted to copy their unique Sandbox URL for future access.
On pressing continue, the signup is completed and the user is directed to the home page
<5 minutes after signup is complete, the user will receive an email with the URL to be used for future sign-ins to Sandbox:
Context: Previously signed-up user, signing in for Sandbox
Description:
The user is prompted for an email address. Validation: The email address belongs to the Sandbox account
When the user requests OTP, they are directed to the below OTP input page:
The user receives an email as below:
Validation: The match between the sent and entered OTP is checked. If OTP is wrong, the error message is displayed as below:
Once the correct OTP is entered, the user is directed to the home page.
Context: After signing up for the sandbox, the user will land on the home screen. For a returning user, this will be the default landing page after signing in.
Users: First time user and returning user
Description:
Sandbox Home will have the following components.
Sandbox will have the following navigation menu:
Need: New users who have signed up for Sandbox require guidance on how to explore its features. The Onboarding Stepper provides users with a possible journey they can take to experience Sandbox’s key use cases.
Context: The Onboarding Stepper is designed at an account level. The stepper would be presented when the home screen is accessed for the first time by the user. On subsequent visits to the home screen, the Onboarding Stepper can be expanded using the arrow button. The Stepper ceases to be visible when all the steps are completed.
Description:
The user lands on the home screen.
If this is the first time the user lands on the screen, the expanded stepper is displayed
If the user is returning to the home screen, the stepper is minimized but can be expanded by clicking “<”.
The user clicks on the CTA button and is redirected to the corresponding page as described in the table below.
Once the task(s) mentioned in the table below in a particular step is completed, the corresponding CTA button is disabled, and a success message is shown as in the below table.
The user can return to the home screen and expand the stepper for next steps (if any)
Once all steps are completed, the stepper is no longer shown to the user.
Context:
A Sandbox user by default is given a root-tenant on the creation of an account. Tenant Management helps in creating and managing sub tenants (if-any) under this root tenant.
Since most services and data are linked to tenants in the DIGIT platform, it is essential to create the tenants (sub tenants) and specify which applications are using what Masters under which tenant.
In case any Master is not defined at the sub tenant level, as a fall back mechanism it should take default master configurations from the root tenant.
Context: Users coming for the first time need to know what a tenant is and everything about it. Hence a textual/Visual description + a video. This same will also show up again in a full-screen slider popup when the user clicks on the help section.
Description:
First-time users will see the screen below.
The same content will be displayed for the second time onwards on click of the help button as long as the user is in the tenant management and related flows.
Once the user clicks on setup now, the user will get into the default screen of tenant management where she/he lands a second time onwards (Tenant and Sub tenant list)
Video can play inline. Default options such as volume change, full screen, and change resolution should be present.
Next Screen:
Context: Users can create sub-tenants using this flow. For simple analogy and example in pb.amritsar, pb is a root tenant and Amritsar is a subtenant.
Description:
Note:
Each Valid and Active tenant will appear as a dropdown in the client interface for this organization/user.
Need: Users can change name, code, status or subtenants.
Description.
Clicking on the Modify icon against a tenant will open a popup to modify the tenant
Users can modify the following
Name
Description
Status (Active/Inactive)
Active - Allow Data Management, Show in the client interface login dropdown.
Inactive tenants - Don't show up anywhere.
A subtenant can also be deleted (archived) all data stored within that subtenant won't be retrievable by the user from the UI.
Root tenant following can be modified
Name- Yes
Code - No (system generated)
Description - Yes
Status - No (Since making this inactive will make all sub-tenants inactive and the user won't be able to do anything in the sandbox and client interface)
All modifications made will be applied instantly.
Context: Module used to manage sandbox account. Includes
Personal Profile Management
User Management for Sandbox
Organisation Details
Note: This only supports adding/modifying the details/users of the organization who signed up for sandbox and not every employee/ individual/ citizen of the system.
Context: Logged-in user to view/modify their personal and account details.
Description:
Context:
Users can view/modify his/her organisation/sandbox account details.
Description:
Users clicking on Organisation on the left menu will land on the Organisation details page
The Organisation details page will already contain the name and Code collected during the signup
Clicking on modify fields will make the page editable
Users can modify the following fields mentioned in the table
Users can modify any of these and click save to make changes.
Save Changes Screen
Need: Helps the main user add/remove his team members to the sandbox account so they can help set up and manage applications.
Description:
Sandbox User Roles
Context:
Users will select applications that he/she wants to explore/try with.
Each DIGIT application has to be rolled out into the sandbox after proper onboarding, master data cleanup, and sample data addition is done.
Need: Users with access to Manage Applications can access application management card on home screen as well as on left menu.
Description:
Applications on DIGIT Sandbox will have to be rolled out sequentially after proper onboarding screens, QA, Master Data Management is set up.
For V1, we shall have Complaints Management and Campaigns Management as 2 applications on DIGIT Sandbox.
All applications will have a similar flow in the application management section.
Application cards will have a CTA - Either “Setup Now” or “View” depending on whether the masters have been configured or not.
For a first-time user, clicking on the CTA will open an Application Information page containing an introduction to the application.
For subsequent visits, the user will be directed to the Application Setup page directly.
The information page content can be viewed through the help button for return users.
Clicking on Setup Now (CTA) will take the user to the Applications Setup Page where specific details required to set up the application are shown.
The Application setup page will contain a table of masters with the below fields:
Name - Name of the master
Type - Specific Master, Common Master or Configuration
Status - Not Done, Completed, Failed, In Progress
Actions - Only edit possible
The Application Setup page will have 2 CTAs as described below:
Information Icon: On hovering/clicking it, the message “Click Here to activate/disable applications once all masters are configured successfully. Once an application is activated, it can be accessed through the client interface”.
If all the required masters/configurations are successfully setup, the user will see the “Activate” and “View Client Interface” CTAs on the Applications Setup Page.
On clicking the “Activate” CTA, the application is live and can be accessed through the client portal
Any Active application can be made inactive by coming to the specific applications landing page and choosing “Disable”.
Context:
Users after selecting the applications he/she want to explore will land in the master data management section.
Users who come directly for Master Data Management will be asked to choose applications first, and then come to set up Master Data.
Each Application has a bunch of Master data and configurations to be set up. Only after all masters are set up, the application can be made live.
Needs:
Master Data to Application Mapping
Master Data cleanup - Localisations
Master Data UI Configurations - Which masters to show on UI and which to hide.
Default Data for all masters
Master Data Hierarchies - Priority of showing in Sandbox
Sample Data for all masters.
Context: For each application that is enabled on the sandbox, there need to be specific Data masters that need to be enabled, filled and set up before the application can be made active. Below are list of activities. The attached excel has details.
Listing all Modules, Masters and Data attributes
Master Data to Application Mapping
Master Data cleanup - Localisations
Master Data UI Configurations - Which masters to show on UI and which to hide.
Default Data for all masters
Master Data Hierarchies - Priority of showing in Sandbox
Sample datas for all masters.
Note that when masters are successfully configured using default data, we can show a toast message showing “Sample Data Successfully Added”.
Context: In Sandbox, we propose users configure masters for the chosen application with a single click. The masters would be configured with default data.
Need: Configuration of masters one by one involves at least 20-30 clicks from the user for each application, even if default data is configured. This increases the time-to-trial of DIGIT products for the user, potentially resulting in drop-offs.
Description:
The user lands on the “Application Setup” page of the selected product as shown below:
On clicking “setup masters”, the user is prompted whether to auto-configure masters with default data as shown below. An alert is displayed “Please use default Data and Configurations for set up. You can come back and change anytime later”. Please note that previous configurations of masters used by this application will be overridden”.
If the user selects “Use Default Masters”,
All masters for the application (including those already configured and common masters) will be overridden with default data.
The masters' status in the table will be updated dynamically as each master is configured.
Refer to the below image for an example of the master configuration status
Once all the masters are successfully configured, the user can access the client interface by clicking the CTA as shown below.
Need: Using this section the user will be able to access the client’s interface.
Need: Users after setting up the products, should be able to access the interface where set up is done to make real transactions.
Description:
Users have a preliminary understanding of what DIGIT is and how it is used for improving public service delivery
Sandbox will mainly be used as a web-based application
The early adopters of Sandbox would be business users looking for a faster time to value DIGIT-based products
Sandbox will initially be designed for an English-speaking audience
Do we need to show the Date/timestamp of tenant creation and who created it?
How many tenants are to show for the default case?
For how many days should the tenant/subtenants be kept active for the user/organization before automatically getting inactive?
Over the next 2 quarters, we aim to track the following metrics to determine Sandbox’s impact:
We would like to initially see the figures which are associated with the above metrics before determining their success values.
One-one onboarding with Partner Webinars
One-one onboarding and feedback meetings with selected partners
Content & framework for Social Engagement
Customise DIGIT for your use case - explore and configure DIGIT platform to resolve challenges globally
DIGIT Sandbox provides a self-service platform to rapidly try out, build, test, and deploy scalable solutions leveraging DIGIT’s open-source technology stack.
World’s largest open-source technology DIGIT Sandbox helps users make quicker, faster, and better decisions for good governance.
Sandbox allows stakeholders to:
Explore DIGIT products, modules, and offerings more quickly with Sandbox.
Build new products and services in no time with DIGIT Sandbox.
Deploy products and solutions built with DIGIT Sandbox easily.
Sandbox offers multiple features as listed below:
Complaints and campaign applications
Guided onboarding flow
Auto-configuration of master data with default values
Client interface, accessible by both web and through mobile APKs
Organization (Tenant) management
Intuitive and easy-to-navigate GUI
Live chat support
This documentation space contains all docs and information required to understand Sandbox, its key features, functional scope, and configuration details. Click on the links below to learn more about deploying, configuring, customizing, and using the Sandbox.
Navigation Tips
Click on the embedded links within the content to browse topic details.
Use the contents links available on the right side of the screen to move to a specific heading.
Find the list of related docs links at the bottom of each page to browse through additional product details.
A sandbox in software engineering terminology is a secure, isolated environment designed for the execution and testing of software, programs, or code without impacting the broader system. This controlled virtual space enables developers to experiment with new ideas, features, or security measures, identifying and addressing potential issues before integrating changes into the primary system.
Inspired by this concept, DIGIT provides a hosted Sandbox environment that enables business users and developers to explore and build products, modules or features on the DIGIT platform with minimum effort and resources. By providing instant configurations, a user-friendly GUI and extensive documentation, Sandbox presents partners with an exceptional, self-serve user experience.
DIGIT Sandbox aims to revolutionize how users engage with and leverage the DIGIT platform. By streamlining processes and removing barriers, Sandbox drastically reduces the time it takes to explore, configure, and build on DIGIT, transforming a traditionally complex and time-consuming process into a user-friendly, self-serve experience.
Specifically, Sandbox aims to:
Empower users through self-service: Enable partners to independently explore and build on the platform without relying on external assistance.
Accelerate development: Provide a pre-built, stable environment that eliminates setup time and allows users to focus on innovation.
Simplify deployment: Remove the burden of hosting DIGIT instances by pre-deploying them in the cloud.
Increase ease of use: Simplify configuration through intuitive, GUI-based tools.
Sandbox presents a self-deployed environment for users to interact with DIGIT products without bearing infrastructure and personnel costs. With an intuitive GUI and extensive documentation, Sandbox eliminates user barriers, enabling even beginners to utilize DIGIT products.
Sandbox users can configure and start using DIGIT products through a simple 3-step process:
To ease navigation for new users, Sandbox also contains an onboarding video and a stepper.
In addition to the above, Sandbox provides tenant (organization) management. Users can set up a tenant hierarchy to segment configurations and data among different organizations. Hence, several tenants can use a single Sandbox instance.
Business users can customize and demo DIGIT products to clients without having to develop the capabilities to host their DIGIT instance.
Time to value for DIGIT-based projects is greatly reduced through a completely self-serve Sandbox experience
Business users can experiment with DIGIT products to discover new business use cases at no cost
Sandbox's simple GUI ensures that even users without a technical background can utilize DIGIT products.
Digital governance partner for governments
Governments can identify products which solve the pain points they encounter, and collaborate with market players to implement them.
Sandbox's tenant hierarchy feature allows flexible data and configuration sharing between different levels of government.
Governments can explore DIGIT product experience for multiple user roles, such as campaign organizer, field worker, etc.
Productivity tool for developers
Developers can directly configure DIGIT products through a simple GUI instead of having to create JSON files and invoke APIs.
Infrastructure costs and DevOps involvement to setup their DIGIT instances are avoided and developers can instead focus on leveraging DIGIT APIs to generate value
A detailed document describing how to use the Complaints product in Sandbox
Complaints is an application designed to file, assign, and resolve issues with enhanced transparency for all stakeholders. While traditionally adopted by governments worldwide for public grievance redressal, complaints can be used for various cases and at multiple scales. You can view the full complaint documentation .
Complaints offer the following functionalities:
Filing a complaint (both through employee and citizen interface)
Viewing and filtering the list of filed complaints
Assigning a complaint to a user ('employee')
Resolving a complaint
Rating a complaint
Viewing a dashboard with a graphical summary of complaints and statistics
Before proceeding with the complaints application make sure to create employees and map it to specified roles. to create and manage employees.
The list of roles and corresponding actions each role can perform is listed below:
Role | Actions |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
Experience V1 (Explore) | Experience V2 (Build) | Experience V3 (Make Live) |
---|
The user will land on a Page with the URL:
Attribute | Madatory (Yes/No) | Validations | Examples/Comments |
---|
The user arrives at the sign-in page through the URL received prior.(<account_code>/login)
Component Label | Description |
---|
Menu Item | Action |
---|
Step | Prompt/Description | CTA message & redirection | Actions to complete step | Success message |
---|
Description | Screen |
---|
Description | Screenshot |
---|
Field | Data Type | Required (Y/N) | Comments |
---|
Role | Role Code | Description |
---|
State | Message on Application Card | CTA on Application Card |
---|
Scenario | Primary CTA (Text color white and background orange) | Secondary CTA (Text color orange and background white) |
---|
Clicking on Setup Masters (CTA) will allow users either to manually configure each master one by one through the Workbench UI or to automatically configure all masters with default data. The user story for automatic configuration is in.
On clicking the “View Client Interface” CTA, the user is directed to the Client Interface Details page as in.
Below is the sample Workbench UI screen for configuring masters:
The list of sample master data for PGR, HCM and common masters can be found here:in the “CombinedMasters” sheet.
Configuration Status in Master | Status in table |
---|
Description | Screenshot |
---|
# | Stages | Metrics | Strategy |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
"Experience V1 (Explore)" | "Experience V2 (Build)" | "Experience V3 (Make Live)" |
---|
Sandbox for Business Analytics
DIGIT Sandbox allows Program Managers and business analysts to explore and configure new use cases without any developer support.
Sandbox for Developers
Developers can customize existing services and/ or build new services on DIGIT Sandbox without having to install or setup their own DIGIT instance.
Sandbox for Technology Partners
Partners can now quickly explore and confirm the various use cases DIGIT is capable of solving, reducing the new development time significantly.
Sandbox for System Integrators
System integrators or Implementation teams use DIGIT Sandbox to customise to the client’s requirements before developing any new piece of code.
Sandbox for Governments
Governments can explore the various use cases built already for effective citizen service delivery and not invest heavy resources in finding new platforms.
Application Selection
Complaints and Campaigns are present in Sandbox V1 - Licenses, Collections and Taxes to be added later.
Master Data Configuration
Master data is used to control application behaviour. Users can either auto-configure master data with default values or manually edit master data themselves.
Client Interface Setup
A client interface is used to access the applications that have been configured in Sandbox. Users can navigate to the client interface through a browser or access it through a mobile app.
User | Business User | Developer | Devops |
Capability | Parner ability to explore DIGIT products including data setup and configurations. (With guided onboarding workflows, enabling self service) | Developer ability to modify existing services and/or build new services on DIGIT | Ability to configure and setup DIGIT Cloud. |
Value Proposition | Partner to setup and showcase DIGIT to their (Govt) Client quickly | Partner to built new services on DIGIT quickly | Partner to build and take DIGIT live quickly |
Sandbox V1 | Signup |
|
|
Email Verification |
|
Account Management |
|
User Management |
|
|
|
|
|
Enhancements | Home V1 | Home V2 |
|
Guided Tour |
|
|
|
|
|
Demo Environment |
| Account with Default Demo data |
|
|
|
|
|
WorkBench V1.1 | UX Revamp |
|
|
Localisation Correction |
|
Product - MDMS mapping |
|
Default Tenant - Master Data configurations |
|
|
|
|
|
|
|
|
|
Configurations | Workflow (Table) | Workflow (builder UI) |
|
Localisation (WB) | Localisation (overlay UI) |
SMS (on/off) | SMS (templates) |
Tenant | Product Specific Configurations |
|
|
|
|
Applications | Complaints | Property Tax | FSM |
Employee Management | Licenses | Revenue and Expense Management |
Campaigns | Challan | Works Management |
| BPA |
|
|
|
|
Academy | Link to Academy |
|
|
|
|
|
Devops |
|
| Guided devops workflow |
|
|
|
|
DIGIT Developer Console |
| Access for Development |
|
| Access to Deploy |
|
|
|
|
Developer Studio |
| Plugin for developers (Like Visual Studio) |
|
|
| Dashboard for operations and Maintenance |
|
|
|
|
|
DIGIT Cloud |
|
| DIGIT Infra-Suite |
|
| Billing and Subscription |
|
| Data Security |
|
| Policy |
|
|
|
|
Data Management |
|
| Import data from other Applications |
Yes | Should be valid email. | @gmail.com/ @company.com |
Organization/Account Name | Yes | Minimum of 5 characters. Non Empty |
|
Terms and Conditions Check Box | Yes | - | - |
Tenant Management | Tenant Management helps to manage data and access controls across multiple hierarchies |
Account Management | Add, delete and manage users/employees of your organization and assign various roles and permissions. |
Applications | Access and explore DIGIT default applications. Setup and configure as per needs. |
Data Management | Manage common data masters across multiple Tenants and applications |
Client Interface | Access links, login credentials and download APKs for client interface |
Search | Searches within the menu and Sub Menu |
Home | Default Home screen of Sandbox |
Tenant Management | Opens List of Tenants Page |
Account management | Opens List of Users Page |
Data Management | Opens Default landing page of MDMS |
Applications | Opens all applications landing Page |
Client Interface | Opens landing Page of client interface |
Explore your Applications | Explore default DIGIT applications, envision use cases and make your applications live after configuration. Tracker : x/y applications set up | “Setup Application” —> The user is directed to ‘Applications” landing page | All applications have been explored, configured and made live. | Setup Complete |
Configure Master Data | Use our default configurations for fast tryouts or precisely customize applications yourself based on requirements. Tracker : x/y masters configured | “Configure Masters” —> The user is directed to “Data Management Landing Page” | The master data for all available applications has been configured. | Configuration Complete |
Create your Client Interface | You and your clients can now experience DIGIT products first-hand through both browser and mobile Tracker : None | “Setup Interface” —> The user is redirected to ‘Client Interface” page | A client interface is setup | Setup Complete |
Organisation Name | Alphanumeric | Y | Max Char count 100 |
Organisation Code | Alphanumeric | Y | Max Char count 50. Should not be same as any other tenant in the system |
Contact Person | Alphanumeric | N |
|
Alphanumeric with special chars | N | Basic email Validation |
Mobile Number | Numeric | N | Add country dropdown. Phone number validation |
Logo | Image Upload | Y | Default to DIGIT Logo if user doesnt provide his/her logo Validations of Image as per DIGIT Login screen UI should be present. Size, Dimensions. |
Owner | Sandbox_Admin | The user who created this sandbox account. He/she can make someone else the owner for this sandbox account and assume Manager role by default. Owner has all view, edit, delete actions within sandbox and client portal. |
Manager | Sandbox_Manager | Manager can
(There is not much difference between owner and manager in V1. Billing will be the difference in next version between these roles.) |
Viewer | Sandbox_Viewer | Viewer only can search and view all options. Wont be able to add/modify any data. Can visit client portal |
Masters not fully configured for the application | “App not setup” | “Finish Setup” |
Masters fully configured | “Setup Complete” | “View” |
All masters for the application not setup | Setup Masters | Activate (Greyed out and not clickable) |
All masters have been successfully configured but application has not been made live by the user | View Client Interface | Activate (clickable) |
The application is currently live | View Client Interface | Disable |
Configured successfully | Completed |
Unsuccessful attempt made to configure | Failed |
Configuration attempt not made yet | Not Done |
Configuration currently ongoing | in Progress |
1 | TOFU |
|
|
2 | MOFU |
|
|
3 | BOFU |
|
|
Signup |
Email Verification |
Account Management |
User Management |
Home V1 | Home V2 |
Guided Tour |
Account with Default Demo data |
UX Revamp |
Localisation Correction |
Product - MDMS mapping |
Default Tenant - Master Data configurations |
Workflow (Table) | Workflow (builder UI) |
Localisation (WB) | Localisation (overlay UI) |
SMS (on/off) | SMS (templates) |
Tenant | Product Specific Configurations |
Complaints | Property Tax | FSM |
Employee Management | Licences | Revenue and Expense Management |
Campaigns | Challans | Works Management |
Tenant | BPA |
Link to Academy |
Guided devops worklow |
Access for Development |
Access to Deploy |
Plugin for developers (Like Visual Studio) |
Dashboard for operations and Maintenance |
DIGIT Infra-Suite |
Billing and Subscription |
Data Security |
Policy |
Import data from other Applications |
Superuser | All actions associated with Sandbox & its products |
Admin | Employee Management + All Complaints actions (including viewing dashboards) |
Employee | View Inbox |
Complaints-Admin | All Complaints actions (including viewing dashboards) |
Assigner | File Complaint, Assign Complaint, Reject Complaint, Reassign Complaint |
Resolver | Resolve Complaint |
The Complaints product is used for public grievance redressal by Urban Local Bodies globally. Using the citizen portal, citizens can lodge and track complaints till resolution.
Your Sandbox account provides you with a citizen portal to explore the experience a citizen would have when filing a complaint. To access the citizen portal, click the citizen portal link on the right panel. The portal will open in a new tab.
Through the citizen portal, a user can do the following:
Unlike the Sandbox account, the citizen portal requires users to self-register via their mobile numbers.
Complaint status for rating: Resolved
View the list of filed complaints as described above.
Select the complaint that you want to rate.
A summary of the complaint details and timeline will be displayed.
Complaints whose status is resolved but have not yet been rated will have a 'rate' option next to them.
Click the rate option - you will be directed to a screen where you can provide rating and feedback.
Authentication is a process that verifies the identity of a user before granting access to a system. It ensures that only authorized users can access specific resources and perform actions. There are various authentication methods, each providing different levels of security and user experience.
Description: The most common authentication method where users provide a username and password to access the system.
Implementation:
Password Storage: Use secure hashing algorithms (e.g., bcrypt, Argon2) to store passwords.
Password Policies: Enforce policies for password complexity, length, expiration, and reuse prevention.
Login Process: Users enter their credentials, which are verified against the stored hashed password.
Advantages: Simple and widely understood by users.
Disadvantages: Susceptible to brute force attacks, phishing, and poor password practices.
Description: An additional security layer where a one-time password is sent to the user’s email or phone, which must be entered along with the primary password.
Implementation:
OTP Generation: Generate a unique, time-limited code using algorithms like TOTP (Time-Based One-Time Password) or HOTP (HMAC-Based One-Time Password).
OTP Delivery: Send the OTP to the user’s registered email or phone via SMS.
Verification: Users enter the OTP, which is validated by the system.
Advantages: Adds a second layer of security beyond the password.
Disadvantages: Dependence on email/SMS delivery and potential for interception.
Description: Combines two different authentication methods, typically a password and an OTP.
Implementation:
Primary Authentication: The user enters their password.
Secondary Authentication: The user enters an OTP received via email, SMS, or generated by an authenticator app.
Verification: Both the password and OTP must be correct for access.
Advantages: Significantly increases security by requiring two independent forms of verification.
Disadvantages: More complex user experience and requires additional setup.
Description: Allows users to log in once and access multiple related systems without needing to log in again for each system.
Implementation:
Identity Provider (IdP): Set up an IdP that authenticates the user.
Service Providers (SPs): Configure SPs to trust the IDP for authentication.
SSO Protocols: Use standard protocols like SAML (Security Assertion Markup Language), OAuth, or OpenID Connect.
Session Management: Manage user sessions across multiple systems seamlessly.
Advantages: Improves user experience by reducing the number of login prompts and centralizing authentication.
Disadvantages: If the IDP is compromised, all connected systems are at risk
Authentication methods can be configured at the root tenant level to provide flexibility and security tailored to different organizational needs. Each root tenant can decide which authentication methods are available for their users.
Default Login Type: The tenant admin can configure a default login type for all users within the tenant.
Enable User-Based Login Configuration: If enabled, users can choose or change their login type from the available methods configured by the tenant.
Disable User-Based Login Configuration: If disabled, the login type will be strictly enforced based on the tenant's default settings.
Scenario 1: Default Password-Based Authentication
Tenant: Punjab
Default Login Type: Password
User-Based Login Configuration: Disabled
Outcome: All users in Acme Corp must use password-based authentication. They cannot choose or change their login method.
Scenario 2: User Choice Between Password and OTP
Tenant: Karnataka
Default Login Type: Password
User-Based Login Configuration: Enabled
Available Login Methods: Password, OTP
Outcome: Users in Beta Inc. can choose between password and OTP for logging in. The choice can be updated based on user preference.
Scenario 3: Enforced 2FA
Tenant: Maharashtra
Default Login Type: 2FA (Password + OTP)
User-Based Login Configuration: Disabled
Outcome: All users in Gamma Ltd. must use 2FA, combining password and OTP. Users have no option to change this setting.
Complaint status to reopen: Resolved
A complaint can be reopened if the resolution is unsatisfactory. To reopen a complaint,
Navigate to the list of filed complaints and select the complaint to reopen.
If the complaint has been resolved fewer than 5 days back and not yet rated, the option to reopen the complaint will be visible.
Reopened complaints will again go over the same process as newly filed complaints.
|
|
|
|
|
|
Save changes screen |
| Password Change Screen |
Default Screen
|
Create new user
|
List of users
|
Modify user
|
Invitation Email Content Dear <username>, <Invitee> has invited you to DIGIT Sandbox Application. Please use the following link to join <Link> Best Team DIGIT |
|
Onboarding after invitation
|
|
|
To begin using Sandbox -
Navigate to the url - https://digit-lts.digit.org/sandbox-ui/user/sign-up
Enter your Email Address and Organisation/Account Name. Select the box for By clicking, I accept the Privacy Policy. Click on the Sign Up button.
You will receive an OTP on the given email address. Enter OTP.
The system configures the setup of an instance for you. Once the instance is configured, the system displays your Sandbox URL. Copy URL. Click on Continue.
The system displays the Sandbox landing page. Scroll down for information on what is Sandbox and what activities you can do on Sandbox. Click on the Continue button to proceed.
Enter the URL created by the system for your Sandbox instance at the time of registering. Enter the registered Email Address. Check mark the box for By clicking, I accept the Privacy Policy option.
Click on Continue. Enter the OTP received on your registered email address. Click on Confirm. You are logged in.
Click on the Home button on the left panel to begin exploring the Sandbox.
Click on the user profile icon available on the top right corner of the page. Click on the Edit Profile option.
You can edit your user Name and Mobile Number. Add details like Gender, City and a profile photo to personalise your account. Note that the Email Address cannot be changed. Click on Save once you have made the required changes.
Click on the user profile icon available on the top right corner of the page. Click on the Logout option.
Click on Yes, Logout to confirm. You are logged out of the Sandbox.
To file a complaint -
Navigate to the home page of the citizen user. Click on File a Complaint.
Select Complaint Type from the given options. Click Next. If your complaint does not match any of the categories given in the list, select Others.
Choose Complaint Sub-Type from the list given for the selected complaint type. Click Next.
Provide the location details to Pin Complaint Location. Click Next. Click Skip and Continue if you are unable to pin the complaint location.
Enter the Pincode. Click Next. Click Skip and continue if you do not know the pincode for the complaint location.
Select the applicable City and the Locality/Mohalla to identify the location of the complaint. The list of localities is determined by the boundary master. Click Next.
Provide a Landmark for easy identification of the complaint spot. Click Next. Click Skip and continue if you are unable to provide a landmark.
Click on the camera icon to Upload complaint photos as evidence. Click Next. Click Skip and continue to proceed without the photos.
Provide additional details in the given box in the context of the complaint. Click Next.
Your complaint has been submitted. Make a note of the complaint number for future reference. Click on Go back to home page button to navigate to the landing page.
This page details the functional and technical requirements for managing accounts/tenants, users, tokens (JWT), and handling authentication and authorization within the system. The goal is to standardize APIs, unbundle CITIZEN information from authentication and authorization (Auth&Auth), and replace user types with predefined roles.
The system includes features such as
multitenant support
tenant creation/update/search
tenant-level authorization
data isolation, and configuration options for administrators
The Account/Tenant Management system will facilitate the creation, updating, and searching of tenants/accounts within the application. It will enforce tenant-level authorization to ensure data isolation and security. Configuration options will allow administrators to configure tenant-level details like login type, and data isolation approach.
Click on the below link to learn more about Tenants -
Create Tenant:
Develop an API to allow the creation of new tenants. This API should accept necessary tenant details such as tenant name and contact information.
Input:
Output: Confirmation message upon successful creation.
Send the OTP to the email address
Verify OTP
On successful verification create a super user for the tenant
Send the super user credentials to the registered email
Activate Account And Admin User:
After a user registers in the sandbox, a mail will be sent to the user to verify his email address. Once the user clicks on the link sent in the mail, the email address will be marked as verified and the user will be redirected to the Set Password page.
Open Questions:
Should we have an approval process to activate a newly created tenant? Or we can allow self-approval on successful email verification
Update Tenant
Description: Ability to update existing tenant information.
Input: Tenant ID and updated details.
Output: Confirmation message upon successful update.
Search Tenants
Description: Ability to search for tenants based on criteria.
Input: Search parameters (name, code).
Output: List of matching tenants.
Ensure data isolation between tenants to prevent unauthorized access.
This approach provides strong data isolation and independence between tenants. It is suitable when tenants require strict data segregation, has diverse infrastructure requirements, or when regulatory compliance demands it. Functionality:
Provisioning: The client will provision the DB
Configuration: The client will configure the DB details in the sandbox environment
Connection Management: Manage database connections dynamically based on the tenant's context.
Pros:
Strong Isolation: Provides robust isolation between tenants, minimizing the risk of data leakage or unauthorized access.
Performance: Each database instance can be optimized independently for better performance.
Cons:
Resource Overhead: Requires additional resources (memory, CPU, storage) to manage multiple database instances.
Management Complexity: Administrators need to manage and monitor multiple databases, increasing operational overhead.
This approach strikes a balance between resource efficiency and data isolation. It is suitable for scenarios where tenants can share the same database infrastructure but still require some level of data segregation. It simplifies management compared to separate databases while providing better isolation than a single shared schema. Functionality:
Schema Creation: Automatically create a new schema for each new tenant within the shared database.
Schema Switching: Switch database connections to the appropriate schema based on the authenticated tenant's context.
Pros:
Resource Efficiency: Utilizes a single database instance, reducing resource overhead compared to separate databases.
Simplified Management: Centralized management of a single database instance simplifies administration tasks.
Cons:
Limited Scalability: May face scalability challenges as the number of schemas grows within the shared database.
Potential for Contention: Resource contention may occur if multiple tenants heavily utilize the shared database.
This approach optimizes resource utilization by sharing the same database schema among all tenants. It is suitable for applications where tenants have similar data access patterns and the ability to filter data based on tenant ID meets the requirements. While it simplifies management and scales well, it may introduce complexity in ensuring data isolation and may impact performance.
Default Data Scheme: Unified Schema with Tenant-Tagged Data (No config required the source details will get fetched from “Master Tenant”)
Schema Within Shared Datastore:
Configure schema name (Default schema name will be schema name)
Configure User Name
Configure Password
The connection URL will be fetched from the Master Tenant
Isolated Database:
Configure Connection Url
Configure Schema Name
Configure Username
Configure Password
Allowed login types
Password
OTP
2FA(Password+OTP)
Biometric
Login Expiry Time(in Sec)
Enable social login
Enable captcha
Password Policy
A root tenant admin can create sub-tenants using the Sub Tenant APIs
To log in as a citizen user -
Click on the second item on the Guide panel on the right side of the screen - How do I access the citizen and employee portals?
Click on the Citizen Portal link. The portal opens in a new tab.
Enter your Mobile Number. Click on Next. Note that currently only India mobile numbers (+91) are supported in the citizen portal.
Enter a User Name. Click on Next.
Enter the OTP received on the given mobile number. Click on Next. You are now logged in.
Enter your location in the Search bar and click to find the location. Select the given City. Click on Continue.
Authorization is the process of granting or denying access to resources and actions within a system based on a user's authenticated identity. Once a user has been authenticated, authorization determines what the user is allowed to do. It involves defining and enforcing rules that specify which users or roles can access specific resources or perform certain actions.
Groups of permissions assigned to users. Roles simplify the management of user permissions by grouping related permissions. The below table shows the list of operations.
Input:
Field | Type | Required | Min Length | Max Length | Validations |
---|---|---|---|---|---|
Action refers to a specific operation that a user, process, or system can perform on a resource. Examples of actions include read, write, delete, update, execute, etc. While a resource represents the entities or objects that need to be protected. Resources can be files, databases, API endpoints, services, or any other assets that require controlled access. In DIGIT, resources are generally API endpoints.
Input:
Field | Type | Required | Min Length | Max Length | Validations |
---|---|---|---|---|---|
Role-action mapping is the association between roles and actions, defining which actions are permitted for each role on specific resources. The mapping is required to provide Role Based Access Control(RBAC) functionality.
Input:
Define the roles and their associated permissions:
Property Admin: Has access to all property-related APIs (property/*).
Property Creator: Has access only to create properties (property/_create).
Property Updater: Has access only to update properties (property/_update).
Property Searcher: Has access only to search properties (property/_search).
Click on My Complaints.
The list of complaints you filed is displayed on the screen. Click on the Open button to view the complaints' status and details.
Roles who can perform this action: All employee roles (refer to table here).
Navigate to Complaints >> Complaints Inbox in the left panel.
Apply the search filters available in the Inbox screen to find a specific complaint. Complaints can be searched using the Complaint Number or Mobile Number. Alternatively, use the filters listed below:
Assigned to me - view complaints assigned to the logged-in user
Assigned to all - view complaints assigned to all employee users
Complaint Subtype - filter complaints based on selected complaint subtype
Locality - filter complaints based on selected locality
Status - filter complaints based on the selected status of the complaint
Roles who can perform this: Superuser/Admin/Complaints-Admin/Employee
Click on Complaints >> New Complaint on the left panel.
Enter the Complainant Details - Citizen Mobile No. and Citizen Name. Select the applicable Complaint Type and Complaint Subtype in the Complaint Details section.
Enter the Pincode, City, Locality/Mohalla and Landmark details in the Complaint Location segment. Enter any Additional Details in the box to provide specific information.
Click on File Complaint to submit the complaint.
Roles who can perform this action: Superuser, Admin, Complaints-Admin, Resolver
Complaint Status for action: Pending at LME
View complaints to find the list of complaints. Click on the applicable complaint number to open the complaint.
Scroll down to view the complaint details. Click on Take Action. Enter any Comments and click on Choose File to upload supporting documents in context. Click on Resolve.
You can reassign if the complaint needs further processing from another department/unit. Click on the Reassign option to reassign the complaint to another employee.
The Complaints require the configuration of master data, which is a means of fine-tuning product behaviour. Sandbox configures master data with default values as soon as you finish signing up. This means that Complaints is ready for use immediately.
The Complaints module requires the below masters:
Master Name | Purpose |
---|---|
Navigate to Complaints >> Configure in the left panel. Click on Edit Master.
Click on the edit icon in the Actions column for the applicable Master Name.
Click on Add Master Data to add to the selected master data list.
Add the master data details as required. Toggle the Active button to True or False as required. Click on the Add data button to append the details to the database. Click on the Bulk Upload button to upload the master data from a file.
Navigate to Employee Management >> Create Employee on the left panel.
Fill in the employee details on the form. Refer to the table below for input reference details.
Field | Mandatory (Y/N) | Description |
---|---|---|
Click on Submit to create the employee record. Click on Go back to home page button to navigate to the home page. Refer to the Role-Action Mapping table for details on assigned roles and permissions linked to each role.
Below is a list of roles that an employee can be assigned, along with the permissions associated with the role:
To save a Sandbox user the trouble of creating employees, the module has 2 employee roles pre-created for you to use.
Roles who can perform this action: Superuser, Admin, Complaints-Admin, Assigner.
Complaint Status for action: Pending for Assignment
View complaints to find the list of complaints. Click on the applicable complaint number to open the complaint.
Scroll down to view the complaint details. Click on Take Action. Select Assign Complaint to assign the complaint for further processing.
Select the Employee Name for assigning the work on the complaint. Add any Comments if required. Use the Choose File option to upload any supporting documents in context to the complaint. Click on Assign.
Complaints can be rejected if the assigning officer finds some discrepancy or errors in the filed complaint. Enter any Comments in the box and click on the Choose File button to upload supporting documents in context, if required. Click on Reject.
Navigate to Employee Management >> Search Employee option on the side left panel.
Use the search filters on the search page to find specific employees. The available filters include:
ULB
Department
Role
Employment Status
Name
Mobile number
Employee ID
A comprehensive set of videos describing Sandbox functionalities and user flows
Topics covered in the video - Role Selection & Demo Flow
The video illustrates how to file a complaint in Sandbox, as part of the Government Administrator experience, without navigating to the citizen portal
The video illustrates how to process a complaint in Sandbox using the Inbox link in the Complaints Card.
The video introduces you to the Employee Portal, and explains how to login to the portal.
The video aims to give a brief overview of Employee management and illustrate how to create an employee
The video illustrates how to add a complaint sub-type by modifying the Complaints Category master.
(Coming soon)
A usage guide for Employee Management
Employee Management (EM) creates users who can access and use DIGIT applications. Traditionally used to add employees belonging to various urban local bodies, the module allows the creation of new users (employees), the assignment of roles to them, and the specification of their jurisdiction.
A Sandbox account creator is assigned a Superuser role by default, meaning that they can perform all actions associated with a particular application.
However, in real-life use cases of DIGIT applications, different roles are assigned to different users. For example, the person who assigns a complaint is likely to be different from the person who resolves it.
Hence, the employee management module allows a Sandbox user to View applications from the perspective of different stakeholders by allowing user creation and role assignment.
You can log in as an employee in the employee portal using the ID, which is an email address. You can obtain the ID from Search Employees in Employee Management.
Click on the below options to start using the Employee Management module.
Prior to use, the Employee Master requires the configuration of master data, which is a means of fine-tuning product behaviour. Sandbox configures master data with default values as soon as you finish signing up. This means that the employee master is ready for use immediately.
Below is the list of masters required by the Employee Management module:
Master Name | Purpose |
---|
Navigate to Employee Management >> Configure option in the left side panel.
Click on Edit Master.
Click on the edit icon specific to the master record that you want to edit.
Browse through the master data records. Click on the Add Master Data button to append to the master data record.
Enter the master data details and click on Add Data to add the record to the database. Click on the Bulk Upload button to upload records in bulk from a CSV or XLS file.
The master data is appended to the Employee Master database.
and click on the Employee ID to modify details.
Scroll down to the Take Action button. Click on Edit Employee to make changes.
Make the required changes and click on Submit to save the details.
Click on the Deactivate Employee option to deactivate an active employee.
Select the Reason for Deactivation. Enter Order No., if applicable. The Effective Date for deactivation will be the current date by default. Click on the Choose File button to upload any supporting documents. Enter any Remarks. Click Deactivate Employee.
Note that complaints cannot be assigned to a deactivated employee.
to find out how to log in as an employee.
Field | Type | Required | Min Length | Max Length | Validations |
---|---|---|---|---|---|
Field | Type | Required | Min Length | Max Length | Validations |
---|---|---|---|---|---|
Role | Actions |
---|---|
Employee ID | Employee Role | Permissions |
---|---|---|
- The video illustrates how to search the list of created employees in Employee Management, and the actions you can perform on a created employee.
- The video provides an overview of product configuration in Sandbox, and how to access the master data for editing. This video also touches upon the operations that can be performed on master data.
Name
String
Y
4
128
Allow alphabet only
Code
String
Y
2
16
Unique check
Description
Text Area
N
2
512
isActive
Boolean
N
NA
NA
Make active after email verification
String
Y
5
254
Email validation
Name
String
Y
4
128
Allow alphabet only
Code
String
Y
2
16
Unique check
Description
Text Area
N
2
512
isActive
Boolean
N
NA
NA
True/False
uri
String
Y
1
100
Allow alphabet only
accessType
String
Y
2
16
Enum (OPEN, PROTECTED)
description
Text Area
N
2
512
NA
isActive
Boolean
N
NA
NA
True/False
tag
array
N
1
64
Allow alphabet only
tenantId
String
Y
1
50
Allow alphabet and dot only
roleCode
String
Y
1
20
Allow alphanumeric only
actionId
String
Y
36
36
uuid
isActive
Boolean
N
NA
NA
True/False
Superuser
All actions associated with Sandbox & its products
Admin
Employee Management + All Complaints actions (including dashboards)
Employee
View Inbox (list of complaints)
Complaints-Admin
All Complaints actions (including dashboards)
Assigner
File Complaint, Assign Complaint, Reject Complaint, Reassign Complaint
Resolver
Resolve Complaint
Assigner@demo.com
Assigner
File Complaint, Assign Complaint, Reject Complaint, Reassign Complaint
Resolver@demo.com
Resolver
Resolve Complaint
The Root App is a pure JavaScript application based on the Single-SPA framework. It serves as the primary orchestrator for loading and managing multiple micro frontends within a single-page application (SPA). The application uses Single-SPA's layout engine and micro frontend configuration to dynamically load and render micro frontends based on a predefined layout.
Single-SPA Core
Purpose: Provide the core functionalities for registering, loading, and managing micro frontends.
Responsibilities:
Register micro frontend applications.
Start the Single-SPA application orchestrator.
Manage lifecycle events of the micro frontends.
Single-SPA Layout
Purpose: Define the layout structure of the microfrontends.
Responsibilities:
Parse the layout configuration.
Construct routes based on the layout.
Activate the layout engine to manage micro frontend positioning and rendering.
Micro frontends Applications
Purpose: Individual micro frontend applications that provide specific functionalities within the root app.
Responsibilities:
Implement specific business logic and UI components.
Be dynamically loaded based on the route and layout configuration.
Custom Properties
Purpose: Provide dynamic properties to microfrontends.
Responsibilities:
Extract and pass the root tenant information from the URL.
Provide the base application URL to micro frontends.
getRootTenant
Function
Purpose: Extract the root tenant from the URL.
Layout Configuration
Purpose: Define the layout structure using Single-SPA layout configuration.
Micro frontend Applications
Purpose: Define and register micro frontends based on the layout configuration.
Layout Engine
Purpose: Manage the positioning and rendering of microfrontends.
Register Applications
Purpose: Register each micro frontend application with custom properties.
Start Single-SPA
Purpose: Start the Single-SPA orchestrator.
Initialization
On application start, the getRootTenant
function extracts the root tenant from the URL.
The constructRoutes
function parses the micro frontend layout configuration.
Application Registration
The constructApplications
function constructs the applications based on the routes.
Each application is registered with custom properties, including rootTenant
and baseAppURL
.
Layout Management
The constructLayoutEngine
function activates the layout engine to manage micro frontend positioning.
Application Start
The start
function initializes the Single-SPA framework, enabling micro frontend orchestration.
This document provides a detailed design for implementing the high-level architecture of the "Sandbox UI" host application and its associated remote applications. It includes detailed steps for handling tenant information, routing, and integration of remote applications with shared components and CSS.
Sandbox UI can be divided into the following modules:
Shared Components
Root App
User App
Data Management
Account Management
Boundary Management
Workbench
Client Apps
The DIGIT UI framework requires updates to support handling multiple tenants and integrate seamlessly with Sandbox environments. This involves modifications to the global configuration, core UI components, and various modules to ensure smooth functionality.
The Workbench Module is designed to manage Master Data Management System (MDMS) data and localization data within the system. This module supports comprehensive CRUD operations (Create, Read, Update, Delete) for both MDMS data and localization settings, ensuring efficient and seamless data management across the application. When users interact with the Workbench Module to set up any module, the base Workbench fetches the required MDMS data, determines the number of masters that need to be configured, and loads them accordingly.
Workbench Home: Displays the main dashboard for MDMS and localization management features.
Setup MDMS: Provides functionality to configure and manage MDMS data structures and schemas.
Create MDMS Data: Allows the creation of new entries in the MDMS, including defining data attributes and relationships.
Edit MDMS Data: Enables the modification of existing MDMS entries, allowing updates to data attributes and relationships.
Manage Localization: Provides tools for managing localization data, including adding, editing, and deleting localized content.
Create Localization Data: Allows the addition of new localization entries for supported languages.
Edit Localization Data: Enables the editing of existing localization entries to ensure up-to-date and accurate translations.
Workbench Home:
Screen Route: /sandbox-ui/workbench/home
Data Fetch: Retrieves an overview of MDMS and localization data, including tenant-specific configurations and available datasets.
Client Store: Updates the client store with the fetched data for display on the dashboard.
Setup MDMS:
Screen Route: /sandbox-ui/workbench/mdms-setup
Data Fetch: Retrieves details on MDMS schemas, data structures, and related configurations from the MDMS.
Client Store: Updates the client store with setup details, enabling management of MDMS configurations.
Create MDMS Data:
Screen Route: Accessed via the Setup MDMS component.
Data Fetch: Fetches schema and structural data from MDMS to facilitate the creation of new entries.
Client Store: Updates the client store with new data after creation, ensuring the data is reflected across the system.
Edit MDMS Data:
Screen Route: Accessed via the Setup MDMS component.
Data Fetch: Retrieves existing MDMS data based on the selected entry for editing, including related schema details.
Client Store: Updates the client store with edited data upon submission, ensuring accurate data representation.
Manage Localization:
Screen Route: /sandbox-ui/workbench/localization-manage
Data Fetch: Retrieves existing localization data, including supported languages and current translations.
Client Store: Updates the client store with localization data for management and display.
Create Localization Data:
Screen Route: Accessed via the Manage Localization component.
Data Fetch: Fetches the list of supported languages and existing localization keys from the system.
Client Store: Updates the client store with newly created localization entries.
Edit Localization Data:
Screen Route: Accessed via the Manage Localization component.
Data Fetch: Retrieves existing localization data for editing, including language-specific entries.
Client Store: Updates the client store with edited localization data after submission.
The Workbench Module fetches tenant information from the host app to ensure data consistency.
Synchronizes tenant data and related configurations between the host app and the Workbench Module.
Workbench Home Screen: Displays a comprehensive dashboard for managing MDMS and localization features, with options to view, manage, create, or edit entries.
Setup MDMS Screen: Provides tools for managing MDMS data structures, including schema configuration and data entry points.
Create MDMS Data Screen: A form to define and submit new MDMS data entries.
Edit MDMS Data Screen: A form pre-populated with existing data for editing and submission.
Manage Localization Screen: Tools for managing localization entries, including viewing, adding, editing, or deleting localized content.
Create Localization Data Screen: A form to input new localization details, including translations for supported languages.
Edit Localization Data Screen: A form pre-filled with existing localization data for modification and submission.
The Master Data is designed to handle various entities within the application. This includes managing modules, tenants, boundaries, and schemas.
Component: Sidebar
Attributes:
actionId: string
order: number
path: string
navigationURL: string
iconName: string
name: string// Some code
Functionality:
Based on logged in user and roles we get list of actions user can perform,
Fetches navigation data based on actionId,
Renders navigation links in order based on order
attribute.
Uses navigationURL
for navigation and iconName
for displaying icons.
Signup Component
Component: Signup
Attributes:
screenName: string
steps: Array<{bannerImage: string, text: string}>
Functionality:
Renders steps of the signup process.
Handles user input for each step.
Validates input and progresses to the next step.
SignIn Component
Component: SignIn
Attributes:
type: 'password' | 'otp'
fields: {username: string, password?: string, otp?: string}
Functionality:
Renders login form based on type
.
Handles OTP resend logic if type
is otp
.
Home (Help) Component
Component: HomeHelp
Attributes:
youtubeLink: string
locale: string
Functionality:
Fetches and displays YouTube help link.
Provides localized help content.
Setup Sandbox Home Component
Component: SetupSandboxHome
Attributes:
actionId: string
order: number
buttonName: string
navigationURL: string
iconName: string
name: string
module: string
Functionality:
Fetches setup data from Role Action service.
Renders buttons and links for initial sandbox setup.
Application Home Component
Component: ApplicationHome
Attributes:
actionId: string
order: number
buttonName: string
navigationURL: string
iconName: string
name: string
module: string
Functionality:
Fetches application features from Role Action service.
Displays dashboard for managing active applications.
ModuleMaster Component
Component: ModuleMaster
Attributes:
moduleName: string
schemas: Array<{schemaCode: string, type: 'common' | 'module' | 'other', canShowDefaultData: boolean}>
Functionality:
Links modules to master data schemas.
Displays list of schemas and their attributes.
Master Home Screen Info Component
Component: MasterHomeScreenInfo
Attributes:
masterName: string
content: {headerCode: string, data: any}
helpVideo: string
buttonName: string
buttonLink: string
icon: string
Functionality:
Fetches and displays master data entities.
Provides navigation links and help videos.
ModuleBoundaryTenant Component
Component: ModuleBoundaryTenant
Attributes:
moduleName: string
tenant: string
subTenant: string
boundaryHierarchyType: string
boundaryHierarchyLevel: number
Functionality:
Links modules to boundaries and tenants.
Displays hierarchy and levels for each boundary and tenant.
Impact Changes Details On Client Apps
The DIGIT UI framework requires updates to support handling multiple tenants and integrate seamlessly with Sandbox environments. This involves modifications to the global configuration, core UI components, and various modules to ensure smooth functionality.
Current State:
The global configuration is designed to handle single-tenant information from the base application.
Required Changes:
Update Configuration: Modify the global configuration to support multiple tenants.
Configuration Structure: Redesign the configuration structure to include tenant-specific settings.
Dynamic Loading: Implement logic to dynamically load tenant configurations based on the tenant information received from the base application.
Impact:
Ensures the application can handle requests from multiple tenants simultaneously.
Improves scalability and flexibility of the Digit UI framework.
Current State:
Core UI components are designed to fetch and display data for a single tenant.
Access control logic is based on single-tenant information.
Required Changes:
Fetch Logic: Update the core UI components to fetch data based on the tenant context.
Tenant Context: Introduce a mechanism to pass tenant context to UI components.
Access Control: Revise the access control logic to consider multiple tenants.
Role-Based Access: Ensure role-based access control supports multiple tenants by updating the roles and permissions structure.
User Service: Integrate with the new User Service.
Impact:
Enhances the core UI components to be tenant-aware.
Ensures accurate data fetching and access control across multiple tenants.
Maintains security and proper access management in a multi-tenant environment.
Current State: Modules need to fetch the module tenant configuration and operate accordingly, either at the tenant or subtenant level. The same applies to boundary hierarchies, as the system will contain multiple boundary hierarchy definitions and datasets. Thus, the module should determine which hierarchy and level it should function within.
Required Changes:
Tenant Awareness: Make all modules tenant-aware by updating their internal logic to handle multiple tenants.
Module Initialization: Ensure modules initialize correctly with tenant-specific data.
Data Handling: Adapt data handling processes within modules to support multiple tenants.
Impact:
Enables modules to function correctly in a multi-tenant setup.
Ensures data integrity and consistency across different tenant contexts.
Complaints Modules following Master Data to be created, to enable it.
HRMS:
HRMS Modules following Master Data to be created, to enable it.
HCM:
Health Modules following Master Data to be created, to enable it.
Complaint Type
Determines the list of complaint types and sub-types that a user can select from in the dropdowns when filing a complaint.
Department
The department that the complaint is mapped to. This is used solely for reporting purposes.
Name
Y
Name of user (“employee”) to be created
Mobile Number
Y
Mobile number of employee. This needs to be unique. For demo purposes, you can use any mobile number you like as long as it is not shared by another HRMS employee.
Gender
Y
Gender of Employee
Date of Birth
Y
Dd-mm-yyyy format
Email ID
Y
Email ID of employee. This needs to be valid and unique, and will be used for OTP verification.
Correspondence Address
Y
Address of employee. Enter any address here for demo purposes.
Employee Type
Y
Choose whether the employee is permanent, contract, etc.
Date of Appointment
Y
DD-MM-YYYY
Hierarchy
Y
This represents the boundary hierarchy, and can be either revenue or admin. If you have not created a boundary hierarchy and are using the default, you can select either revenue or admin from the dropdown
Boundary Type
Y
Choose “City” if you are going with default boundary configurations.
Boundary
Y
Select your organization name from the drop-down if you are going with default boundaries.
Role
Y
Select a role based on what permissions you want this employee to have. A summary of roles is given below.
Assigned From Date
Y
The date from which employee has been in the assigned designation
Assigned To Date
Y
NA if “Currently Assigned here” is checked. Otherwise, assign any date after “Assigned From Date”.
Please note that an employee has to have at least one current assignment.
Department
Y
The department to assign the employee to
Designation
Y
Designation of the employee. Select any department and designation for demo purposes.
Department | List of departments that an employee can be assigned to. |
Designation | List of designations that an employee can have |
Gender Type | List of genders |
Specialization | List of educational streams |
Employment Type | Lists the various employment relationships that an employee can have. For example, full-time or contract. |
Employment Status | Lists the possible statuses that can be assigned to an employee |
Employment Department | Categorization of employees |
Deactivate Reason | List of reasons that can be provided when deactivating an employee |
This document outlines the architecture for the Sandbox UI host application and its associated remote applications. The architecture utilizes a micro frontend approach, where multiple independently deployable remote applications are integrated into a single host application.
Host App: Sandbox UI
Responsibilities:
Handles tenant information and routing.
Serves as the central point for integrating remote applications.
Key Features:
Obtains tenant information, which is used across various remote applications.
Manages routing between different remote applications.
Remote Applications
Each remote application serves a specific domain and can be developed, deployed, and maintained independently.
User Remote App
Responsibilities:
Handles user-related functionalities such as signup, signin, onboarding, landing pages, and application management.
Key Features:
Interfaces with the host app to receive tenant information.
Manages user sessions and authentication processes.
Account Management Remote App
Responsibilities:
Manages tenants, users, and authentication (AuthN) & authorization (AuthZ).
Key Features:
Provides administrative functionalities for tenant and user management.
Integrates with user authentication services.
Data Management Remote App
Responsibilities:
Manages data for various applications.
Key Features:
Handles CRUD operations for application data.
Ensures data consistency and availability across the platform.
Workbench Remote App
Responsibilities:
Manages Master Data Management System (MDMS), boundaries, and localization.
Key Features:
Facilitates the configuration and management of master data.
Supports localization for different regions.
Client Applications Remote App
Responsibilities:
Handles various client-specific applications such as HCM (Human Capital Management), PGR (Public Grievance Redressal), and HRMS (Human Resource Management System).
Key Features:
Provides specialized functionalities for different client requirements.
Integrates with other remote apps for data and user management.
CSS and UI Components
Responsibilities:
Provides a consistent look and feel across all applications.
Ensures reusable components for UI consistency.
Key Features:
Maintains a component library (Digit UI Components v0.2) for use across remote applications.
Centralized CSS management for styling consistency.
Tenant Management:
The host app retrieves and manages tenant information, which is shared with remote applications to ensure consistent tenant-specific behaviour.
Routing:
The host app handles routing between different remote applications, ensuring a seamless user experience.
Inter-App Communication:
Remote applications communicate with each other and the host app through defined APIs and shared services.
Component Sharing:
Shared UI components and CSS are utilized across remote applications to maintain a cohesive design and improve development efficiency.
Refer to the Logging Into Sandbox page to log in as an employee user. The Role-Action Mapping table below provides the role-specific details configured for employee users.
Employee users can -
The list of roles and corresponding actions each role can perform is listed below:
Role | Description |
---|---|
As part of the Complaints product workflow, each complaint can have multiple statuses throughout its lifecycle. A brief overview of statuses is given below:
The Boundary Management Module is designed to manage Boundary data within the system. This includes components, setting up master data, creating new entries,
1. Boundary Home
Purpose: The main landing page for the Boundary Management module.
Components:
Navigation to other submodules.
Display of tenant information retrieved from the host app.
2. Boundary Hierarchy Type Selection/Creation
Purpose: Allows users to select or create a boundary hierarchy type.
Components:
Dropdown or list for selecting existing hierarchy types.
Button or form to create a new hierarchy type.
3. Create Hierarchy
Purpose: Interface for creating a new boundary hierarchy.
Components:
Form fields to input hierarchy details.
Validation and submission controls.
4. Create Boundary Data
Purpose: Interface for creating boundary data within the selected hierarchy.
Components:
Form fields to input boundary data.
Dropdowns or selectors for hierarchy levels.
Validation and submission controls.
5. View Boundary Upload Status
Purpose: Displays the status of boundary data uploads.
Components:
Table or list view to display upload statuses.
Filters and search functionality for easier navigation.
Users start at the Boundary Home.
From Boundary Home, they can navigate to Boundary Hierarchy Type Selection/Creation.
In Boundary Hierarchy Type Selection/Creation, they can either select an existing hierarchy or navigate to Create Hierarchy to create a new one.
After selecting or creating a hierarchy, users move to Create Boundary Data to input boundary details.
Finally, users can navigate to View Boundary Upload Status to check the status of their uploads.
The Shared Components library is a collection of reusable React components designed for use in the Sandbox Portal. These pre-built UI components aim to standardize and streamline the development of the user interface across various micro frontends within the Sandbox Portal.
Components
Purpose: Provide a set of reusable React components.
Examples: InfoCard, Stepper, Button, Timeline, InfoButton, etc.
Contexts
Purpose: Manage shared state and provide context to the components.
Examples: Authentication context, navigation context, etc.
Higher Order Components (HOCs)
Purpose: Enhance components with additional functionalities.
Examples: withAuth, withNavigator, etc.
Hooks
Purpose: Provide custom React hooks for common functionalities.
Examples: useCustomAPIHook, useLastUpdatedField, useMDMSHook, etc.
Providers
Purpose: Context providers that manage and supply context to the application.
Services
Purpose: Utility functions for API calls, caching, and other service-related tasks.
Examples: genericService, mdmsCache, Request, etc.
State Management
Purpose: Manage the application state using custom hooks and state configurations.
Examples: createState, useAuthState, useDrawerState, useLocaleState, useNavigatorState, useTenantState, useUserState, etc.
Base Components
Base components were from the DIGIT-UI-COMPONENT library.
For more details about the components, documentation, library information, and storybook refer to the provided resources.
The Application Management Module is designed to manage application features and settings within the system. This includes components for viewing the application home, managing features, setting up master data, creating new entries, and editing existing entries. The module interacts with the host app to fetch tenant information and performs CRUD operations on application-related data.
Application Home: Displays the main dashboard for application features.
Setup Master: Provides functionality to set up master data for the application.
Create Master: Allows the creation of new master data entries.
Edit Master: Enables editing of existing master data entries.
Application Home:
Screen Route: /sandbox-ui/application/app-home/module/{module-features}
Data Fetch: Retrieves application features from MDMS (Master Data Management System), including application details and tenant information.
Client Store: Updates client store with fetched data for display.
Setup Master:
Screen Route: /sandbox-ui/application/tenant-manage
Data Fetch: Retrieves master data setup details from MDMS, including subdomains and other relevant data.
Client Store: Updates client store with setup data for management.
Create Master:
Screen Route: Accessed from Setup Master component.
Data Fetch: Fetches data from MDMS, including subdomain and master data details.
Client Store: Updates client store with new master data information upon creation.
Edit Master:
Screen Route: Accessed from Setup Master component.
Data Fetch: Retrieves existing master data details from MDMS, including subdomain and other information for editing.
Client Store: Updates client store with edited master data information.
The Application Management Module fetches the tenant from the host app.
Ensures synchronization between tenant data in the host app and the Application Management Module.
Application Home Screen: Displays a list of application features with options to view, manage, create, or edit features.
Setup Master Screen: Provides options to manage master data setup, including viewing and editing.
Create Master Screen: Form to input new master data details and submit for creation.
Edit Master Screen: Form pre-filled with existing master data details for modification and submission.
The Account Management Module is responsible for handling tenant information within the application. It includes components for displaying tenant homes, managing tenants, creating new tenants, and editing existing tenants. This module interacts with the host app to fetch tenant details and perform CRUD operations.
Tenant Home: Displays the main tenant dashboard with a list of tenants.
Manage Tenant: Provides functionality to manage existing tenants.
Create Tenant: Allows the creation of new tenants.
Edit Tenant: Enables editing of existing tenant information.
Tenant Home:
Screen Route: /sandbox-ui/account/tenant-home
Data Fetch: Retrieves list of tenants from MDMS (Master Data Management System), tenant name, address, and other relevant details.
Client Store: Updates client store with fetched data for display.
Manage Tenant:
Screen Route: /sandbox-ui/account/tenant-manage
Data Fetch: Retrieves tenant details from MDMS, including home address and other necessary information.
Client Store: Updates client store with tenant details for management.
Create Tenant:
Screen Route: Accessed from Manage Tenant component.
Data Fetch: Fetches data from MDMS, including subdomain and tenant name.
Client Store: Updates client store with new tenant information upon creation.
Edit Tenant:
Screen Route: Accessed from Manage Tenant component.
Data Fetch: Retrieves existing tenant details from MDMS, including subdomain and other information for editing.
Client Store: Updates client store with edited tenant information.
The Tenant Management Module fetches the tenant from the host app.
Ensures synchronization between tenant data in the host app and the Tenant Management Module.
The User Module handles the user authentication process, including signup, sign-in, OTP verification, and redirection to appropriate screens based on user actions and authentication status. This module also manages tenant information fetched from the host app.
Signup: Handles new user registration.
Enter OTP: Manages OTP entry for verification.
Successful Signup: Confirmation screen after successful signup.
SignIn: Manages user login.
Home Screen: Displays after successful sign-in or signup.
App Home Screen: Main application screen for authenticated users.
Signup Process:
The user enters signup details.
On form submission, the user is redirected to the OTP entry screen.
OTP Verification:
The user enters OTP.
On successful OTP verification, the user is redirected to the successful signup screen.
SignIn Process:
The user enters login credentials.
On form submission, the user is redirected to the OTP entry screen for verification.
Post Authentication:
After successful signup or sign-in, the user is redirected to the home screen.
The home screen displays the setup for the sandbox app drawer and a help/tutorial video based on BFF (Backend for Frontend) response.
Main Application:
Fetches application states from BFF.
Redirects authenticated users to the app home screen.
The following screens based on the default Tenant
Response screen will have the Client Sandbox Admin Portal Link
The following screens based on the Account/Client Tenant
The Sandbox Connector API serves as a Backend-for-Frontend (BFF) service that allows for bulk data creation, searching, and fetching within a registry. It provides endpoints to handle various data types and operations, such as actions, resources, and seed data. This design outlines the main components, their interactions, and the data flow within the API.
API Gateway
Purpose: Routes incoming requests to the appropriate backend services.
Responsibilities:
Authenticate and authorize requests.
Route requests to the respective endpoints in the Sandbox Connector service.
Aggregate responses from different services if needed.
Sandbox Connector Service
Purpose: Core service handling bulk data operations.
Responsibilities:
Manage bulk data creation, search, and retrieval.
Validate and process incoming data.
Interact with the data store to perform CRUD operations.
Data Store
Purpose: Store and manage data for the Sandbox Connector service.
Responsibilities:
Persist bulk uploaded data.
Store metadata and status information.
Support search and retrieval operations.
API Endpoints
Bulk Data Creation
POST /sandbox-connector/v1/actions/_get
Description: Get the action data based on user roles.
Request Body:
RequestInfo
: Metadata about the request.
ActionDetails
: Details of the actions to be created.
Responses:
200
: Successfully fetched action details.
400
: Invalid input.
POST /sandbox-connector/v1/data/_create
Description: Bulk upload of resource data based on type.
Request Body:
RequestInfo
: Metadata about the request.
ResourceDetails
: Details of the resources to be created.
Responses:
200
: Successfully created resource details.
400
: Invalid input.
POST /sandbox-connector/v1/seed-data/_create
Description: Bulk upload of seed data based on type.
Request Body:
RequestInfo
: Metadata about the request.
EntityDetails
: Details of the entities to be created.
Responses:
200
: Successfully created entity details.
400
: Invalid input.
POST /sandbox-connector/v1/data/_search
Description: Search for API resources based on criteria.
Request Body:
RequestInfo
: Metadata about the request.
SearchCriteria
: Criteria to filter the search results.
Responses:
200
: Successfully fetched search results.
400
: Invalid input.
Status | Description |
---|---|
Superuser
All actions associated with Sandbox & its products
Admin
Employee Management + All Complaints actions (including viewing dashboards)
Employee
View Inbox
Complaints-Admin
All Complaints actions (including viewing dashboards)
Assigner
File Complaint, Assign Complaint, Reject Complaint, Reassign Complaint
Resolver
Resolve Complaint
Pending For Assignment
A complaint has been filed and needs to be assigned to an employee for resolution.
Pending at LME
The complaint has been assigned to an employee for resolution. However, the employee has not yet resolved the complaint.
Resolved
The complaint has been marked as resolved by the employee. However, the citizen has not yet rated the resolution process.
Closed After Resolution
The citizen who filed the complaint has rated the resolution process. The complaint is now closed.
Pending for Reassignment
The complaint has to be reassigned to another employee.
Rejected
The complaint is deemed invalid and is currently not to be processed further.
Closed After Rejection
An end state for the complaint - No further action can be taken on it.