SlideShare a Scribd company logo
1 of 58
Download to read offline
MINISTRY OF HIGHER EDUCATION AND
SCIENTIFIC RESEARCH
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
By
Ouerghi YASSINE
Professional Supervisor Mr. Fares CHAKCHOUK
Academic Supervisor Mrs. Bakhta EL HAOUARI
Host Company
Academic Year 2014/2015
Design and development of a flow RH web application for
the management of human and financial resources
Company Supervisor
ISI Supervisor
Signature and stamp:
Signature:
Abstract
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.
Résumé
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
Frameworks.
Mots-clés: Ressource Humaines, Java EE, Oracle, Hibernate, JSF, Primefaces.
‫التلخيص‬
" ‫اسم‬ ‫تحت‬ ‫تطبيق‬ ‫برمجة‬ ‫التقرير‬ ‫هذا‬ ‫يغطي‬WebFlow RH‫بشركة‬ ‫خاص‬ "BGI‫ادارة‬ ‫التطبيقة‬ ‫هذه‬ ‫تضمن‬ ,
‫و‬ ‫النظام‬ ‫برمجة‬ ‫مراحل‬ ‫جانب‬ ‫الى‬ ,‫بالبرنامج‬ ‫الخاص‬ ‫العام‬ ‫السياق‬ ‫الى‬ ‫التعرض‬ ‫سيتم‬ ‫الوثيقة‬ ‫هذه‬ ‫في‬ .‫الشركة‬ ‫موظفي‬
.‫للبرنامج‬ ‫التقني‬ ‫التصور‬
‫منظومة‬ ‫وفق‬ ‫البرنامج‬ ‫هذا‬ ‫تطوير‬ ‫وقع‬Java EE‫عمل‬ ‫اطر‬ ‫عدة‬ ‫مع‬)Frameworks(.
‫مفاتيح‬ ‫كلمات‬:‫البشرية‬ ‫الموارد‬ ‫إدارة‬,Java EE, Hibernate, Oracle, JSF, Primefaces.
Dedications
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 ...
i
Acknowledgment
An internship is not only a step added to the student’s curriculum. It also reflects an
environment of a new experiences which are acquired every day around persons who surround
us.
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.
ii
Contents
Dedications i
Acknowledgement ii
List of Figures v
Liste of Tables vii
General Introduction 1
1 General Frame of the Project 3
1.1 Company Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Project Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Proposed Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Analysis and Specification 7
2.1 Adopted Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Non-Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Requirements’ Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.1 Actors Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.2 General Use Case Model . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.3 Detailed Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.3.1 Requesting Absence . . . . . . . . . . . . . . . . . . . . . . 14
iii
2.4.3.2 Manage Competency Grid . . . . . . . . . . . . . . . . . . 15
2.4.3.3 Manage Cash Register . . . . . . . . . . . . . . . . . . . . . 17
2.4.3.4 Manage Employees . . . . . . . . . . . . . . . . . . . . . . . 18
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Design 20
3.1 Architecture Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Sequence Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.1 Consult Information . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.2 Cash Register Withdraw . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3.3 Request Absence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.4 Add Employee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.5 Update Contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4 Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4 Implementation 31
4.1 Development environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 Material Environment . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.2 Software Environment . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.2.1 JavaEE 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.2.2 NetBeans 8.0.2 . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.2.3 Oracle 11g . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2.4 JSF 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2.5 Primefaces 5.2 . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2.6 Maven 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2.7 Spring Security 3.2.6 . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2.8 Hibernate 4.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.2.9 Commons-io 2.4 . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.2.10 jQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.2.11 Visual Paradigm 12 . . . . . . . . . . . . . . . . . . . . . . 34
iv
4.2 Overview of the achieved work . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
General Consulion 45
Netography 47
v
List of Figures
1.1 BGI organogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Waterfall Model of System Development . . . . . . . . . . . . . . . . . . . . 8
2.2 General Use Case Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Request Absence Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Manage Competency Grid Use Case . . . . . . . . . . . . . . . . . . . . . . 16
2.5 Cash Register Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6 Manage Employees Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1 The MVC Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Main Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Consult Information Sequence Diagram . . . . . . . . . . . . . . . . . . . . . 24
3.4 Cash Register Withdraw Sequence Diagram . . . . . . . . . . . . . . . . . . 25
3.5 Request an Absence Sequence Diagram . . . . . . . . . . . . . . . . . . . . . 26
3.6 Adding an Employee Sequence Diagram . . . . . . . . . . . . . . . . . . . . 27
3.7 Update Contract Sequence Diagram . . . . . . . . . . . . . . . . . . . . . . . 28
3.8 Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1 Login Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2 Login Page with error message . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 RHAgent Home Page Screenshot . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4 Developer’s Home Page Screenshot . . . . . . . . . . . . . . . . . . . . . . . 36
4.5 Employee List Screenshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.6 Add Employee Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.7 CVs List Screenshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.8 Add Certificate Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
vi
4.9 Modify CV Form Screenshot . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.10 View the Contracts List Screenshot . . . . . . . . . . . . . . . . . . . . . . . 41
4.11 Changing the Contract Form . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.12 View the Transactions List Screenshot . . . . . . . . . . . . . . . . . . . . . 42
4.13 Add a Withdrawal Transaction Form . . . . . . . . . . . . . . . . . . . . . . 42
4.14 Managing the Competency Grid . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.15 Add a Competency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
vii
List of Tables
2.1 Request Absence Use Case Description . . . . . . . . . . . . . . . . . . . . . 15
2.2 Manage Competency Grid Use Case Description . . . . . . . . . . . . . . . . 16
2.3 Manage Cash Register Use Case Description . . . . . . . . . . . . . . . . . . 17
2.4 Manage Cash Register Use Case Description . . . . . . . . . . . . . . . . . . 18
4.1 PC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
viii
General Introduction
Every company wishes to improve their profits and matures their business. One way
of achieving these goals is to setup a powerful, yet time efficient 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 Affairs Flow Admin”.
In this report I will discuss the different aspects of this project. The first 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 specification of this project, by identifying
the functional and non-functional requirements, and introducing some use case diagrams as
well.
Throughout the third chapter, I will detail the design of the application. I will first
describe, the architecture pattern, then, the detailed models that comprise the proposed
solution.
The final 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.
1
Accordingly, I will finish by a short conclusion and suggest the possible ways and ideas
to optimize this project.
2
Chapter 1
General Frame of the Project
Introduction
In this chapter, I will talk briefly 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 field, it
provides custom made software, maintenance and training on different kinds of computer
related technologies and programming languages.
The BGI runs with over 200 employees, who have dealt and offered solutions for different
types of customers, from big companies to national bureaus and institutes. Some of these
solutions are specially designed software for finance 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 affects
the “Project Direction”, especially the “Project Manager”, “Team Leader” and “Developer”.
3
Figure-1.1 below represents the BGI corporation organogram.
Figure 1.1: BGI organogram
1.2 Background
Each and every company which operates a large number of employees needs to adopt a
custom system to be able to administer large numbers efficiently. The quickest and simplest
solution that the managers of BGI came across, is the use of Microsoft Excel spreadsheets.
The Microsoft Office 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 efficient 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 file plan (through the network) is used, one could not manage the
privileges and roles, unless one implements some very complex configuration or has multiple
4
files which is not easy to manage. Moreover, using a spreadsheet requires considerable
knowledge and continuous training for the agents. Finally, the cheapest Microsoft Office 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 offered by
this application are:
– Staff 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 effort to design an application with more possible features, and in order to have
a user-friendly interface, while being efficient, 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.
5
Conclusion
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.
6
Chapter 2
Analysis and Specification
Introduction
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.
7
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
offer to its users. The following, represents the requirements that this web application must
offer:
– 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 files
8
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
implemented:
 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
system:
– Security:
Unauthorized access to the system and its data is not allowed. Each user must login
with a Matricule and password, and are granted specific privileges. The system has to
provide Data integrity.
– Scalability:
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.
– Performance:
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
possible.
9
– Reliability:
The ability under normal conditions the application must perform the required
functions successfully
– Usability
The application must provide a user-friendly interface and ergonomic encompassing all
features offered.
2.4 Requirements’ Modeling
For the specification 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 Identification
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 profile 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 certificate 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
transactions list.
– Developer
A developer can login or logout from the application, view his profile, 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.
10
– 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 different functions of our application through a use
case model. The use case model defines the expected activities from the various users with
regard to the application.
Figure-2.2 below illustrates the general use case diagram.
11
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.
12
– Login:
Every employee can login to the application by entering his/her Matricule and
password.
– Consult Information:
Every employee can consult his information such as his/her first 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 files, CVs, Wage Grid and
Contracts.
– 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.
13
2.4.3 Detailed Use Cases
In this section the complex use cases will be detailed, for a better understanding of the
system.
2.4.3.1 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
14
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 Definition 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.
2.4.3.2 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.
15
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
employee.
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 Definition 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.
16
2.4.3.3 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 Definition 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 fired, and an error message is shown.
17
2.4.3.4 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.
Actors RHAgent
Pre-Condition Successful authentication.
Starting when Making a Transaction.
Sequences Definition The RHAgent can either manage the files, update an
employee contract, manage his CV or check the wage
grid.
Ending when RHAgent is done managing.
18
Conclusion
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.
19
Chapter 3
Design
Introduction
Further to the detailed specification 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 finished 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).
20
– A model notifies its associated views and controllers when there has been a change in its
state. This notification 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
being notified.
– A view requests information from the model that it uses to generate an output
representation to the user [1].
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 [2].
21
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:
– Contract
This class defines 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.
22
– Employee
This class is the center of the whole project, as it represents the different 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 identifier), first 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 different information, and
get the certificates and contracts. Finally, get the list of all employees, and get the
supervisor or each employee.
– RHAgent
The RHAgent class represents the Human Resources Agent which manages the
employees, contracts, CVs and Cash Register.
– Absence
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.
– CashRegister
The CashRegister represents the company’s cash register that is used to buy instant
materials without having to pass by a bank or check.
– Transaction
The transaction class represents all the deposits and withdraws transactions of the
cash register.
– CVs/Certificate
Every employee has a set of certificates, which constitute a CV.
– Developer
The developer class represents the developer’s role which is an employee, but can
request an absence.
– TeamLeader
The Team Leader inherits from the developer. In addition, he can evaluate a requested
absence sent by a developer.
– ProjectManager
The Project Manager also inherits from the Employee class, and has the ability to
23
manage the skills, and to evaluate the accepted absences made by a TeamLeader or a
developer.
– Skills/SkillsCategory
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
sequence diagrams.
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
Information process.
Figure 3.3: Consult Information Sequence Diagram
24
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
25
3.3.3 Request Absence
Figure-3.5 below defines 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
26
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
this process.
Figure 3.6: Adding an Employee Sequence Diagram
27
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
28
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
29
Conclusion
In this chapte, I defined 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.
30
Chapter 4
Implementation
Introduction
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 briefly 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 below:
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
31
4.1.2 Software Environment
In this section, I will be mentioning and defining all the software and tools used to realize
this project.
– Operating System: Windows 8.1
– Development Platform: JavaEE 7
– Integrated Development Environment: NetBeans 8.0.2
– Database Server: Oracle 11g
– Application Server: Wildfly-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
– Languages: HTML, JavaScript, CSS3
– Conception Environment: Visual Paradigm 12
4.1.2.1 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 [3].
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 [4].
The JavaEE also extends the JavaSE, which make it a great tool for developing application
especially for companies.
4.1.2.2 NetBeans 8.0.2
NetBeans IDE lets you quickly and easily develop Java desktop, mobile, and web
applications, as well as HTML5 applications with HTML, JavaScript, and CSS. It is free
and open source and has a large community of users and developers around the world. In
addiction NetBeans IDE is the official IDE for Java 8 [5].
NetBeans is a great tool notably when it comes to JSF 2.2 development, it surpasses its
competitors, like Eclipse and IntelliJ.
32
4.1.2.3 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
Corporation [6].
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.
4.1.2.4 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 specification through the Java Community
Process [7].
4.1.2.5 Primefaces 5.2
PrimeFaces is a rich component suite open source User Interface (UI) component library
for JavaServer Faces (JSF) based applications [8].
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 AJAXified, which would make the application very lightweight and
fast.
4.1.2.6 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 [9].
4.1.2.7 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 [10].
33
4.1.2.8 Hibernate 4.3.1
Hibernate an open source Java persistence framework project. Perform powerful object
relational mapping and query databases using HQL and SQL [11].
Hibernate also provides data query and retrieval facilities. It generates SQL calls and relieves
the developer from manual result set handling and object conversion [12].
4.1.2.9 Commons-io 2.4
Commons IO is a library of utilities to assist with developing Input/Output functionality
[13].
This libraries is used to handle the uploaded files into the application.
4.1.2.10 jQuery
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML
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
JavaScript [14].
jQuery is the most famous JavaScript library of all time.
4.1.2.11 Visual Paradigm 12
Visual Paradigm is a powerful, cross-platform and yet easy-to-use visual UML (Unified
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… [15].
All the diagram under this project are made with the help of this tool.
34
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
35
Once a user is successfully authenticated into the web application, he is then redirected
to the home page that differs according to his role (RHAgent, Developer, Team Leader or
Project Manager). The following Figure-4.3 illustrates the home page for a Human Resources
Agent:
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
36
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 filter the list with
many options such as his name, the role, etc…
Figure 4.5: Employee List Screenshot
37
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
38
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 certificate to
CV form” and “modifying a certificate form”:
Figure 4.7: CVs List Screenshot
39
Figure 4.8: Add Certificate Form
Figure 4.9: Modify CV Form Screenshot
40
The RHAgent can also manage the contracts. I will demonstrate some screenshots
regarding managing the contracts. This Figure-4.10 specifies 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
41
Managing the Cash Register is also an important role for the RHAgent. In the upcoming
figures, 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
42
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 first selecting
the desired category, then entering the new skill competency name.
Figure 4.15: Add a Competency
43
Conclusion
In this last chapter, I have set the sport on the development environment and defined its
components, and I took a look at some screenshots of the application.
44
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
benefit from.
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 identified the
problems of the current solution and suggested the proposed one that I intended to develop.
The second phase was the analysis and the specification of the application needs. Actually
this was fulfilled 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 defined 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
work.
This project still possess an ample potential of improvement, since it is a part of bigger
platform for the whole administrative affairs 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
45
projects. Another possible feature that could be added is integrating the whole BGI staff 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 scientific 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.
46
Netography
[1] http://en.wikipedia.org/wiki/model-view-controller. (Last consultation: May 4, 2015).
[2] http://en.wikipedia.org/wiki/class_diagram. (Last consultation: May 4, 2015).
[3] http://www.oracle.com/technetwork/java/javaee/overview/index.html. (Last
consultation: May 4, 2015).
[4] http://en.wikipedia.org/wiki/java_platform,_enterprise_edition. (Last consultation:
May 4, 2015).
[5] https://netbeans.org/features/index.html. (Last consultation: May 4, 2015).
[6] http://en.wikipedia.org/wiki/oracle_database. (Last consultation: May 4, 2015).
[7] http://www.tutorialspoint.com/jsf/. (Last consultation: May 4, 2015).
[8] http://en.wikipedia.org/wiki/primefaces. (Last consultation: May 4, 2015).
[9] https://maven.apache.org/. (Last consultation: May 4, 2015).
[10] http://projects.spring.io/spring-security/. (Last consultation: May 4, 2015).
[11] http://hibernate.org/. (Last consultation: May 4, 2015).
[12] http://en.wikipedia.org/wiki/hibernate_(java). (Last consultation: May 4, 2015).
[13] http://commons.apache.org/proper/commons-io/. (Last consultation: May 4, 2015).
[14] https://jquery.com/. (Last consultation: May 4, 2015).
[15] http://www.visual-paradigm.com/support/documents/vpuserguide/12/13/5963_visualparadi.html.
(Last consultation: May 4, 2015).
47

More Related Content

What's hot

TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>tutorialsruby
 
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Banking at Ho Chi Minh city
 
SW Deployment best practices
SW Deployment best practicesSW Deployment best practices
SW Deployment best practicesSyed Danish Irfan
 
Web Adoption and Implementation
Web Adoption and ImplementationWeb Adoption and Implementation
Web Adoption and ImplementationAssaf Alrousan
 
Dr Dev Kambhampati | Export Import Bank of USA- Global Competitiveness Report...
Dr Dev Kambhampati | Export Import Bank of USA- Global Competitiveness Report...Dr Dev Kambhampati | Export Import Bank of USA- Global Competitiveness Report...
Dr Dev Kambhampati | Export Import Bank of USA- Global Competitiveness Report...Dr Dev Kambhampati
 
Msf for-agile-software-development-v5-process-guidance2
Msf for-agile-software-development-v5-process-guidance2Msf for-agile-software-development-v5-process-guidance2
Msf for-agile-software-development-v5-process-guidance2Javier Morales
 
SSTRM - StrategicReviewGroup.ca - Workshop 2: Power/Energy and Sustainability...
SSTRM - StrategicReviewGroup.ca - Workshop 2: Power/Energy and Sustainability...SSTRM - StrategicReviewGroup.ca - Workshop 2: Power/Energy and Sustainability...
SSTRM - StrategicReviewGroup.ca - Workshop 2: Power/Energy and Sustainability...Phil Carr
 
Hp man ppm9.20_whats_new_pdf
Hp man ppm9.20_whats_new_pdfHp man ppm9.20_whats_new_pdf
Hp man ppm9.20_whats_new_pdfugunal
 
F1i s 2012wf-competition-regulations-rev1
F1i s 2012wf-competition-regulations-rev1F1i s 2012wf-competition-regulations-rev1
F1i s 2012wf-competition-regulations-rev1PedroRomanoCE
 
Plan and conduct assessment
Plan and conduct assessmentPlan and conduct assessment
Plan and conduct assessmentSaide OER Africa
 
Software Engineering
Software EngineeringSoftware Engineering
Software EngineeringSoftware Guru
 
Blue Doc User Manual
Blue Doc   User ManualBlue Doc   User Manual
Blue Doc User Manualgueste2804e
 

What's hot (19)

Hung_thesis
Hung_thesisHung_thesis
Hung_thesis
 
Sdd 2
Sdd 2Sdd 2
Sdd 2
 
document
documentdocument
document
 
TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>
 
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
 
SW Deployment best practices
SW Deployment best practicesSW Deployment best practices
SW Deployment best practices
 
Web Adoption and Implementation
Web Adoption and ImplementationWeb Adoption and Implementation
Web Adoption and Implementation
 
Dr Dev Kambhampati | Export Import Bank of USA- Global Competitiveness Report...
Dr Dev Kambhampati | Export Import Bank of USA- Global Competitiveness Report...Dr Dev Kambhampati | Export Import Bank of USA- Global Competitiveness Report...
Dr Dev Kambhampati | Export Import Bank of USA- Global Competitiveness Report...
 
web_based_ide
web_based_ideweb_based_ide
web_based_ide
 
Msf for-agile-software-development-v5-process-guidance2
Msf for-agile-software-development-v5-process-guidance2Msf for-agile-software-development-v5-process-guidance2
Msf for-agile-software-development-v5-process-guidance2
 
SSTRM - StrategicReviewGroup.ca - Workshop 2: Power/Energy and Sustainability...
SSTRM - StrategicReviewGroup.ca - Workshop 2: Power/Energy and Sustainability...SSTRM - StrategicReviewGroup.ca - Workshop 2: Power/Energy and Sustainability...
SSTRM - StrategicReviewGroup.ca - Workshop 2: Power/Energy and Sustainability...
 
Ppm7.5 demand cg
Ppm7.5 demand cgPpm7.5 demand cg
Ppm7.5 demand cg
 
Hp man ppm9.20_whats_new_pdf
Hp man ppm9.20_whats_new_pdfHp man ppm9.20_whats_new_pdf
Hp man ppm9.20_whats_new_pdf
 
Ppm7.5 cmd tokval
Ppm7.5 cmd tokvalPpm7.5 cmd tokval
Ppm7.5 cmd tokval
 
F1i s 2012wf-competition-regulations-rev1
F1i s 2012wf-competition-regulations-rev1F1i s 2012wf-competition-regulations-rev1
F1i s 2012wf-competition-regulations-rev1
 
Human computer interaction
Human computer interactionHuman computer interaction
Human computer interaction
 
Plan and conduct assessment
Plan and conduct assessmentPlan and conduct assessment
Plan and conduct assessment
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Blue Doc User Manual
Blue Doc   User ManualBlue Doc   User Manual
Blue Doc User Manual
 

Similar to document

Work Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerWork Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerAdel Belasker
 
Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Priyanka Kapoor
 
Trinity Impulse - Event Aggregation to Increase Stundents Awareness of Events...
Trinity Impulse - Event Aggregation to Increase Stundents Awareness of Events...Trinity Impulse - Event Aggregation to Increase Stundents Awareness of Events...
Trinity Impulse - Event Aggregation to Increase Stundents Awareness of Events...Jason Cheung
 
Smart attendance system using facial recognition
Smart attendance system using facial recognitionSmart attendance system using facial recognition
Smart attendance system using facial recognitionVigneshLakshmanan8
 
bkremer-report-final
bkremer-report-finalbkremer-report-final
bkremer-report-finalBen Kremer
 
Sg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam GuideSg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam Guidebrzaaap
 
digiinfo website project report
digiinfo website project reportdigiinfo website project report
digiinfo website project reportABHIJEET KHIRE
 
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Banking at Ho Chi Minh city
 
eclipse.pdf
eclipse.pdfeclipse.pdf
eclipse.pdfPerPerso
 
Chat Application [Full Documentation]
Chat Application [Full Documentation]Chat Application [Full Documentation]
Chat Application [Full Documentation]Rajon
 
online examination management system
online examination management systemonline examination management system
online examination management systemPraveen Patel
 
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...EnriqueJoseCaleroGal
 
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...Certification guide series ibm tivoli usage and accounting manager v7.1 imple...
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...Banking at Ho Chi Minh city
 
Scale The Realtime Web
Scale The Realtime WebScale The Realtime Web
Scale The Realtime Webpfleidi
 

Similar to document (20)

Work Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerWork Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel Belasker
 
Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)
 
Graduation Report
Graduation ReportGraduation Report
Graduation Report
 
test6
test6test6
test6
 
Trinity Impulse - Event Aggregation to Increase Stundents Awareness of Events...
Trinity Impulse - Event Aggregation to Increase Stundents Awareness of Events...Trinity Impulse - Event Aggregation to Increase Stundents Awareness of Events...
Trinity Impulse - Event Aggregation to Increase Stundents Awareness of Events...
 
Report-V1.5_with_comments
Report-V1.5_with_commentsReport-V1.5_with_comments
Report-V1.5_with_comments
 
Smart attendance system using facial recognition
Smart attendance system using facial recognitionSmart attendance system using facial recognition
Smart attendance system using facial recognition
 
bkremer-report-final
bkremer-report-finalbkremer-report-final
bkremer-report-final
 
Thesis_Report
Thesis_ReportThesis_Report
Thesis_Report
 
Sg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam GuideSg247692 Websphere Accounting Chargeback For Tuam Guide
Sg247692 Websphere Accounting Chargeback For Tuam Guide
 
digiinfo website project report
digiinfo website project reportdigiinfo website project report
digiinfo website project report
 
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
Deployment guide series ibm tivoli access manager for e business v6.0 sg247207
 
Bwl red book
Bwl red bookBwl red book
Bwl red book
 
Red book Blueworks Live
Red book Blueworks LiveRed book Blueworks Live
Red book Blueworks Live
 
eclipse.pdf
eclipse.pdfeclipse.pdf
eclipse.pdf
 
Chat Application [Full Documentation]
Chat Application [Full Documentation]Chat Application [Full Documentation]
Chat Application [Full Documentation]
 
online examination management system
online examination management systemonline examination management system
online examination management system
 
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
 
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...Certification guide series ibm tivoli usage and accounting manager v7.1 imple...
Certification guide series ibm tivoli usage and accounting manager v7.1 imple...
 
Scale The Realtime Web
Scale The Realtime WebScale The Realtime Web
Scale The Realtime Web
 

document

  • 1. MINISTRY OF HIGHER EDUCATION AND SCIENTIFIC RESEARCH 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 By Ouerghi YASSINE Professional Supervisor Mr. Fares CHAKCHOUK Academic Supervisor Mrs. Bakhta EL HAOUARI Host Company Academic Year 2014/2015 Design and development of a flow RH web application for the management of human and financial resources
  • 3. Abstract 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. Résumé 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 Frameworks. Mots-clés: Ressource Humaines, Java EE, Oracle, Hibernate, JSF, Primefaces. ‫التلخيص‬ " ‫اسم‬ ‫تحت‬ ‫تطبيق‬ ‫برمجة‬ ‫التقرير‬ ‫هذا‬ ‫يغطي‬WebFlow RH‫بشركة‬ ‫خاص‬ "BGI‫ادارة‬ ‫التطبيقة‬ ‫هذه‬ ‫تضمن‬ , ‫و‬ ‫النظام‬ ‫برمجة‬ ‫مراحل‬ ‫جانب‬ ‫الى‬ ,‫بالبرنامج‬ ‫الخاص‬ ‫العام‬ ‫السياق‬ ‫الى‬ ‫التعرض‬ ‫سيتم‬ ‫الوثيقة‬ ‫هذه‬ ‫في‬ .‫الشركة‬ ‫موظفي‬ .‫للبرنامج‬ ‫التقني‬ ‫التصور‬ ‫منظومة‬ ‫وفق‬ ‫البرنامج‬ ‫هذا‬ ‫تطوير‬ ‫وقع‬Java EE‫عمل‬ ‫اطر‬ ‫عدة‬ ‫مع‬)Frameworks(. ‫مفاتيح‬ ‫كلمات‬:‫البشرية‬ ‫الموارد‬ ‫إدارة‬,Java EE, Hibernate, Oracle, JSF, Primefaces.
  • 4. Dedications 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 ... i
  • 5. Acknowledgment An internship is not only a step added to the student’s curriculum. It also reflects an environment of a new experiences which are acquired every day around persons who surround us. 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. ii
  • 6. Contents Dedications i Acknowledgement ii List of Figures v Liste of Tables vii General Introduction 1 1 General Frame of the Project 3 1.1 Company Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Project Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Proposed Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Analysis and Specification 7 2.1 Adopted Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Non-Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 Requirements’ Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4.1 Actors Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4.2 General Use Case Model . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.3 Detailed Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.3.1 Requesting Absence . . . . . . . . . . . . . . . . . . . . . . 14 iii
  • 7. 2.4.3.2 Manage Competency Grid . . . . . . . . . . . . . . . . . . 15 2.4.3.3 Manage Cash Register . . . . . . . . . . . . . . . . . . . . . 17 2.4.3.4 Manage Employees . . . . . . . . . . . . . . . . . . . . . . . 18 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 Design 20 3.1 Architecture Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2 Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3 Sequence Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3.1 Consult Information . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3.2 Cash Register Withdraw . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3.3 Request Absence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.4 Add Employee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3.5 Update Contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.4 Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4 Implementation 31 4.1 Development environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.1 Material Environment . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.2 Software Environment . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.1.2.1 JavaEE 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.1.2.2 NetBeans 8.0.2 . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.1.2.3 Oracle 11g . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.2.4 JSF 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.2.5 Primefaces 5.2 . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.2.6 Maven 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.2.7 Spring Security 3.2.6 . . . . . . . . . . . . . . . . . . . . . . 33 4.1.2.8 Hibernate 4.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.2.9 Commons-io 2.4 . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.2.10 jQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.2.11 Visual Paradigm 12 . . . . . . . . . . . . . . . . . . . . . . 34 iv
  • 8. 4.2 Overview of the achieved work . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 General Consulion 45 Netography 47 v
  • 9. List of Figures 1.1 BGI organogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1 Waterfall Model of System Development . . . . . . . . . . . . . . . . . . . . 8 2.2 General Use Case Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Request Absence Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4 Manage Competency Grid Use Case . . . . . . . . . . . . . . . . . . . . . . 16 2.5 Cash Register Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.6 Manage Employees Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.1 The MVC Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 Main Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3 Consult Information Sequence Diagram . . . . . . . . . . . . . . . . . . . . . 24 3.4 Cash Register Withdraw Sequence Diagram . . . . . . . . . . . . . . . . . . 25 3.5 Request an Absence Sequence Diagram . . . . . . . . . . . . . . . . . . . . . 26 3.6 Adding an Employee Sequence Diagram . . . . . . . . . . . . . . . . . . . . 27 3.7 Update Contract Sequence Diagram . . . . . . . . . . . . . . . . . . . . . . . 28 3.8 Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.1 Login Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.2 Login Page with error message . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.3 RHAgent Home Page Screenshot . . . . . . . . . . . . . . . . . . . . . . . . 36 4.4 Developer’s Home Page Screenshot . . . . . . . . . . . . . . . . . . . . . . . 36 4.5 Employee List Screenshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.6 Add Employee Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.7 CVs List Screenshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.8 Add Certificate Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 vi
  • 10. 4.9 Modify CV Form Screenshot . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.10 View the Contracts List Screenshot . . . . . . . . . . . . . . . . . . . . . . . 41 4.11 Changing the Contract Form . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.12 View the Transactions List Screenshot . . . . . . . . . . . . . . . . . . . . . 42 4.13 Add a Withdrawal Transaction Form . . . . . . . . . . . . . . . . . . . . . . 42 4.14 Managing the Competency Grid . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.15 Add a Competency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 vii
  • 11. List of Tables 2.1 Request Absence Use Case Description . . . . . . . . . . . . . . . . . . . . . 15 2.2 Manage Competency Grid Use Case Description . . . . . . . . . . . . . . . . 16 2.3 Manage Cash Register Use Case Description . . . . . . . . . . . . . . . . . . 17 2.4 Manage Cash Register Use Case Description . . . . . . . . . . . . . . . . . . 18 4.1 PC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 viii
  • 12. General Introduction Every company wishes to improve their profits and matures their business. One way of achieving these goals is to setup a powerful, yet time efficient 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 Affairs Flow Admin”. In this report I will discuss the different aspects of this project. The first 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 specification of this project, by identifying the functional and non-functional requirements, and introducing some use case diagrams as well. Throughout the third chapter, I will detail the design of the application. I will first describe, the architecture pattern, then, the detailed models that comprise the proposed solution. The final 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. 1
  • 13. Accordingly, I will finish by a short conclusion and suggest the possible ways and ideas to optimize this project. 2
  • 14. Chapter 1 General Frame of the Project Introduction In this chapter, I will talk briefly 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 field, it provides custom made software, maintenance and training on different kinds of computer related technologies and programming languages. The BGI runs with over 200 employees, who have dealt and offered solutions for different types of customers, from big companies to national bureaus and institutes. Some of these solutions are specially designed software for finance 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 affects the “Project Direction”, especially the “Project Manager”, “Team Leader” and “Developer”. 3
  • 15. Figure-1.1 below represents the BGI corporation organogram. Figure 1.1: BGI organogram 1.2 Background Each and every company which operates a large number of employees needs to adopt a custom system to be able to administer large numbers efficiently. The quickest and simplest solution that the managers of BGI came across, is the use of Microsoft Excel spreadsheets. The Microsoft Office 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 efficient 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 file plan (through the network) is used, one could not manage the privileges and roles, unless one implements some very complex configuration or has multiple 4
  • 16. files which is not easy to manage. Moreover, using a spreadsheet requires considerable knowledge and continuous training for the agents. Finally, the cheapest Microsoft Office 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 offered by this application are: – Staff 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 effort to design an application with more possible features, and in order to have a user-friendly interface, while being efficient, 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. 5
  • 17. Conclusion 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. 6
  • 18. Chapter 2 Analysis and Specification Introduction 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. 7
  • 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 offer to its users. The following, represents the requirements that this web application must offer: – 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 files 8
  • 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 implemented: 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 system: – Security: Unauthorized access to the system and its data is not allowed. Each user must login with a Matricule and password, and are granted specific privileges. The system has to provide Data integrity. – Scalability: 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. – Performance: 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 possible. 9
  • 21. – Reliability: The ability under normal conditions the application must perform the required functions successfully – Usability The application must provide a user-friendly interface and ergonomic encompassing all features offered. 2.4 Requirements’ Modeling For the specification 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 Identification 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 profile 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 certificate 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 transactions list. – Developer A developer can login or logout from the application, view his profile, 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. 10
  • 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 different functions of our application through a use case model. The use case model defines the expected activities from the various users with regard to the application. Figure-2.2 below illustrates the general use case diagram. 11
  • 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. 12
  • 24. – Login: Every employee can login to the application by entering his/her Matricule and password. – Consult Information: Every employee can consult his information such as his/her first 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 files, CVs, Wage Grid and Contracts. – 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. 13
  • 25. 2.4.3 Detailed Use Cases In this section the complex use cases will be detailed, for a better understanding of the system. 2.4.3.1 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 14
  • 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 Definition 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. 2.4.3.2 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. 15
  • 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 employee. 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 Definition 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. 16
  • 28. 2.4.3.3 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 Definition 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 fired, and an error message is shown. 17
  • 29. 2.4.3.4 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. Actors RHAgent Pre-Condition Successful authentication. Starting when Making a Transaction. Sequences Definition The RHAgent can either manage the files, update an employee contract, manage his CV or check the wage grid. Ending when RHAgent is done managing. 18
  • 30. Conclusion 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. 19
  • 31. Chapter 3 Design Introduction Further to the detailed specification 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 finished 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). 20
  • 32. – A model notifies its associated views and controllers when there has been a change in its state. This notification 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 being notified. – A view requests information from the model that it uses to generate an output representation to the user [1]. 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 [2]. 21
  • 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: – Contract This class defines 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. 22
  • 34. – Employee This class is the center of the whole project, as it represents the different 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 identifier), first 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 different information, and get the certificates and contracts. Finally, get the list of all employees, and get the supervisor or each employee. – RHAgent The RHAgent class represents the Human Resources Agent which manages the employees, contracts, CVs and Cash Register. – Absence 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. – CashRegister The CashRegister represents the company’s cash register that is used to buy instant materials without having to pass by a bank or check. – Transaction The transaction class represents all the deposits and withdraws transactions of the cash register. – CVs/Certificate Every employee has a set of certificates, which constitute a CV. – Developer The developer class represents the developer’s role which is an employee, but can request an absence. – TeamLeader The Team Leader inherits from the developer. In addition, he can evaluate a requested absence sent by a developer. – ProjectManager The Project Manager also inherits from the Employee class, and has the ability to 23
  • 35. manage the skills, and to evaluate the accepted absences made by a TeamLeader or a developer. – Skills/SkillsCategory 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 sequence diagrams. 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 Information process. Figure 3.3: Consult Information Sequence Diagram 24
  • 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 25
  • 37. 3.3.3 Request Absence Figure-3.5 below defines 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 26
  • 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 this process. Figure 3.6: Adding an Employee Sequence Diagram 27
  • 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 28
  • 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 29
  • 41. Conclusion In this chapte, I defined 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. 30
  • 42. Chapter 4 Implementation Introduction 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 briefly 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 below: 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 31
  • 43. 4.1.2 Software Environment In this section, I will be mentioning and defining all the software and tools used to realize this project. – Operating System: Windows 8.1 – Development Platform: JavaEE 7 – Integrated Development Environment: NetBeans 8.0.2 – Database Server: Oracle 11g – Application Server: Wildfly-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 – Languages: HTML, JavaScript, CSS3 – Conception Environment: Visual Paradigm 12 4.1.2.1 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 [3]. 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 [4]. The JavaEE also extends the JavaSE, which make it a great tool for developing application especially for companies. 4.1.2.2 NetBeans 8.0.2 NetBeans IDE lets you quickly and easily develop Java desktop, mobile, and web applications, as well as HTML5 applications with HTML, JavaScript, and CSS. It is free and open source and has a large community of users and developers around the world. In addiction NetBeans IDE is the official IDE for Java 8 [5]. NetBeans is a great tool notably when it comes to JSF 2.2 development, it surpasses its competitors, like Eclipse and IntelliJ. 32
  • 44. 4.1.2.3 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 Corporation [6]. 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. 4.1.2.4 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 specification through the Java Community Process [7]. 4.1.2.5 Primefaces 5.2 PrimeFaces is a rich component suite open source User Interface (UI) component library for JavaServer Faces (JSF) based applications [8]. 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 AJAXified, which would make the application very lightweight and fast. 4.1.2.6 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 [9]. 4.1.2.7 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 [10]. 33
  • 45. 4.1.2.8 Hibernate 4.3.1 Hibernate an open source Java persistence framework project. Perform powerful object relational mapping and query databases using HQL and SQL [11]. Hibernate also provides data query and retrieval facilities. It generates SQL calls and relieves the developer from manual result set handling and object conversion [12]. 4.1.2.9 Commons-io 2.4 Commons IO is a library of utilities to assist with developing Input/Output functionality [13]. This libraries is used to handle the uploaded files into the application. 4.1.2.10 jQuery jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML 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 JavaScript [14]. jQuery is the most famous JavaScript library of all time. 4.1.2.11 Visual Paradigm 12 Visual Paradigm is a powerful, cross-platform and yet easy-to-use visual UML (Unified 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… [15]. All the diagram under this project are made with the help of this tool. 34
  • 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 35
  • 47. Once a user is successfully authenticated into the web application, he is then redirected to the home page that differs according to his role (RHAgent, Developer, Team Leader or Project Manager). The following Figure-4.3 illustrates the home page for a Human Resources Agent: 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 36
  • 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 filter the list with many options such as his name, the role, etc… Figure 4.5: Employee List Screenshot 37
  • 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 38
  • 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 certificate to CV form” and “modifying a certificate form”: Figure 4.7: CVs List Screenshot 39
  • 51. Figure 4.8: Add Certificate Form Figure 4.9: Modify CV Form Screenshot 40
  • 52. The RHAgent can also manage the contracts. I will demonstrate some screenshots regarding managing the contracts. This Figure-4.10 specifies 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 41
  • 53. Managing the Cash Register is also an important role for the RHAgent. In the upcoming figures, 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 42
  • 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 first selecting the desired category, then entering the new skill competency name. Figure 4.15: Add a Competency 43
  • 55. Conclusion In this last chapter, I have set the sport on the development environment and defined its components, and I took a look at some screenshots of the application. 44
  • 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 benefit from. 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 identified the problems of the current solution and suggested the proposed one that I intended to develop. The second phase was the analysis and the specification of the application needs. Actually this was fulfilled 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 defined 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 work. This project still possess an ample potential of improvement, since it is a part of bigger platform for the whole administrative affairs 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 45
  • 57. projects. Another possible feature that could be added is integrating the whole BGI staff 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 scientific 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. 46
  • 58. Netography [1] http://en.wikipedia.org/wiki/model-view-controller. (Last consultation: May 4, 2015). [2] http://en.wikipedia.org/wiki/class_diagram. (Last consultation: May 4, 2015). [3] http://www.oracle.com/technetwork/java/javaee/overview/index.html. (Last consultation: May 4, 2015). [4] http://en.wikipedia.org/wiki/java_platform,_enterprise_edition. (Last consultation: May 4, 2015). [5] https://netbeans.org/features/index.html. (Last consultation: May 4, 2015). [6] http://en.wikipedia.org/wiki/oracle_database. (Last consultation: May 4, 2015). [7] http://www.tutorialspoint.com/jsf/. (Last consultation: May 4, 2015). [8] http://en.wikipedia.org/wiki/primefaces. (Last consultation: May 4, 2015). [9] https://maven.apache.org/. (Last consultation: May 4, 2015). [10] http://projects.spring.io/spring-security/. (Last consultation: May 4, 2015). [11] http://hibernate.org/. (Last consultation: May 4, 2015). [12] http://en.wikipedia.org/wiki/hibernate_(java). (Last consultation: May 4, 2015). [13] http://commons.apache.org/proper/commons-io/. (Last consultation: May 4, 2015). [14] https://jquery.com/. (Last consultation: May 4, 2015). [15] http://www.visual-paradigm.com/support/documents/vpuserguide/12/13/5963_visualparadi.html. (Last consultation: May 4, 2015). 47