See AllcountJS rapid application development framework.
It allows to define domain model in JSON-like format. For example simple Hello World application that would have one MongoDB collection named HelloWorld with two fields: text "Foo" and date "Bar" would look like
A.app({
appName: "Hello World",
menuItems: [
{
name: "Hello world",
entityTypeId: "HelloWorld",
}
],
entities: function(Fields) {
return {
HelloWorld: {
fields: {
foo: Fields.text("Foo"),
bar: Fields.date("Bar")
}
}
}
}
});
Menu, table and form UI is generated automatically using default Jade templates, AngularJS and Twitter Bootstrap. AllcountJS also provides a way to override default templates and has other extension points.