RADICORE - Rapid Application Development Toolkit

RADICORE is an open source Rapid Application Development Toolkit for building Administrative Web Applications, sometimes known as Enterprise Applications, which are platform independent, browser independent and database independent. It is not a general purpose framework for building any type of application, it is a single purpose framework for building a single type of application.

RADICORE is not a library which can be installed using Composer, it is a fully-fledged application which allows you to create and then run your application under its menu and security system. It is actually a semi-complete application where you can use the framework's subsystems to create and then run your own application subsystem as add-ons. You can add as few or as many subsystems as you see fit. Each subsystem has its own database, its own set of files, its own subdirectory in the file system to hold those files, and its own entries in the menu database.

It is based on a combination of the 3 Tier Architecture and MVC Design Pattern and comes with pre-built and reusable components in the data access and presentation layers. It also makes extensive use of the Template Method Pattern.

  • The Data Access Object comes pre-built and will generate all SQL queries at runtime.
  • The View component is managed by a pre-built collection of reusable XSL stylesheets which generate all HTML output.
  • The Controller component is managed by a pre-built collection of reusable scripts which handle all communication with the user and any Model components.
  • The Model component is initially created from the Data Dictionary, but then can be modified to include any business rules. Code inherited from a superclass handles all communication with the Data Access Object.

The reusable View and Controller components come in matched pairs in order to implement each of the Transaction Patterns. The RADICORE framework thus removes the need for developers to spend valuable time in writing repetitive SQL and HTML code, which means that they can devote 95% of their time on the most critical part of any system - the business rules.

The RADICORE framework also contains a collection of pre-built components which are runnable 'out of the box':

  • A Data Dictionary into which you can import your database schema(s). This is used for the following:
    • To generate the initial class file for each Model component.
    • To generate the table structure file which is used for all primary data validation which is performed automatically by the framework.
    • To generate transactions by pressing a button instead of writing any code.
  • A Dynamic Menu system which takes the drudgery out of coding a hierarchy of menu screens. Menu screens are filtered at runtime to remove all tasks where the relevant permissions have not been granted.
  • A Role Based Access Control system which allows access control lists to be defined and customised for any number of users and user groups.
  • An Audit Logging system which will record all database changes in a central AUDIT database without the need for database triggers, and allows this data to be viewed with a standard set of online screens.
  • An activity-based Workflow system which will allow the execution of any transaction to automatically set in motion a chain of other transactions.
  • Internationalisation facilities which will allow screen labels and error messages to be supplied in different languages without having to modify any core code.
  • An integrated HELP facility can provide help text on any topic in multiple languages.
  • A set of prototype applications which provide working code samples which cover many situations.