The design adheres to MVC principles (Model-View-Controller). This creates layers of software with
Each of these components is controlled by configuration files. So rather than write software to maintain the database, the user develops configuration files which is a much quicker process and less likely to result in errors. The system comes with a program to check the configuration files for consistency and a program to report on the application.
The software and directory structure follows the pattern of an application generated by Express with minor modifiections.
The application is designed to work with any relational or document database system. The system uses a database driver to isolate the controller from the details of the database management system. The drive has routines for connecting to the database, reading, writing and deleting records.
Many relational databases can be accessed via a generic driver which uses knex to generate SQL. This has been tested with SQLite3, MySQL, and Postgresql. Knex supports another six DBMS products. It would need testing and possibly modifying for those. The main issue is the procedure for getting the primary key of a newly added row.
The only document database for which a driver has been written is Mongodb.
The view is controlled by the view engine (defaults to EJS). It has not yet been tested with other view engines. It does not use any client framework such as Vue or React. It is just plain HTML plus Bootstrap.
This is bulk of the SUDSjs software.
There is a very flexible permission system which controls access to tables, groups of data items and individual data items.
Although no coding is needed for most requirements, there are points in the processing cycle where you can add small fragments of code. For example a function might merge first and second names to give a full name for reports, or total the value of order lines in a sales order.
The system comes with a set of test data for evaluation and testiong purposes.