{"library":"path-framework","title":"Path Framework","description":"Path Framework is an application framework and rendering engine developed at Zurich University of Applied Sciences (ZHAW). It enables the creation of applications based on a technology-independent GUI model defined in JSON format, allowing the underlying rendering engine (e.g., for web, iOS, Android) to be swapped out as needed. Currently in beta version 0.8.0-beta.8, its release cadence is frequent, reflecting ongoing development towards a stable 1.0 release. Key differentiators include an emphasis on extremely rapid application prototyping and development, GUI-based requirements engineering, and a focus on business logic programming rather than direct GUI programming. It supports using either mock data or integrating with any backend REST service, abstracting away UI implementation details. This approach streamlines development by separating the application's structure and behavior from its visual presentation.","language":"javascript","status":"active","last_verified":"Thu Apr 23","install":{"commands":["npm install path-framework"],"cli":null},"imports":["import { PathApplication } from 'path-framework';","import { PathApplicationModel } from 'path-framework';","import { PathBuilder } from 'path-framework';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { PathApplication, PathApplicationModel } from 'path-framework';\n\nconst helloWorldModel: PathApplicationModel = {\n    application: {\n        title: \"Path Demo\",\n        formList: [\n            {\n                id: \"HelloWorldForm\",\n                title: \"HelloWorld\",\n                formFieldList: [\n                    {\n                        id: \"name\",\n                        type: \"text\",\n                        name: \"Project\",\n                        width: 2,\n                        required: true\n                    },\n                    {\n                        type: \"deleteButton\",\n                        name: \"Delete\"\n                    },\n                    {\n                        type: \"cancelButton\",\n                        name: \"Cancel\"\n                    },\n                    {\n                        type: \"okButton\",\n                        name: \"Ok\"\n                    }\n                ]\n            }\n        ],\n        pageList: [\n            {\n                id: \"mainmenu\",\n                name: \"MainMenu\",\n                elementList: [\n                    {\n                        type: \"button\",\n                        name: \"HelloWorld\",\n                        icon: \"fa-fast-forward\",\n                        color: \"alizarin\",\n                        form: {\n                            form: \"HelloWorldForm\"\n                        }\n                    }\n                ]\n            }\n        ]\n    }\n};\n\ntry {\n    const app = new PathApplication(helloWorldModel);\n    console.log(`Path Application \"${app.getApplicationTitle()}\" initialized successfully.`);\n    console.log(`Forms available: ${app.getFormList().map(f => f.getId()).join(', ')}`);\n    console.log(`Pages available: ${app.getPageList().map(p => p.getId()).join(', ')}`);\n    // To render this application visually, you would typically pass 'app' to a rendering engine\n    // like 'path-framework-web' in a browser environment.\n    // Example: new WebPathRenderer(app).render(document.body);\n} catch (error) {\n    console.error(\"Failed to initialize Path Application:\", error);\n}","lang":"typescript","description":"This quickstart demonstrates how to initialize a Path Application using a basic 'HelloWorld' GUI model, verifying its successful setup and access to model elements.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}