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

enhancement: App Builder needs updation #54

Open
11 of 24 tasks
PritamBag opened this issue Sep 25, 2024 · 5 comments · Fixed by #55
Open
11 of 24 tasks

enhancement: App Builder needs updation #54

PritamBag opened this issue Sep 25, 2024 · 5 comments · Fixed by #55
Assignees
Labels
enhancement New feature or request

Comments

@PritamBag
Copy link
Member

PritamBag commented Sep 25, 2024

Problem Statement:

We currently want to make whole apps using app builder which is why we are making multiple builders to build them ( for eg: Model, Form, Page ..etc). This enhancement aims to develop and improve app builder to provide all these features and functionalities etc.


Task List

  • API Endpoint for Each Prop
    Develop API endpoints for each component property to enhance configurability.

  • Issue #57
    Implement a navigator to display the entire UI structure, making layout editing and navigation easier. We need to build functionality for selecting and adding properties for each component.

  • Code View
    Begin development of a code view to allow users to view and edit the underlying code.

  • Canvas Viewer Component
    Update the default canvas viewer component to render from pageJson, with layouts dynamically sourced from the layout manager.

  • UI Design of Page Builder
    Complete the UI design for the Page Builder to ensure a user-friendly experience.

  • Add Layout Toolbox
    Create a layout toolbox that allows users to select various layout options, with placeholders displayed under each layout name after selection.

  • Add Component Toolbox
    Implement a component toolbox for adding and configuring components, including categorization and search functionality.

  • Add Prop Toolbox
    Build a prop toolbox allowing users to modify each component’s properties. Include search functionality, component-based suggestions, and default values.

  • Add Event Toolbox
    Develop an event toolbox to manage interactions and events for components. Include suggestions, as there are approximately 45 default events.

  • Add Styles
    Provide options to apply predefined or custom styles.

  • Style Selector Enhancements
    Add search and suggestion features to the style selector in the prop toolbox for improved usability.

  • Integration with app builder

  • **HISTORY Undo redo **
    The undo/redo feature allows users to revert to previous states of their data and actions. It keeps track of changes made in the system, enabling users to step back to earlier versions or reapply changes. This is useful for correcting mistakes or experimenting with different data configurations without the fear of losing progress.--done by @priyanshu2k3
    redo crash when array is empty

    Integrate the page builder with the app builder, including features for setting module names, page names, history tracking, review requests, and save functionality.


Completed Tasks

  • UI Design of Page Builder
    The initial design of the Page Builder UI is complete, focusing on usability.
  • Add Layout Toolbox
    The Layout Toolbox is functional, allowing layout selection.
  • Add Component Toolbox
    The Component Toolbox enables users to add various components.
  • Add Prop Toolbox
    Users can now adjust component properties via the Prop Toolbox.
  • Add Event Toolbox
    Event management for components is available through the Event Toolbox.
  • Add Styles
    Basic styling options are in place.
  • Icon Functionality for Toggle Toolbox
    Functional icons are implemented for each toolbox, allowing users to control toolboxes through icons.
  • Expand/Collapse Toolbox
    Expand and collapse functionality is operational for each toolbox, enabling users to toggle toolbox content visibility.
  • Each Component Has ID
    Used UUID for each component to ensure unique IDs.
  • Issue #57
    The navigator is functional using pageJson, drag-and-drop capabilities are completed, and components can be cloned
    within their parent containers.
  • ** JSON change detector Store only delta **
    Delta Storage: Captures the differences between two JSON states.
    Efficient Tracking: Minimizes the amount of data stored while maintaining a full history of changes.--done by @priyanshu2k3

Dependencies and Issues

  • RightDrawerLayout Not Working
    The RightDrawerLayout component is incomplete.
  • Issue #57
    Dispatches from the navigator are causing pageJson in the reducer to become null. This issue is under investigation by @anantakumarghosh.
  • Core Issue #399
    Prop types require improvement, as many have invalid types.
  • Style Selector Enhancements
    The style selector is mostly functional with add, remove, and reset options. Additional needs:
    • A search box to locate specific styles.
    • Suggestions relevant to the selected component.
  • Layout Selection
    After layout selection, placeholders should appear within the layout, sourced from the layout manager.
  • pageJson Saved in Database
    pageJson requires a database location for saving. This task is assigned to @PritamIT2023.
  • Core Issue #392
    This is a style-related issue, assigned to @PritamIT2023.

Work in Progress

  • Collapse, Expand, and Three-Dot Menu
    These functionalities are partially implemented, with work ongoing to make them fully operational.

  • Current Progress for the App Builder

  1. We have been defining the data structure for all the data of the given files
  2. Using factory designs pattern in the code
  3. Making multiple builders such as (Model, Form, Page).
  4. Moved the code to Typescript for using Object Oriented Programming principles
  5. Converted the code using Object oriented Programming Principles
@PritamBag PritamBag added the enhancement New feature or request label Sep 25, 2024
PritamBag added a commit that referenced this issue Sep 25, 2024
design a basic ui for PageBuilder in app-builder

Ref: #54
PritamBag added a commit that referenced this issue Sep 26, 2024
now we can select any layout from right side menu and we can see those layout in left side

Ref: #54
anantakumarghosh added a commit that referenced this issue Sep 27, 2024
component menu viewer now works via reducer

ref: #54
anantakumarghosh added a commit that referenced this issue Sep 27, 2024
component menu viewer now works via reducer

ref: #54
PritamBag added a commit that referenced this issue Sep 28, 2024
here json is works, but in ui at first time it works but from child it update in json but not in ui, also add id, also initially when the page is load in json there is no id is visible

Ref: #54
PritamBag added a commit that referenced this issue Sep 29, 2024
when add child component that is not visible in ui, I fix that

Ref: #54
PritamBag added a commit that referenced this issue Sep 30, 2024
add prop selection toggle box, where component name is available, from this we can easily get props of that component

Ref: #54
anantakumarghosh added a commit that referenced this issue Oct 1, 2024
changes implemented to render component in canvas

ref: #54
anantakumarghosh added a commit that referenced this issue Oct 1, 2024
changes to render CoreComponents

ref: #54
anantakumarghosh added a commit that referenced this issue Oct 1, 2024
changes to render CoreComponents

ref: #54
PritamBag added a commit that referenced this issue Oct 3, 2024
adding props icon and functionality added, all types are not working only few are woking currently

Ref: #54
PritamBag added a commit that referenced this issue Oct 4, 2024
add type in json, i mean when add props which is array, object like that it store in json in that type

Ref: #54
PritamBag added a commit that referenced this issue Oct 5, 2024
a dialog is added for adding style class, but it's not currently full functional

Ref: #54
PritamBag added a commit that referenced this issue Oct 7, 2024
adding, removing, double click added for style classes

Ref: #54
PritamBag added a commit that referenced this issue Oct 8, 2024
design is done, but data of selected styleclass is not store in redux, i added the code here in code the store in reducer and render from reducer need to be updation as it currently not working and I'm unable to find bug

Ref: #54
PritamBag added a commit that referenced this issue Oct 9, 2024
now we can add style class for any component and we can see those in JSON

Ref: #54
PritamBag added a commit that referenced this issue Oct 13, 2024
as many code written multiple times which can be a single code with better logic so I do this also give proper comment for existing code

Ref: #54
PritamBag added a commit that referenced this issue Oct 14, 2024
added toogle functionality for component, layout. Also divided component and layout in selectComponent component

Ref: #54
anantakumarghosh added a commit that referenced this issue Oct 15, 2024
handled defaultValidProps and styleClasses

ref: #54
PritamBag added a commit that referenced this issue Oct 15, 2024
just hardcoded to build a static ui for pagebuilder

Ref: #54
anantakumarghosh added a commit that referenced this issue Oct 15, 2024
edit page and local sync button added to pages

ref: #54
@anantakumarghosh anantakumarghosh linked a pull request Oct 15, 2024 that will close this issue
8 tasks
@anantakumarghosh
Copy link
Member

Unintentionally closed.

@anantakumarghosh
Copy link
Member

there are lots of events, props selector looking messy.

PritamBag added a commit that referenced this issue Dec 28, 2024
also added tabs but the implementation of tab is not done yet

Ref #54
MihirRajChowdhury added a commit that referenced this issue Dec 28, 2024
bringing the data from the click of edit on app builder button

ref: #54
PritamBag added a commit that referenced this issue Dec 30, 2024
now if any builderdata is in reducer then no duplicate builderdata is added

Ref #54
PritamBag added a commit that referenced this issue Dec 30, 2024
…in utility function file

also changes impact of it in different file

Ref #54
PritamBag added a commit that referenced this issue Dec 30, 2024
made utility function so in viewers contain we have data, also update reducer

Ref #54
priyanshu2k3 added a commit that referenced this issue Dec 30, 2024
addes the new route

ref #54
priyanshu2k3 added a commit that referenced this issue Dec 30, 2024
addes teh json edditor and also enables undo and redo

ref #54
PritamBag added a commit that referenced this issue Dec 30, 2024
…d remove variable from appnuilder data

made constant in childern of app builder data and remove variable from appnuilder data

Ref #54
PritamBag added a commit that referenced this issue Dec 31, 2024
…ussed previously

add builder json in viewergroup manually as discussed previously

Ref #54
PritamBag added a commit that referenced this issue Jan 1, 2025
some data related fix in model builder, change icon of toolbox group

Ref #54
PritamBag added a commit that referenced this issue Jan 2, 2025
fix reducer related changes, add onclick changes selectedProps and some small fix in ui

Ref #54
PritamBag added a commit that referenced this issue Jan 3, 2025
make toolbar which is like viewers and toolbox

Ref #54
PritamBag added a commit that referenced this issue Jan 3, 2025
…lasses

made changes in appbuilder data and it's child classes

Ref #54
PritamBag added a commit that referenced this issue Jan 3, 2025
those fix are related to toolbar and tab system in builder

Ref #54
PritamBag added a commit that referenced this issue Jan 3, 2025
replace the styleclass code into model class and made some constant

Ref #54
PritamBag added a commit that referenced this issue Jan 3, 2025
made tab feature for appbuilder, now we can see the builder by clicking on the tab, also fix ui related to tab feature

Ref #54
PritamBag added a commit that referenced this issue Jan 3, 2025
add toolbarIconTitle in data classes also implemented it into component

Ref #54
PritamBag added a commit that referenced this issue Jan 6, 2025
the one builder instance is created is once

Ref #54
PritamBag added a commit that referenced this issue Jan 6, 2025
set viewercontent when entity data is available

Ref #54
PritamBag added a commit that referenced this issue Jan 6, 2025
PritamBag added a commit that referenced this issue Jan 6, 2025
change folder and file structure(path)

Ref #54
PritamBag added a commit that referenced this issue Jan 6, 2025
add valid props now it is made using object concept

Ref #54
PritamBag added a commit that referenced this issue Jan 6, 2025
…tory

also write comment in code for better understanding

Ref #54
PritamBag added a commit that referenced this issue Jan 6, 2025
write comment in code for better understanding

Ref #54
PritamBag added a commit that referenced this issue Jan 6, 2025
as we decide we have to pass data in constructor in a pattern so I change that

Red #54
PritamBag added a commit that referenced this issue Jan 6, 2025
make class for entitydata and changes dynnamicattribute with entity data

Ref #54
PritamBag added a commit that referenced this issue Jan 8, 2025
…wer class generic

also fix 2 time data insert of builder data, but has one issue which is if i click on any model it open but if open another model then previous one is removed automatically

Ref #54
PritamBag added a commit that referenced this issue Jan 9, 2025
now checking of duplicate builder data and selected builder is placed in reducer

Ref #54
PritamBag added a commit that referenced this issue Jan 12, 2025
json editor is working, but we need to test it

Ref #54
PritamBag added a commit that referenced this issue Jan 13, 2025
comment down code and remove unused file

Ref #54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants