/mdd-webapp

Concepts and implementation for a model-driven based web application.

Apache License 2.0Apache-2.0

mdd-webapp

Concepts and implementation for a model-driven based web application.

Goal is to minimize development for basic applications (e.g. back-office and other data-entry applications).

Table of contents

## Architecture
### Back-end

Components:

  • list of models
  • each model have a form associated to it
  • a form enriches the fields of the model by adding more information to them
  • this information includes:
    • required/not-required
    • HTML element and eventual associated information (e.g. "select", with predefined values, or date-picker, or date-range with default initital and end date)
  • each model is exposed via API, in order to allow management of resources
  • each form is exposed via API, in order to focus the definition of a model and of the related form on the back-end side
### Front-end

Components

Components are:

  • "Form" component - For create or update.
  • "Table" component - For retrieve or delete.

Methods of "Form" component are:

  • html() - it returns the html for visualizing the form
  • save() - it creates a new resource
  • update() - it updates an existing resource

Methods of "Table" component are:

  • html() - it returns the html for visualizing the table
  • retrieve() - it returns a list of resources (using pagination)
  • delete() - it delete one single resource

Input for both "Form" component and "Table" component are:

Notes for form visualization

Type Html Element
String select, input, textarea
Number select, input
Boolean Checkbox
Object Recursively, based on: String, Number, Boolean, Object, Array
Array List of
Date date-picker, date-range
function NA
## TODO
  • Make first draft of the main concepts
  • Make diagram of the architecture
  • Choose elements for the implementation (Yeoman generator, etc.)
  • Add first example of implementation
  • Abstract and package components
  • Publish packages