1. MINISTRY OF HIGHER EDUCATION AND
TUNIS EL MANAR UNIVERSITY
HIGHER INSTITUTE OF COMPUTER SCIENCE
END OF STUDIES PROJECT REPORT
Fulfillment of the requirement of the degree of
National Diploma Degree in Applied Science and Technology
Mention : Computer Science
Specialty : Information Systems and Software
Professional Supervisor Mr. Fares CHAKCHOUK
Academic Supervisor Mrs. Bakhta EL HAOUARI
Academic Year 2014/2015
Design and development of a flow RH web application for
the management of human and financial resources
This report covers the development of an application entitled “WebFlow RH”
under the BGI Company, which ensures the managements of the company’s
employees. This document will cover the general context of the project, the
development process, a detailed design of the system, and the final product that
has been developed. This work has been done under the JavaEE platform, with
an interesting set of frameworks.
Keywords: Human Resources, Java EE, Oracle, Hibernate, JSF, Primefaces.
Ce rapport couvre le développement d’une application appelé « WebFlow RH »
sous l’entreprise BGI. Cette application assure la gestion des employés de BGI.
Ce document couvre le contexte général du projet, le processus de
développement, un design détaillé du système, et le produit final développé. Ce
travail a été construit avec la plateforme Java EE, avec un ensemble des
Mots-clés: Ressource Humaines, Java EE, Oracle, Hibernate, JSF, Primefaces.
" اسم تحت تطبيق برمجة التقرير هذا يغطيWebFlow RHبشركة خاص "BGIادارة التطبيقة هذه تضمن ,
و النظام برمجة مراحل جانب الى ,بالبرنامج الخاص العام السياق الى التعرض سيتم الوثيقة هذه في .الشركة موظفي
.للبرنامج التقني التصور
منظومة وفق البرنامج هذا تطوير وقعJava EEعمل اطر عدة مع)Frameworks(.
مفاتيح كلمات:البشرية الموارد إدارة,Java EE, Hibernate, Oracle, JSF, Primefaces.
I dictate this report
To my dear parents Naceur & Fawzia who have always been here for me throughout my
studies and who gave me a wonderful model of labor and perseverance I hope that they nd
in this modest work all my gratitude and all my love,
To my dear brother Maher, who has been a great support for me while writing this report,
and to my sister Ines,
To all my uncles and aunts and cousins, especially BEN GHARBIA Samir,
To all my friends especially my best ones: Zied, Bilel, Wael, Rami, Hamza, Ahmed, Fedi,
Haythem, Emna, Maroua, Oumeyma ...
An internship is not only a step added to the student’s curriculum. It also reﬂects an
environment of a new experiences which are acquired every day around persons who surround
I cannot let the occasion of the presentation of this report without expressing my thanks,
my deep respect and gratitude to all those who were willing to provide necessary assistance
to the success of this work, which has an essential phase in our curriculum school.
I sincerely would like to thank Mr. Sghaier BOUYAHY, my responsible at BGI, for
giving me the chance to realize this project within his organization. Many thanks to Mr.
Fares CHAKCHOUK my supervisor at BGI for his continuous help and encouragement all
throughout this internship.
I would like to thank Mrs. Bakhta EL HAOUARI, my internship supervisor, for
meticulously reviewing and validating this work and checking for its technical correctness.
She deserves special praise for her availability, attention to detail and valuable insight.
I would like to express my respect and my gratitude to all the jury’s members for the
honor they made me while they have kindly agreed to judge my modest work.
Not forgetting, of course, all the professors at the Higher Institute of Computer Sciences
for the schooling and training they have given me.
12. General Introduction
Every company wishes to improve their proﬁts and matures their business. One way
of achieving these goals is to setup a powerful, yet time eﬃcient solution. The Human
Resources Department of the “Bonne Gouvernance Informatique” (also known as BGI), the
host company for this project, seeks to implement a web application for its agents to aid
them in the management process of the BGI employees. Moreover, it connects the employees
to a web platform from which they can access their personal information and request leaves
and permissions from their supervisors. It also has more other functions which I will be
discussing further in this report.
This web application is entitled “Web FlowRH”. It is a part of a bigger platform called
“The Administrative Aﬀairs Flow Admin”.
In this report I will discuss the diﬀerent aspects of this project. The ﬁrst chapter will be
dealt to the overall presentation of the host organization and the project, along with a study
of the current solution and its disadvantages.
Afterwards, I will focus on the analysis and speciﬁcation of this project, by identifying
the functional and non-functional requirements, and introducing some use case diagrams as
Throughout the third chapter, I will detail the design of the application. I will ﬁrst
describe, the architecture pattern, then, the detailed models that comprise the proposed
The ﬁnal chapter will present the hardware and software environments that have been
used for the development of the application and present some screenshots describing the
most important implemented features.
13. Accordingly, I will ﬁnish by a short conclusion and suggest the possible ways and ideas
to optimize this project.
14. Chapter 1
General Frame of the Project
In this chapter, I will talk brieﬂy about the hosted company, along with a presentation
of the project, I will discuss the current solution and its drawbacks, and afterward I will
introduce my proposed solution.
1.1 Company Presentation
The “Bonne Gouvernance Information” is a fairly new company (created on the 17th
of December 2007), situated in Tunis and operates in the computer technology ﬁeld, it
provides custom made software, maintenance and training on diﬀerent kinds of computer
related technologies and programming languages.
The BGI runs with over 200 employees, who have dealt and oﬀered solutions for diﬀerent
types of customers, from big companies to national bureaus and institutes. Some of these
solutions are specially designed software for ﬁnance management, hotel management, etc…
To guarantee a decent quality for its customers, BGI has always ensured the use of the
latest technologies available, especially the .Net framework and the JavaEE platform. The
BGI engineers and developers are highly skilled and experienced with these two technologies.
This project has been conducted under the “Human Resources Department”. It also aﬀects
the “Project Direction”, especially the “Project Manager”, “Team Leader” and “Developer”.
15. Figure-1.1 below represents the BGI corporation organogram.
Figure 1.1: BGI organogram
Each and every company which operates a large number of employees needs to adopt a
custom system to be able to administer large numbers eﬃciently. The quickest and simplest
solution that the managers of BGI came across, is the use of Microsoft Excel spreadsheets.
The Microsoft Oﬃce suite (Excel recursively) was widely used in the 1980’s by Human
Resources (HR) professionals around the world as their default tool for managing basic
operations. Nevertheless, some of them have still been using it till our present date. Although
the Excel software might be a good tool for new and fresh companies which use simple
HR operations, however, it is not eﬃcient for bigger companies with more complex HR
operations, such as BGI.
In fact, some functionalities in spreadsheets cannot be achieved automatically and require
a manual intervention, which could be somewhat tedious and frustrating. In addition, the
information stored in an Excel spreadsheet could be confusing to the intended user especially
the display of structured, organized data, and their manipulation. Likewise, spreadsheets are
often decentralized. In fact, on the one hand, each agent has to obtain his own copy. On the
other hand, if a sharing ﬁle plan (through the network) is used, one could not manage the
privileges and roles, unless one implements some very complex conﬁguration or has multiple
16. ﬁles which is not easy to manage. Moreover, using a spreadsheet requires considerable
knowledge and continuous training for the agents. Finally, the cheapest Microsoft Oﬃce 365
Business plan costs a single user roughly 99$ a year.
1.3 Project Presentation
The principal objective of this project is the development of a web application entitled
“Web FlowRH” which secures the management of the BGI employees, and to make the
managing process faster and safer. It includes both parties, the human resources agents and
the rest of the employees (from administrators to developers). The main features oﬀered by
this application are:
– Staﬀ management: Employees’ personal information, Contracts, CVs, Competence
Grid, Wage Grid;
– Leave management: Requests, Validation circuits, threshold;
– Permission management: Request, Validation circuits, threshold;
– Cash Register Management.
1.4 Proposed Solution
In an eﬀort to design an application with more possible features, and in order to have
a user-friendly interface, while being eﬃcient, a web application which implements the
company requirements will be developed.
Instead of Excel spreadsheets, the Oracle RDBMS will be used as a database.
Furthermore, to have a highly stable and compelling application, I will rely on JavaEE
technology along with a diverse set of frameworks, such as the JSF framework combined
with the Primefaces component suite for the front-end (the visualization and manipulation
of inputs and outputs). Besides, the Hibernate framework will be used to ensure the
communication with the database in the most secure and reliable way.
In this chapter, I presented the frame on which this project is based, by introducing the
host company as well as the old solution that has been used. Furthermore, I extracted some
remarks and critics of the current solution. Finally, I ended up this chapter by presenting
the proposed solution. The following chapter will be devoted to the analysis and the design
of the application.
18. Chapter 2
Analysis and Speciﬁcation
The successful completion of an application depends on the understanding and analysis
of its functionalities. In this chapter, I will describe the adopted methodology along with
the functional requirements and non-functional implementation. Lastly, I will present the
use case diagrams.
2.1 Adopted Methodology
This project is rather small, and the company’s requirements are clear and direct. A
scope statement has been written and approved by the BGI’s project manager. Therefore,
the waterfall model was adopted for the development of this project. Figure-2.1 below shows
the waterfall model life-cycle.
19. Figure 2.1: Waterfall Model of System Development
2.2 Functional Requirements
The functional requirements represent the set of functions that the desired system should
oﬀer to its users. The following, represents the requirements that this web application must
– The application should provide for every user the upcoming requirements:
The system shall let every user authenticate
The system shall let every user consult their information
– As for the Human Resources Agents, they have the biggest part of the application
requirements, as follows:
The system shall let the Human Resources Agent manage the employees ﬁles
20. The system shall let the Human Resources Agent manage the employees contracts
The system shall let the Human Resources Agent manage the employees CVs
The system shall let the Human Resources Agent manage the Wage Grid.
– The rest of the employees have a decent share of requirements that should be
The system shall let the Developer send an absence request (Leave, Exceptional
Leave or a Permission) to his Team Leader
The system shall let the Team Leader view his team members (Developers)
The system shall let the Team Leader evaluate (accept or refuse) an absence
requested by a Developer on his team
The system shall pass the approved absence to the Project manager
The system shall let the Project Manager evaluate an accepted absence made by
a Developer or a Team Leader
The system shall let the Project Manager manage the Competency Grid
2.3 Non-Functional Requirements
Along with the Functional Requirements, this application ought to satisfy various
Non-Functional Requirements, which are the overall qualities and attributes of the resulting
Unauthorized access to the system and its data is not allowed. Each user must login
with a Matricule and password, and are granted speciﬁc privileges. The system has to
provide Data integrity.
The ability of the system to handle a growing amount of work in a capable manner in
addition to the potential to be enlarged to accommodate that growth.
The response time of the application must not bother the system or the user in any
way. The memory space occupied by the application should be reduced as much as
21. – Reliability:
The ability under normal conditions the application must perform the required
The application must provide a user-friendly interface and ergonomic encompassing all
2.4 Requirements’ Modeling
For the speciﬁcation of the required needs of the application in a formal way, I opted for
the realization of some Use Cases Diagrams to have a better understanding of the needs.
2.4.1 Actors Identiﬁcation
There are two main actors for this application; the Human Resources Agent, and the rest
of the employees. The latter can be divided into three more actors, namely; Developer, Team
Leader and Project Manager.
– Human Resources Agent
The Human Resources Agent is able to manage the employees in BGI, log in or log out
from the application, check their proﬁle and change the application settings. He may
also manage employees as he has the ability to view the employees list, add, modify or
delete an employee. Moreover, he can assign a CV to an employee, and view the list
of all the CVs, add, delete or modify a certiﬁcate in a given CV and view the contract
list of all the employees as well as changing an employee’s contract. Besides, he can
manage the Cash Register, add a deposit or a withdrawal transaction and visualize the
A developer can login or logout from the application, view his proﬁle, view the list of
his supervisors and request a leave or permission from then and follow its status. He
can also submit an exceptional leave without being accepted by his supervisor in case
of an accident for instance.
– Team Leader
The Team Leader has the same privileges as the above actor. Yet he can view the list
of his supervisees, and accept or refuse leave or a permission requests from them.
22. – Project Manager
The project manager has the same privileges as the above actor. Furthermore, he
may manage the competency grid of each of the employees he supervises by adding
or removing a skill to a particular employee, and managing the skill set and skill
categories. He can also view leave/permission requests, and accept or refuse them.
2.4.2 General Use Case Model
In this section, I will introduce the diﬀerent functions of our application through a use
case model. The use case model deﬁnes the expected activities from the various users with
regard to the application.
Figure-2.2 below illustrates the general use case diagram.
23. Figure 2.2: General Use Case Diagram
* General Use Cases Description
In this section I will discuss each use case in the general use case diagram. For each one
(except the login case), the user has to be logged in, in order to execute the action.
24. – Login:
Every employee can login to the application by entering his/her Matricule and
– Consult Information:
Every employee can consult his information such as his/her ﬁrst name, last name,
email, phone number …etc.
– Manage Cash Register:
The Human Resources can manage the Cash Register by adding and viewing
transactions (deposit and withdraw), as well as checking the current balance.
– Manage Employees:
Managing Employees consist of managing their personal ﬁles, CVs, Wage Grid and
– Request Absence:
A Developer can request an absence (leave, an exceptional Leave or a Permission), the
request is eventually sent to the Team Leader.
– View Team Members:
Every Team Leader can access the list of developers of his/her team.
– Evaluate Absence:
After receiving an absence request sent by a developer, the Team Leader may evaluate
it (accept or refuse it) . In case of acceptance, it is sent to the Project Manager to
evaluate it as well.
– Evaluate Accepted Leaves:
After the approval of an absence by a Team Leader, it is then sent to the Project
Manager to evaluate it as well.
– View Team Leaders:
A Project Manager can view the Team Leaders working on his/her project.
– Manage Competency Grid:
Every Developer and Team Leader has a set of skills. These skills are assigned or
revoked by the Project Manager. Besides, he/she can add new skills or skills category
to the grid.
25. 2.4.3 Detailed Use Cases
In this section the complex use cases will be detailed, for a better understanding of the
18.104.22.168 Requesting Absence
Figure-2.3 and Table-2.1 below represent respectively, the detailed diagram of the Request
Absence use case, and its description.
Figure 2.3: Request Absence Use Case
26. Table 2.1: Request Absence Use Case Description
Title Request Absence Use case
Intention Handle the absence request life cycle.
Actors Developer, Team Leader and Project Manager.
Pre-Condition Successful authentication.
Starting when A developer sends an absence request
Sequences Deﬁnition After the developer is logged in, he/she can send a leave
request if he has not exceeded the absences limit. It is
then sent to the Team leader. In case of acceptance, it is
sent back to the Project Manager to evaluate it. Finally
the result is sent to the developer.
Ending when The Team Leader refuses the request, or the Project
Manager approves the request.
22.214.171.124 Manage Competency Grid
Figure-2.4 and Table-2.2 below represent respectively, the detailed diagram of the Manage
Competency Grid use case, and its description.
27. Figure 2.4: Manage Competency Grid Use Case
Table 2.2: Manage Competency Grid Use Case Description
Title Manage Competency Grid Use Case
Intention Manage the company’s competency grid for every
Actors Project Manager and Employees
Pre-Condition Successful authentication.
Starting when A Project Manager is willing to manage a skills category
or a skill.
Sequences Deﬁnition The Project Manager can add, modify or delete a
category, or perform the same operations to a skill.
Furthermore, he/she can assign or revoke a skill from
an employee. Every employee can view his set of skills.
Ending when An operation is done.
28. 126.96.36.199 Manage Cash Register
Figure-2.5 and Table-2.3 below represent respectively, the detailed diagram of the Manage
Cash Register use case, and its description.
Figure 2.5: Cash Register Use Case
Table 2.3: Manage Cash Register Use Case Description
Title Cash Register Use Case
Intention Handle the Cash Register Transactions
Actors Human Resources Agent
Pre-Condition Successful authentication.
Starting when Making a Transaction.
Sequences Deﬁnition Adding a deposit or withdraw transaction
Ending when Transaction added.
Exception When adding a withdrawal transaction, if the amount
of the transaction is higher than the current balance, an
exception is ﬁred, and an error message is shown.
29. 188.8.131.52 Manage Employees
Figure-2.6 and Table-2.4 below represent respectively, the detailed diagram of the Manage
Cash Register use case, and its description.
Figure 2.6: Manage Employees Use Case
Table 2.4: Manage Cash Register Use Case Description
Title Manage Employees
Intention Manage the employees Data.
Pre-Condition Successful authentication.
Starting when Making a Transaction.
Sequences Deﬁnition The RHAgent can either manage the ﬁles, update an
employee contract, manage his CV or check the wage
Ending when RHAgent is done managing.
In this chapter I listed the functional and non-functional requirements. Moreover, I made
an analysis of these requirements by identifying the actors and drawing the global Use Case
diagram and its description. In the next chapter, I’m going to build on top of this analysis,
and specify the design of the application.
31. Chapter 3
Further to the detailed speciﬁcation of requirements, I am henceforth able to elaborate
the complete design of the adopted solution for the application plan to develop. I am
going to clarify in this chapter, the adopted abstract conceptual structure by presenting the
architecture pattern adopted, followed by a global sight of the class diagram. Subsequently,
I will draw a few sequence diagrams showing the execution of some scenarios. Eventually,
this chapter will be ﬁnished by the database representation.
3.1 Architecture Pattern
As an architecture pattern, I have chosen the Model-View-Controller (MVC) pattern, for
its great use with websites, and its easy structure, that lets you concentrate on each layer
separately (the Model, View and Controller).
The Model–view–controller is a software architectural pattern for implementing user
interfaces. It divides a given software application into three interconnected parts, so as to
separate internal representations of information from the ways that information is presented
to or accepted from the user.
– A controller can send commands to the model to update the model’s state (e.g., editing
a document). It can also send commands to its associated view to change the view’s
presentation of the model (e.g., by scrolling through a document).
32. – A model notiﬁes its associated views and controllers when there has been a change in its
state. This notiﬁcation allows the views to produce updated output, and the controllers
to change the available set of commands. In some cases, an MVC implementation may
instead be ’passive’ and other components must poll the model for updates rather than
– A view requests information from the model that it uses to generate an output
representation to the user .
Figure-3.1 below represents a typical collaboration of the MVC components.
Figure 3.1: The MVC Pattern
3.2 Class Diagram
A class Diagram is a static structure diagram that describes the structure of a system by
showing the system’s classes, their attributes, operations (or methods), and the relationships
among objects .
33. Figure-3.2, below represents the class diagram which illustrates the data structures and their
functions, which I will use for our system, as classes.
Figure 3.2: Main Class Diagram
* Textual description:
This class diagram is composed of the following classes:
This class deﬁnes the contract that every employee has. Every contract has an id, a
type (CDI, CDD and SIVP), a date when this contract was acquired and its current
status. I can also get the list of all the contracts and add or update a contract.
34. – Employee
This class is the center of the whole project, as it represents the diﬀerent employees
who are going to be either managing or be managed. Every employee has some typical
attributes such as the Martricule (which is the unique identiﬁer), ﬁrst and last name,
birthday, address, telephone number etc… The Employee class has plenty of methods.
For instance; the login/logout methods, adding, modifying and deleting an employee
as well as checking whether he exists or not, consulting his diﬀerent information, and
get the certiﬁcates and contracts. Finally, get the list of all employees, and get the
supervisor or each employee.
The RHAgent class represents the Human Resources Agent which manages the
employees, contracts, CVs and Cash Register.
The Absence class represents the absences that can be requested by an employee. They
are evaluated (accepted or refused) by the Team Leader then by the Project Manager.
The CashRegister represents the company’s cash register that is used to buy instant
materials without having to pass by a bank or check.
The transaction class represents all the deposits and withdraws transactions of the
Every employee has a set of certiﬁcates, which constitute a CV.
The developer class represents the developer’s role which is an employee, but can
request an absence.
The Team Leader inherits from the developer. In addition, he can evaluate a requested
absence sent by a developer.
The Project Manager also inherits from the Employee class, and has the ability to
35. manage the skills, and to evaluate the accepted absences made by a TeamLeader or a
All the employees have a set of skills that are grouped by a category. These skills are
represented with the Skills class, which compose the SkillsCategory class.
3.3 Sequence Diagrams
In this section, I will introduce how some sample scenarios works through a typical simple
A Sequence diagram is an interaction diagram that shows how processes operate with one
another and what is their order.
3.3.1 Consult Information
Figure-3.3 below shows the sequence diagram for a login in process along with the Consult
Figure 3.3: Consult Information Sequence Diagram
36. 3.3.2 Cash Register Withdraw
Firgure-3.4 below represents the process of adding a withdrawal transaction made by the
RHAgent. A pre-condition is that the RHAgent needs to be successfully authenticated in
order to execute this process.
Figure 3.4: Cash Register Withdraw Sequence Diagram
37. 3.3.3 Request Absence
Figure-3.5 below deﬁnes the sequence diagram for an absence request made by a
Developer. A Pre-condition is that all the actors in the diagram (Developer, TeamLeader
and ProjectManage) need to be authenticated in order to execute this process.
Figure 3.5: Request an Absence Sequence Diagram
38. 3.3.4 Add Employee
Firgure-3.6 below represents the process of adding an employee made by the RHAgent. A
pre-condition is that the RHAgent needs to be successfully authenticated in order to execute
Figure 3.6: Adding an Employee Sequence Diagram
39. 3.3.5 Update Contract
Firgure-3.7 below represents the process of updating an employee’s contract, made by the
RHAgent. A pre-condition is that the RHAgent needs to be successfully authenticated in
order to execute this process.
Figure 3.7: Update Contract Sequence Diagram
40. 3.4 Database Schema
Figure-3.8 below represents the tables and their relationships used for this application,
alongside the type of every column of the tables.
Figure 3.8: Database Schema
In this chapte, I deﬁned the architectural pattern used for this project. Thanks to the help
of the previous chapter, I detailed the proposed solution using class and sequence diagrams.
I ended by exposing the database schema.
42. Chapter 4
This chapter discusses the implementation of the web application’s components. I will
begin by presenting the development environment on which this project was developed.
Then, I will review the technologies used. Finally I will display the work done alongside
some screenshots of the main parts of the application.
4.1 Development environment
In this section I will present brieﬂy the material and software environment on which this
work has been done.
4.1.1 Material Environment
This work has been done on an “Asus” laptop, with the characteristic listed in the
Table 4.1: PC Characteristics
Operating system Processor RAM Memory Hard Drive
Windows 8.1 Intel Core I7-2670 Intel Core I7-2670 750 GB
43. 4.1.2 Software Environment
In this section, I will be mentioning and deﬁning all the software and tools used to realize
– Operating System: Windows 8.1
– Development Platform: JavaEE 7
– Integrated Development Environment: NetBeans 8.0.2
– Database Server: Oracle 11g
– Application Server: Wildﬂy-8.2.0.Final
– Languages, Frameworks and tools: JSF 2.2, Primefaces 5.2, Maven 4, Spring Security
3.2.6, Hibernate 4.3.1, Commons-io 2.4, jQuery
– Conception Environment: Visual Paradigm 12
184.108.40.206 JavaEE 7
Java Platform, Enterprise Edition (Java EE) is the standard in community-driven
enterprise software. Java EE is developed using the Java Community Process, with
contributions from industry experts, commercial and open source organizations, Java User
Groups, and countless individuals .
The platform provides an API and runtime environment for developing and running
enterprise software, including network and web services, and other large-scale, multi-tiered,
scalable, reliable, and secure network applications .
The JavaEE also extends the JavaSE, which make it a great tool for developing application
especially for companies.
220.127.116.11 NetBeans 8.0.2
NetBeans IDE lets you quickly and easily develop Java desktop, mobile, and web
and open source and has a large community of users and developers around the world. In
addiction NetBeans IDE is the oﬃcial IDE for Java 8 .
NetBeans is a great tool notably when it comes to JSF 2.2 development, it surpasses its
competitors, like Eclipse and IntelliJ.
44. 18.104.22.168 Oracle 11g
Oracle Database (commonly referred to as Oracle RDBMS or simply as Oracle) is
an object-relational database management system produced and marketed by Oracle
This Database is so powerful that most of the companies prefer it over all the other Databases,
it provides strength, data integrity, security, and much more, on top of that, the Oracle
database is completely free.
22.214.171.124 JSF 2.2
JavaServer Faces (JSF) is a Java-based web application framework intended to simplify
development integration of web-based user interfaces. JavaServer Faces is a standardized
display technology which was formalized in a speciﬁcation through the Java Community
126.96.36.199 Primefaces 5.2
PrimeFaces is a rich component suite open source User Interface (UI) component library
for JavaServer Faces (JSF) based applications .
PrimeFaces is now possibly the most popular choice between all the other JSF2 rich
GUI (Graphical User Interface) elements third-parties. Almost all the component in the
PrimeFaces suite are AJAXiﬁed, which would make the application very lightweight and
188.8.131.52 Maven 4
Apache Maven is a software project management and comprehension tool. Based on the
concept of a project object model (POM), Maven can manage a project’s build, reporting
and documentation from a central piece of information .
184.108.40.206 Spring Security 3.2.6
Spring Security is a framework that focuses on providing both authentication and
authorization to Java applications. The real power of Spring Security is found in how
easily it can be extended to meet custom requirements .
45. 220.127.116.11 Hibernate 4.3.1
Hibernate an open source Java persistence framework project. Perform powerful object
relational mapping and query databases using HQL and SQL .
Hibernate also provides data query and retrieval facilities. It generates SQL calls and relieves
the developer from manual result set handling and object conversion .
18.104.22.168 Commons-io 2.4
Commons IO is a library of utilities to assist with developing Input/Output functionality
This libraries is used to handle the uploaded ﬁles into the application.
document traversal and manipulation, event handling, animation, and Ajax much simpler
with an easy-to-use API that works across a multitude of browsers. With a combination
of versatility and extensibility, jQuery has changed the way that millions of people write
22.214.171.124 Visual Paradigm 12
Visual Paradigm is a powerful, cross-platform and yet easy-to-use visual UML (Uniﬁed
Modeling Language) modeling and CASE (Computer-Aided Software Engineering) tool.
Visual Paradigm provides software developers the cutting edge development platform to
build quality applications faster.
You can draw all kinds of UML 2.x diagrams in Visual Paradigm, such as class diagram, use
case, sequence etc… .
All the diagram under this project are made with the help of this tool.
46. 4.2 Overview of the achieved work
In this section, I am going to examine the achieved work through some screenshots of the
system, starting with the login page.
Once the application has started, you have to login with your Matricule and password,
Figure-4.1 represents the login page.
Figure 4.1: Login Page
In case you entered invalid or wrong credentials, you will be prompted with an error
message, as seen in Figure-4.2.
Figure 4.2: Login Page with error message
47. Once a user is successfully authenticated into the web application, he is then redirected
to the home page that diﬀers according to his role (RHAgent, Developer, Team Leader or
Project Manager). The following Figure-4.3 illustrates the home page for a Human Resources
Figure 4.3: RHAgent Home Page Screenshot
Another example for the developer home page seen at Figure-4.4.
Figure 4.4: Developer’s Home Page Screenshot
48. The primary objective of a Human Resources Agent employees manangment, Figure-4.5
shows how an agent can view the list of the employees. Moreover, he can ﬁlter the list with
many options such as his name, the role, etc…
Figure 4.5: Employee List Screenshot
49. Managing employees consists also of adding an employee, the following Figure-4.6 shows
the image of the “add employee form”:
Figure 4.6: Add Employee Form
50. Another important process, is managing the CVs, Figure-4.7, Figure-4.8 and Figure-4.9
represent respectively the screenshot of viewing the list of CVs, the “adding a certiﬁcate to
CV form” and “modifying a certiﬁcate form”:
Figure 4.7: CVs List Screenshot
52. The RHAgent can also manage the contracts. I will demonstrate some screenshots
regarding managing the contracts. This Figure-4.10 speciﬁes the list of all contracts, whereas,
Figure-4.11 represents the change contract form:
Figure 4.10: View the Contracts List Screenshot
Figure 4.11: Changing the Contract Form
53. Managing the Cash Register is also an important role for the RHAgent. In the upcoming
ﬁgures, a screenshot for the transaction list will be exposed, and an example of adding a
withdrawal transaction afterwards:
Figure 4.12: View the Transactions List Screenshot
Figure 4.13: Add a Withdrawal Transaction Form
54. Figure-4.14 below shows a Project Manager while assigning and revoking skills to Team
Leaders and developers.
Figure 4.14: Managing the Competency Grid
Figure-4.15 shows the process of adding a new competency, this is done by ﬁrst selecting
the desired category, then entering the new skill competency name.
Figure 4.15: Add a Competency
In this last chapter, I have set the sport on the development environment and deﬁned its
components, and I took a look at some screenshots of the application.
56. General Conclusion
The purpose of this project was to develop an application for the human resources
department under the BGI Company. This web application was designed to help the Human
Resources Agent to manage the company’s resources in a favorable way. Not only the Agents
were targeted to use this application, but also the rest of employees were granted a part to
In this report, I tried to summarize the work done during the 12 weeks while working on the
application. I started the report by presenting the host company under which this project
was developed. An overview of the project was then presented. Next, I have identiﬁed the
problems of the current solution and suggested the proposed one that I intended to develop.
The second phase was the analysis and the speciﬁcation of the application needs. Actually
this was fulﬁlled by specifying the functional and non-functional requirements. Thereafter a
formal representation of the needs was demonstrated with the help of the use case diagram,
in which I deﬁned the actors of the application, and the actions that each user can perform.
After determining the application necessities, I started the design section, which was the
most critical phase considering that the choice of the data structures had to be optimal.
In the end, I described the needed software and languages to implement this application.
Then I provided several screenshots of the user’s interfaces concerning the accomplished
This project still possess an ample potential of improvement, since it is a part of bigger
platform for the whole administrative aﬀairs of BGI. The other part of this platform, which
can be implemented in the future, consists of managing and assigning projects and tasks
for each employee, according to his skills set, and previous knowledge acquired from older
57. projects. Another possible feature that could be added is integrating the whole BGI staﬀ in
the application, like administrators for instance. As for performance, the DAO (Data Access
Object) pattern could be used in the future to access and manage the data in the database.
Personally, I particularly appreciated working on this project and under a company like the
BGI. It was a very enriching scientiﬁc experience as much as it was a useful and rewarding
exercise of relatively big project design. This allowed me to set in practice some of the
knowledge acquired during my course of studies, meanwhile exploring the human resources
management in a professional environment.
 http://en.wikipedia.org/wiki/model-view-controller. (Last consultation: May 4, 2015).
 http://en.wikipedia.org/wiki/class_diagram. (Last consultation: May 4, 2015).
 http://www.oracle.com/technetwork/java/javaee/overview/index.html. (Last
consultation: May 4, 2015).
 http://en.wikipedia.org/wiki/java_platform,_enterprise_edition. (Last consultation:
May 4, 2015).
 https://netbeans.org/features/index.html. (Last consultation: May 4, 2015).
 http://en.wikipedia.org/wiki/oracle_database. (Last consultation: May 4, 2015).
 http://www.tutorialspoint.com/jsf/. (Last consultation: May 4, 2015).
 http://en.wikipedia.org/wiki/primefaces. (Last consultation: May 4, 2015).
 https://maven.apache.org/. (Last consultation: May 4, 2015).
 http://projects.spring.io/spring-security/. (Last consultation: May 4, 2015).
 http://hibernate.org/. (Last consultation: May 4, 2015).
 http://en.wikipedia.org/wiki/hibernate_(java). (Last consultation: May 4, 2015).
 http://commons.apache.org/proper/commons-io/. (Last consultation: May 4, 2015).
 https://jquery.com/. (Last consultation: May 4, 2015).
(Last consultation: May 4, 2015).