The other is: “A large % of code on a project is common”. Things like J2EEuser authentication, displaying home page, approving content, user sign in etc. That part is common, and we can then just write the parts that are unique to our project. Also, there is integration of Struts with an application server and IDE and connection pools to SQL. BasicPortal provides those. It comes with a DAO DB layer and configured application server for connections. We all need reporting, so it comes with working and configured Jasper Reports. We all like rich client user interface, so it comes with open source implementation of Flash ActionScript forms. Etc.
So this project is to leverage several of the Apache Foundation’s Jakarta
projects into a vertical application suite that:
- is simple (follows the “KISS” principle); the platform will remain as simple as possible while still being a database driven high performance web application suitable for very large sites
- is easy to learn and teach
- demonstrates accepted best practices in Java software design, such as J2EE container managed security, JavaBeans, JavaServer Pages (JSP), the Model-View-Controller paradigm (MVC/Struts), data access objects (DAO), the JSP Standard Tag Library (JSTL), caching, etc.
- demonstrates accepted best practices in web GUI development using standards such as CSS, Struts Tiles and Layouts
- works on multiple application servers (Tomcat, Resin, Orion, etc.)
- works on multiple SQL database servers (PostgreSQL, MySQL, Oracle, etc.)
- does multi-row updates and “CRUD” (database creation, reading, updating, and deletion)
- contains the functionality common to 80% of web projects, and gives developers the ability to customize the platform for their specific needs
- enables very high developer productivity. Experienced coders should be able to produce at least two or three modules per day.
Open Source means:
o No contracts or cost of ownership
o Enables transfer of software budget to other vital resources
o Freedom from closed, proprietary systems and upgrade fees
o Competitive support - anyone who knows Struts and JSTL can provide support
o Community development - added features from other companies and volunteers
The aim is to provide many of the features found in modern web community and portal systems including news, forums, calendars, web logs (“blogs”), wikis, ecommerce, and email support. It will eventually provide automatic generation of GUI elements such as tabs and image buttons. Additional technical goals include support for large binary objects (BLOBs), integration with iReport/JasperReports, automated stress testing, and automated code generation. basicPortal, the main software component of the system, is targeted at technical project leads of corporate application development, demonstrating the simplicity of using Struts to build a data driven application. A content management system with sample HTML and XML data is included for users to build upon. The system contains member sign up and administration facilities. Its design is based on Struts, JSTL, and JavaBeans that contain DAO helper classes. basicPortal is packaged with the iBatis SQL database layer for object-relational mapping, but any custom DAO can be implemented by making use of an interface.