Compliance Asset Management System
Open Pages GCM is a
general compliance management software solution that reduces the complexity and
cumbersome nature of complying with numerous industry, ethics, privacy and
government regulatory mandates.
1. Eclipse 3.2 IDE for development, debugging.
2. JBoss-4.2.2.GA as the web server.
3. SVN version control for versioning and code delivery.
4. Ant for our build and remote deploy.
5. Programming Language: Java (jdk 1.6)
6. Rich Faces for Front end presentation
7. PostgreSQL8.2 as the database
8. Hibernate 3 as the persistence layer
Following are the major
requirements that we had to meet while developing this project:
Ø
Technical Requirements
1.
Develop the project as
a Java /J2EE based application.
2.
Application should run
in a J2EE complaint Application Server.
3.
Application should
support any JDBC complaint database.
4.
Develop the console
based on Rich
Faces.
Ø
Functional Requirements
1.
Project includes
following sections.
a.
User Management
b.
Run Reports
c.
Application Setups
d.
Report Setups
e.
System Info
f.
User Profile
2.
Provide features to
perform CRUD (Create, Read, Update, and Delete) and Pagination in all the
sections.
Following are the
solutions that we implemented to meet the requirements of the project
Ø
Technical Solutions
1.
We developed the
application using Java (jdk 1.6).
2.
Deployed the
application in JBoss Server, JBoss. (Jboss-4.2.2.GA).
3.
Hibernate 3 is used
as the persistence layer so the application works with any JDBC complaint
database.
4.
At the time of
development we used PostgreSQL8.2 as the database.
5.
We used Rich Faces 3.2.1 to develop the Front End Presentation.
Ø
Functionality Implementation
1. User Management
User Management section
is used for managing users which is implemented by means of editable table. This section includes Users and Roles. The Figure 1 shows the functionality provided in the User Management section. This section provides the feature to add, update and
delete a user. This section also provides search option where we can search
based on User Name or First Name

Figure 1
Client side UserName validation as shown in Figure 2 is done
using the Rich Faces
<h:
inputText size="100" maxlength="100"
value="#{usersHome.userDetail.displayUserName}"
validator="userNameUniqueValidator"
validatorMessage="# {messages['USERS_TABLE_USERNAME_IS_UNIQUE']}">
</h:inputText>
UserNameUniqueValidator is a java class whose seam name
is “userNameUniqueValidator”
Client side validation for password as shown in Figure 2 is done using the Rich Faces is as shown in
the below code.
<h: inputSecret
styleClass="text" id="encryptedUserPassword"
required="true"
requiredMessage="#{messages['Password
is required']}" size="100"
maxlength="100"
value="#{usersHome.userDetail.encryptedUserPassword}">
</h:inputSecret>

Figure 2
Figure 3 shows the entire common features provided for
each section.
The
table is an editable table that shows the listing of user Roles for a specific
user, which is rendered using Rich Faces rich: dataTable component. New roles
can be added by using Add User Role link .Updating in single or multiple rows
can be done by Apply Changes button. Deleting a specific record on select of
radio button is done by delete link .Auditor keeps track of the modifications
made. The auditor
link shows the creation date, created by, updated date and updated by details
of the record.

Figure 3
The
Start Date and End Date field is generated using rich calendar using the below
code
<rich:column
styleClass="userRoleText">
<rich:calendar inputClass="richCalender"
id="startDate"
requiredMessage="Start date is
required
value="#{userRole.startDate}"
datePattern="#{defaultFormatter.datePattern}"
/>
</rich:column>
We used css files to apply styles for the components
throughout the application. The dataTable is implemented using rich faces using
the below code.
<rich:dataTable id="userRole"
style="width: 767px;" headerClass="lookupstyle"
var="userRole"
rows="10"
value="#{userRolesHome.userRoleList}"
rendered="#{userRolesHome.userRoleList.size () >
0}">
Pagination is implemented through the datascroller
feature of Rich Faces. Pagination gives option to navigate through the
different pages of listing like First page, Previous Page, Next page and Last
Page. User can set the number of records per page and the default is given as
10. Pagination is implemented using the below code:
<tr>
<td
align="right">
<rich: datascroller
for="userRole" maxPages="10"
ajaxSingle="false"
align="right" />
</td>
</tr>
Figure 3 shows Add, Edit and Delete options. Select link
will select the needed record for the delete operation.
Roles:
This section
allows to create, update and delete the roles. This page also shows error
messages if it is not possible to perform addition of a role if the fields
violate any constraints. For example description field in figure 4 is of not
null constraint. If we try to add a record without entering value for this
field it will throw error messages.

Figure 4
2. Application Setups:
This section
consists of
a) Lookup Types
b) Organizations
c) Menus
d) Accounting
Hierarchy
e) Organization
Info
a) Lookup Types:
This is a listing
page which lists the lookup Types available. This also includes a dropdown
which allow us to go to Lookup Translations and Lookup Codes page as shown in
figure 5.

Figure 5
Lookup
Translations:
This page includes
two sections one is the master section and the other is the editable section,
which allows adding, updating and deleting lookup translations to and from the
lookup Type translation table. The Master section includes three fields
Application, Lookup Types and Status which are non editable, as shown in figure
6

Figure 6
Lookup Codes:
This page allows
adding and updating of lookup codes by means of Add Lookup Code and Apply Changes button.

Figure 7
b) Organizations:

Figure 8
c) Menus:
This is another
editable table which shows the list of menus available. This section also
allows to add, update and delete menus .This page allows to select two actions
from the dropdown: translations and menu Items as shown in figure 9

Figure 9
Menu Translation:
This page has
three fields, language which is a drop down which takes value from
ad_languages, user Menu Name and meaning fields which are editable. This page
allows insertion, updation and deletion of menu translation. This page has a
master field which shows the menu for which translations is being created.

Figure 10
Menu Items:
This page is used
for adding, updating and deleting menu items for a menu. This page as shown in
figure 11, also has two parts one is the master field which is non editable
which shows the menu and status for which menu items are to be created.

Figure 11
d) Organization Info:
This section
consists of three sections as shown in figure 12: Contact Info, SMTP Setting,
and Security Settings
Figure
12
3. System Info
System Information:
This shows the information about the
system, system Name and Release information. This page allows selecting two
applications from the drop down.
One is the component
and the other is the role permission as shown in figure 13.

Figure
13
Components:
This is an editable table which shows the
list of components for the specific applications selected.

Figure 14
Role Permissions:
This section allows
as creating, updating and deleting role permissions for specific roles for the
selected applications.

Figure 15