Hello, I wanted to propose a new project idea. This is not a formal proposal, this just an attempt to see if such a project has a place at the ASF, and if anyone would be interested in participating.
Note, The project has a working codebase. The application is a framework for creating business applications. Unlike some business application frameworks, this one does not generate Java code or XML, instead it has a repository to store object definitions, and the runtime interprets those object definitions to views, records, logic, SQL, etc... The main advantage to this framework is customization. It is highly customizable. There are several CRM/ERP/etc. applications out there but they usually lack in customization features as most of those applications have hard coded entities with some extra customization features added on top. What I mean by customization is the ability to change something via an easy to use GUI. Most of the available applications can be changed, but they require this to be done by changing php, xml, jsp, etc.. which is a development effort. What I am proposing is something at a higher level that gets you thinking only about entities, fields, views, application logic, user access, etc.. and IMHO this is important in a business application where your main focus should be on the business logic rather than 'Did I terminate that last tag?' Basically, you use this application to define objects that represent entities, fields, views, picklists, database tables, etc... through the application's development section, then you instantly go to those views to see your changes. The definitions are stored in the application database. The development section itself is developed using the application itself, i.e. the development section is stored in the database repository and at runtime its interpreted to views, fields, SQL, etc... There is also an incomplete CRM-like implementation. Some key features: * 3-Tiered object architecture allow re-use + Object definitions are separated into 3 main tiers, which are: --> User interface objects --> Business Entities --> Database Tables + You can, for example: --> Reuse UI components in multiple places without extra effort. --> Reuse Business Entities in multiple UI objects. --> Reuse database tables in multiple entities. * Business logic can be implemented in multiple ways. + Through object attributes, you can for example: - Define read only fields. - Define field data types. - Define field pick lists. + Through formulas (using JSP-EL syntax), you can for example: - Define field Readonly status conditions, interpreted at runtime. - Define field value validation formulas. Regex can be used. - Define field default values. + Through Scripting (currently using Rhino JS), you can for example: - Override events in data lifecycle to perform any business task. - For example, you can overide when the /Loan Approval/ field gets set to 'Approved' to verify that the user has enough quota. * Aggregate entities + Define which field to 'Group By' and which one to 'Count' and you have an entity that retrieves aggregate data. + Charts can be displayed from aggregate data (through jfreechart). * Interactive javascript client, or stripped down wireless interface + Through different templates (JSPs created with the framework) the objects can be made to render javascript-intensive views, or stripped down versions that are suitable for wireless devices. + Both versions would re-use the same entity objects defined. Ultimately, what this would be good for, is to offer several pre-built applications along the lines of CRM, ERP, Accounting, POS, etc... just like some already available applications, but the extra customization features would make it much more adaptable/extendable to organizations, and much easier to extend to more business domains. Well, this is my first stab at it. Comments? Regards, Ahmad --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]