our firm develops softwares for business which mostly has CRUD (Create, Read, Update, Delete) functions. The software is quite big and provides several features to handle their data. And the data is spread across different sql tables. We use hazelcast for caching. And DWR for communicating with client.
The problem is when we go to new client, we customise our software for them. This leads to changing data variables across several files. Front end, backend, sql, etc. Sometimes, the flow also has to be updated. We want to work on a project where we only define data in some config files and the rest of the code is generated. This way we may be able to customise quickly and delivery fast.
Example. Lets consider User data table. We need CRUD on this. So, We create a db config file (say in yaml) and define all the properties for user, their data types, if getter setter is needed or not. And that's it, CRUD functions for this table need to be generated automatically, sql table insertion should be generated. Next a create a User Front object config file, saying what all data we need in front end. Based on this, java methods need to be generated to get the mentioned data to front end using dwr. And user front object config file should be linked with the db config file. And I can create a front end template like a html table that displays data based on the object it receives. So, next time if i want to update something, I only update my config files, and the rest should be updated.
An added necessity for this is when you might have to combine multiple objects and take it to front end. Or lets a I have to compute something like table3.d = table1.a + table2.b, so, I just want to mention this in my config file, and code should be generated based on the knowledge of which table, property name, query those tables, get data, add and return.
May be this is something we can work on to build a software that generates code for us based on our requirement.
At present, am looking at knowing current resources available that will help move quickly in this direction. I want to ensure I am not reinventing the wheel.