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

[DMP 2024]: Implementer Friendliness for Avni #1536

Open
6 tasks
vinayvenu opened this issue Feb 29, 2024 · 17 comments
Open
6 tasks

[DMP 2024]: Implementer Friendliness for Avni #1536

vinayvenu opened this issue Feb 29, 2024 · 17 comments
Labels

Comments

@vinayvenu
Copy link
Member

vinayvenu commented Feb 29, 2024

Ticket Contents

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 & Mid-Point Milestone

Goals

  • Set up of project complete
  • S feature 1 completed
  • M feature completed
  • [Goals Achieved By Mid-point Milestone]
  • 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.

Expected Outcome

Each item, once implemented, will do one or more of the following

  • Improve the implementer experience
  • Reduce mistakes and rework

Acceptance Criteria

Detailed acceptance criteria will be created on individual stories before the start of the project.

Implementation Details

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

Mockups/Wireframes

No response

Product Name

Avni

Organisation Name

Samanvay Foundation

Domain

Other

Tech Skills Needed

HTML, Java, JavaScript, React, Spring Boot

Mentor(s)

@vinayvenu

Category

Backend, Database, Documentation, Frontend, Refactoring

@ombhardwajj
Copy link

ombhardwajj commented Apr 9, 2024

Hi @vinayvenu , The link to setup Avni with docker given on this https://avni.readme.io/docs/developer-environment-setup-ubuntu leads to 404 not found. Do you have some other link for it?

@nitian-hritik
Copy link

Sir, I want to contribute in this project ...
Please, provide more ideas ..
My Tech Stack: MERN stack,Javascript

@vinayvenu
Copy link
Member Author

@ombhardwajj thanks for pointing it out. Docker-based setup does not exist natively in Avni, although we publish containers on docker-hub. I have removed that part of the documentation.

There is some work done by other projects to set up Avni on Docker. Look up this link.

Btw, you won't be able to develop on Avni if you use their setup as it is not meant to be a developer machine setup. It is best to follow the "regular" procedure.

@ombhardwajj
Copy link

Hey @vinayvenu , I've installed JDK 8 and set Set JAVA_HOME ,also cloned avni-server from Github and also created the database by using make build_db in terminal. I already had postgresql-server and configured the system user to have all privileges on postgres DB. But make start_server gives an error probably because I have not installed postgresql-contrib packages.. I tried looking for them on the internet but could not find a good resource. Could you please assist me. Thank you

@vinayvenu
Copy link
Member Author

@ombhardwajj can't figure out without the error message. Also, best to ask this question on the developer channel for debugging support - https://join.skype.com/xiTU162DSJTd

@shashank007s
Copy link

shashank007s commented Apr 18, 2024

i want this project because i have much idea about this lang.

@Kartik2057
Copy link

Hi @vinayvenu , I would like to work on this project. My tech stack includes core Java, spring boot, JPA. Is there any smaller issue to work on this first?

@vinayvenu
Copy link
Member Author

@AbhimanyuSamagra
Copy link

Do not ask process related questions about how to apply and who to contact in the above ticket. The only questions allowed are about technical aspects of the project itself. If you want help with the process, you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.

@chetanpawar29
Copy link

Hi @vinayvenu , I would like to work on this project. My tech stack includes HTML, core Java, JavaScript, spring boot.Please, provide more ideas ..

@Riyasharma28
Copy link

Respected Mentor @vinayvenu
I'm a Full Stack Developer proficient in HTML, CSS, JavaScript, MongoDB, React.js, Node.js, Bootstrap, Database Management, UI/UX Design, Test-driven Development, and frameworks like Laravel and Material-UI. With over 10 projects completed in similar domains, I'm eager to contribute my expertise to your project. I'm excited about the opportunity to collaborate and drive its success. Looking forward to discussing this further.

@gauravghuge7
Copy link

Respected sir@vinayvenu
I'm a Full Stack Developer good foundation in Html Css, Java, JavaScript, MongoDb Nodejs and frameworks like react Express With 6 to 7 projects and i want to contribute in this project can please provide a opportunity for the contribute in this project

@Rahulkumar2488
Copy link

My name is Rahul Kumar. Web developer fluent in HTML, CSS, JavaScript, and various frameworks. Skilled in creating responsive, user-friendly websites. Proficient in troubleshooting and optimizing site performance. Committed to staying updated on emerging technologies. Passionate about crafting engaging digital experiences. Available for exciting web development opportunities.

@vinayvenu
Copy link
Member Author

@Rahulkumar2488 @gauravghuge7 @Riyasharma28 @Chetan-Vilas-Pawar please see #1536 (comment) for more details on how to apply for the project. If you have project-specific questions, you can ask them here. If you have trouble setting up, Avni developers will be available on the Skype channel at https://join.skype.com/xiTU162DSJTd .

You can find me as well on the Skype channel for quick questions. If you have questions regarding the DMP programme, please use the Discord channel linked by @AbhimanyuSamagra .

@muskansingh17
Copy link

@Rahulkumar2488 @gauravghuge7 I want to do contribute to this project I have also made a certain project using the same application in Intellij using Spring Boot kindly review the same (the project link-https://github.com/muskansingh17/Hotel_Management_System) kindly provide your reference sir.

@shraddha761
Copy link

shraddha761 commented Sep 13, 2024

Weekly Learnings & Updates

Week 1

Explore webapp code base.
Get familiar with Avni UI.
Know about code smell.

Week 2

Get familiar with webapp code base
Get to know about various form of avni.

Week 3

Started working on server code for MetadatataDiff.

Week 4

This week work on avni project of implementer friendliness. Did migration of metadata across organisation. uploading of zip file and showing their difference to user.

Week 5

Structure the output of response which is shown to user through web. improve code readability, optimize code.

Week 6

This week went on code refactoring and code smell.

Week 7

This week is all about researching for web i.e showing output on UI.

Week 8

Learned about code refactoring and optimizing.
Issue: avniproject/avni-server#754

Week 9

Show response according to user.
Issue: avniproject/avni-webapp#1333

Week 10

Started working on UI.

Week 11

Structuring of output according to color in UI.

Week 12

Distribute code in micro services.

@shraddha761
Copy link

shraddha761 commented Sep 13, 2024

Weekly Goals

Week 1

  • Solved issue of server to get familiar with code base.

Week 2

  • Research about Metadata Diff implementation.

Week 3

  • Code for server business logic for comparing difference.

Week 4

  • Commit the working code for showing response through api call.

Week 5

  • Improvement in code according to comments.

Week 6

  • Write test files for business logic.

Week 7

  • Research about UI how response going to visible.

Week 8

  • This week went on code refactoring and code smell.

Week 9

  • Updation of server code for MetadataDifference and structure of output.

Week 10

  • Started working on UI for showing response.

Week 11

  • Improve the UI more for showing response in human readable form.

Week 12

  • Create a micro services for server code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: New Issues
Development

No branches or pull requests