HACKER Q&A
📣 vivegi

Schema Driven Apps


I am evaluating if this idea has merit. Comments and feedback welcome.

Long long ago, when I used MS Access (probably Access98), there was a functionality where all forms, master-detail views etc., could be autogenerated using a wizard. In those days, I found it to be very cool and used it for prototyping apps client-server/n-tier architecture apps.

Is there a market for enterprise CRUD apps that are completely schema-driven i.e., a data analyst/programmer specifies the data model (such as an Entity-Relationship Model) and the entire database, data validation and business logic, service layer and UI is autogenerated.

I also have some ideas around autogenerating entire business process workflows from the same data schema.

As a simple example, say we are modeling automotive insurance claims model with

  - Subscriber
  - Vehicle
  - Policy
  - Claim
entities. The business process flows might be:

  - *Subscriber onboarding*: This adds a new subscriber , new policy and the vehicle on the policy
  - *Policy servicing*: This adds vehicles or policy riders
  - *Claim submission and processing*: This adds a new Claim record for a subscriber, vehicle and policy that are matched against the policy information for further settlement of the claim.
The idea is to autogenerate all of the backend and the service layer for this including the UI. The grunt work of defining the screens etc., would be automated. The programmer would focus on building key business logic such as "claim processing upon submission".

Does this idea have merit?


  👤 jonahbenton Accepted Answer ✓
As you mention, there was quite a lot of this in the 1990s, and there are still lots of tools that employ this kind of workflow- django, for instance- for the admin side of the UI. These approaches are no good for anything user facing- design and UX is too important.

The larger issue is that no system is an island, from a data perspective, and most work is brown, not green field. Subscribers and policies already live in the system the company has been using for 20 years- well, likely in a dozen systems that the business has acquired from competitors and continues to operate while struggling with data integration. Meanwhile marketing and sales has been using multiple generations of SAAS tools, finance has their own on prem or SAAS tools- all of which need to work with a common set of entities but which have different opinions about exactly how those entities are shaped. This is the reason data lakes and SAAS ETLs are so important right now.

Static/dynamic generators don't solve a painpoint at this point. It's not about new systems/data, it's about existing systems and data. HTH.


👤 yibers
Actually Microsoft still provides tools for the kind of development you mention. See more here:

https://learn.microsoft.com/en-us/power-apps/maker/model-dri...


👤 deterministic
This has been done many times before. I (for example) use a code generator I wrote myself to generate 80% of new biz applications. It is a very powerful tool.

However I have never used it for work because most of the stuff I work on is old but highly valuable code.


👤 is_true
Symfony + EasyAdminBundle kind of does that.

Symfony lets you create the entities by asking you questions, and then running a console command with the admin bundle installed it generates the controllers and views for most of the fields/entities.

The business logic is probably the harder to generate correctly.


👤 ch1234
Check out Form.io

We’re doing some development now which incorporates additional features such as AWS automations and GUI upgrades, but our based schema development is on the form.io platform


👤 sakesun
Frappe claims to be metadata driven.

https://frappeframework.com/


👤 rad_gruchalski
Would Ruby on Rails with its ActionWhatevers qualify?