Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Implementer Friendliness for Avni #1535

Closed
6 tasks
vinayvenu opened this issue Feb 29, 2024 · 0 comments
Closed
6 tasks

Implementer Friendliness for Avni #1535

vinayvenu opened this issue Feb 29, 2024 · 0 comments
Labels
duplicate This issue or pull request already exists

Comments

@vinayvenu
Copy link
Member

vinayvenu commented Feb 29, 2024

Description

An implementer on Avni is someone who configures Avni for an NGO. An NGO is setup as an "organisation" on Avni. The implementer typically works with a dozen different NGOs. Avni requires mechanisms for these implementers to be able to configure Avni easily and without making mistakes. A list of changes that will help is given below. Scroll further down for details on each

  • Organisation health verification (M)
    • Overall organisation metadata health verification
    • Overall organisation data health verification
    • Apply immediate health verifications when making changes (such as setting up subject types)
  • Organisation metadata migration (L)
    • Allow definition of organisation types (test, production etc)
    • Create mechanisms to migrate metadata across organisation types. This will include ways to visualise a metadata diff across organisations
    • Allow mechanisms to recreate test environments from production
    • Bonus: Allow partial migrations across organisation
  • Improve usability of the csv upload feature on Avni (S)
    • Good error messages
    • Good sample files (with data)
  • Miscellanous (S)
    • Verification and fix of documentation
    • Ability to remove fast sync for an organisation
    • Disallow fast sync for an organisation
    • Disallow all sync for an organisation

Organisation health verification

When running an organisation on Avni, it is important to pinpoint any data or metadata problems in the system so that we prevent problems in the future by easily fixing them. Specific problems include

  • Sync attributes set up incorrectly in data
  • Subject types that have sync attributes that do not match the way it is setup
  • Duplicate form mappings
  • Users who do not have the right configuration to allow for correct sync
  • Identifier settings wrongly setup, or not enough identifiers allotted
  • Features such as Glific integration turned on, but not set up correctly

The Organisation health verification will identify these problems and report them so that an administrator can take corrective actions. This feature will also include instant verifications that prevent the user from making incorrect changes to configuration.

Organisation metadata migration

When developing an app on Avni, there are usually two organisations - test/UAT and production. This is essential to be able to test changes on one and apply them on another.

The current mechanism of doing this is using a metada download and upload. The download creates a zip file of all changes, and can be used to upload to another organisation.

Some of the issues with this mechanism is that

  • There is no protection against uploading to the wrong organisation
  • There is no way to know what changes are really going to be applied
  • There is no way to upload partial changes. This is really important when there are multiple changes going in parallel and only part of the changes are required to be applied
  • It is hard to migrate to organisation groups, where multiple organisations need the same metadata

The purpose of this feature is to mitigate the above issues and provide an error-free and easy migration of metadata on Avni.

Improve usability of the csv upload feature on Avni and Miscellanous

These changes are small pieces of work that can be worked on as a warmup to work on Avni. These changes help immensely in maintaining organisations.

Goals

  • Set up of project complete
  • S feature 1 completed
  • M feature completed
  • Midpoint evaluation
  • M feature completed
  • L feature completed

Setup/installation

Setup documentation here
Ensure you set up avni-server and avni-webapp for this project. Others are not necessary.

Tips

  • The work in this ticket is organised as multiple smaller features. Each feature, or even parts of it are independently useful, and detailed acceptance criteria (which will be provided before the project starts). The complexity of each feature is mentioned (S is small and simple while L is large and complex), so it is best to start from the S features and move forward with the more complex features.
  • Follow the contribution guide - https://avni.readme.io/docs/development-process
  • Ensure there are sufficient tests, specifically for any server-side change

Implementation details

avni-server is Java/Spring Boot while avni-webapp is a static react based app

Product Name

Avni

Organisation Name

Samanvay Foundation

Domain

Generic (used across health, education, social security, water security etc)

Mentors

@vinayvenu

Category

Maintenance

@github-project-automation github-project-automation bot moved this to New Issues in Avni Product Feb 29, 2024
@github-project-automation github-project-automation bot moved this from New Issues to Done in Avni Product Feb 29, 2024
@vinayvenu vinayvenu added duplicate This issue or pull request already exists and removed DMP 2024 labels Feb 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
duplicate This issue or pull request already exists
Projects
Archived in project
Development

No branches or pull requests

1 participant