APSOC '22 Improved JSON Schema for UI Generation - accordproject/concerto GitHub Wiki

Project Overview

  1. Currently , if a user who is working on Accord Project , wants to create a web form to populate or add data for a template , then they have to create a custom web form for the same , using React JS or any other preferred framework , this is a tedious task for the developers.

  2. So to make the Accord Project more efficient and User-friendly , we can create a library /package that would interrogate the data model for the template and auto-generate a UI which could then be used to view/edit the data in the template.

  3. During the APSOC period I will create a library / package which would generate a custom web form with help of JSON Schema and also make sure that this library is user-friendly and well-documented so that Accord Project developers can easily get acquainted with the same .


Meeting Schedule and Key Points of Discussion

Meeting 1 : July 14 , 2022

  • Basic Introduction Call with all the contributors & mentors.

Meeting 2 : July 20 , 2022

  • Met with Martin to discuss further about the project .
  • Showed the demo project / sample project created , which generates a dynamic form via JSON Schema .
  • Discussed on how to convert Concerto data model format to JSON Schema .
  • Discussed in depth about the project steps and how to convert JSON Schema to UI Schema in order to further use it .

Meeting 3 : July 28, 2022

  • Met Matt and discussed about the future scope of project.
  • Generation of UI Schema using Decorators .
  • Decided to have a weekly meetup with Matt , twice a week .

Meeting 4: August 1, 2022

  • Discussed about the issues that I was facing in generation of UI Schema .
  • Also discussed why is the UI Schema splitting up into 2 parts .

Meeting 5 : August 3 , 2022

  • Met up with Matt and discussed about the UI generation and decided where can we place the function for UI Generation .
  • Figured out about the incompatibilty of generated JsonSchema , with the react-json-schema form , and decided to play along with the "rootType" to get a compatible schema generated .
  • Discussed about the midterm project demo .

Meeting 6 : August 4,2022

  • Prepared for the mid term demo evaluation.

Updates

July 14 - July 21 , 2022

  • Created the sample project and got it approved by Martin .
  • Working on converting the concerto data model format to JSON Schema , using Concerto tools .
  • Researching and understanding Concerto model in a better way .

July 21 - July 28 , 2022

  • Studied the Concert Model in more depth .
  • Converted and tested the existing "concerto compile " command , that converts CTO to JsonSchema .
  • Identified some of the changes that need to be done in "JsonSchemaVisitor" , so that the generated Schema is more imformative & can be used in forms .

July 28 , 2022 - August 1, 2022

  • Met Up with Matt , and discussed about how to move ahead in generating UI Schema through Concerto Model .
  • Used "Decorators" to generate a new UI Schema from the Concerto Model.
  • Made changes in the "JsonSchemaVisitor" so that it can autogenerate UI Schema from the Concerto model in a separate file along with JsonSchema.

August 1,2022 - August 9 , 2022 (Current Status )

  • Figured out the problem in generation of UI Schema , and working on that function , also wrote a function for generation of UI schema , and tried to correct it once .

  • Presented the work done to the Technology wg group on August 4, 2022

  • Demo for the current generated UI Schema : uischema current

  • Worked on adding rootType paramater as an option , in schema generation and successfully completed it . Here is a demo for the same : demo(rootType)

August 15,2022 - Current Status

  • Successfully generated the UISchema as well as the JsonSchema for the .cto model .

  • Will now be moving onto creating a library for the same .

  • Here is a demo for the same : demo (current)