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
ArchitectureBack-endFront-end TodoResources
## 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:
Resource API endpoint - for example: "http://api.com/resource"
Form API endpoint - for example: "http://api.com/resource/form"
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.)
暂时没有评论,来抢沙发吧~