egovernments / Digit-Core

DIGIT is an open source modular Micro-services multi-tenant platform for public service delivery.
https://core.digit.org
MIT License
16 stars 52 forks source link

Redesign and rewrite of MDMS #76

Open sathishp-eGov opened 1 year ago

sathishp-eGov commented 1 year ago

DIGIT is an open source service delivery platform on which several government and private sector organisations build solutions e.g. National Urban Digital Mission leverages DIGIT for National Urban Governance Platform (UPYOG) - 28+ States have signed up to roll out UPYOG to all their urban local bodies. This will help deliver services like Property Tax, Public Grievances, Water DIGIT is an open source service delivery platform on which several government and private sector organisations build solutions e.g. National Urban Digital Mission leverages DIGIT for National Urban Governance Platform (UPYOG) - 28+ States have signed up to roll out UPYOG to all their urban local bodies. This will help deliver services like Property Tax, Public Grievances, Water Connection, Birth/Death Certificate etc. to all citizens. Odisha is rolling out Sanitation Services built on DIGIT across all their urban local bodies. Punjab is rolling out Revenue and Expenditure Management System on DIGIT for all rural drinking water projects.

DIGIT Core consists of 25+ microservices. One of the microservices MDMS helps manage master data that are used by services built on DIGIT. Currently the master data is stored as JSON files in GitHub. This makes it difficult for business users to update master data. This project is to design an upgrade for MDMS to make it easily configurable.

Features to be implemented -

  1. MDMS management service: _create API.
  2. MDMS management service: _search API.
  3. MDMS management service: _update API.
  4. MDMS management service: _delete API (soft delete).
  5. In MDMS we have data with different Master data. Each master will have a specific JSON schema.
  6. There will be a schema validator that will validator data in create and update operations based on the Master name.
  7. This schema validator should validate based on the Master, if any master data don't have a defined schema, or it want's to skip the validation that can also be possible.
  8. There will be one table that will store all MDMS data with the help of jsonb and some other following details - . Each record will have three mandatory fields tenantId, moduleName and masterName. . For one master there can have multiple records, for different modules and tenants.
  9. There will be fallback and other search functionalities same as we have in existing MDMS.
  10. All defined schema will be loaded when service initializing.
  11. Will use caching or other mechanisms to improve search performance.

Learning path, project setup and development details -

DIGIT Platform - Principles, Architecture, Technology, Specifications etc. DIGIT Developer's Guide - Local Setup, Project Setup, Integration with Core Services etc. API Do's and Don'ts

Acceptance Criteria -

All APIs of Performance management service should be functional. The code should be modular with proper separation of concerns and compliant with the code quality we maintain in DIGIT. All queries to extract performance metrics should return correct data for the selected timeframe.

KeenWarrior commented 1 year ago

Hello @sathishp-eGov , Please ensure that the following fields are filled out

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

Here are sample tickets for reference.

Shruti3004 commented 1 year ago

Hey @sathishp-eGov, thanks for detailing it out, can you please also add the tech-stack and the mentors to it. Thanks!

khanjasir90 commented 1 year ago

@sathishp-eGov I am pretty much interested in this project and would like to submit a proposal for the same.

priyanshi0720 commented 1 year ago

Hi, I'm interested in this project. It would be great to work on this project and bring in more creativeness and innovation to the idea.

SigireddyBalasai commented 1 year ago

I am ready to work

amanyadav721 commented 1 year ago

Hey i want to collaborate