Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Program For Managing Internal Affairs of A Project Based Organisation-Roland

Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

1

MINISTRY OF EDUCATION AND SCIENCE OF UKRAINE


CHERKASY THE BOHDAN KHMELNYTSKY NATIONAL
UNIVERSITY
Faculty of Computer Science, Intelligent and Control Systems
Department of Software for Automated Systems
Major - Computer Science
(Software Engineering)

Head of the department

___________________
(initials and surname)

___________________
(signature)

<<___>>__________2021

DEGREE: BACHELOR
INFORMATION SYSTEM FOR ADMINISTRATION OF IT COMPANY
2

CONTENT
Annotation………………………………………………………………………...4

1 REVIEW AND COMPARATIVE ANALYSIS OF SYSTEM ANALOGUES


OF INFORMATION SYSTEM FOR ADMINISTRATION OF IT
COMPANY………………………………………………………………………...7
1.1 Characteristics and scope of the system of HR Management of IT
company…………………………………………………………………………...7
1.2 Review of analogues of systems for organisational HR Management....8
1.2.1 MyHRToolkit…………………………………………………………….8
1.2.2 BambooHR…………………………………………..………………...10
1.3 Analysis of reviewing system analogues…………………………….…...11
1.4 Statement of the problem of developing a system for organizing work for
management of HR in an IT organisation………………………………...11
Conclusion to first section……………………………………………………...13

2 ANALYSIS AND DESIGN OF INFORMATION SYSTEM FOR


ADMINISTRATION OF IT COMPANY………………………………………..14

2.1 Analyzing the subject area of information system for administration of IT


company……………………………………………………………………….....14

2.2 Formulating and analysis of requirements……………………………….14

2.3 Formation of system requirements……………………………....……….18

2.3.1 Employee time log functionality……………………………………..24

2.4 System behavioural and transitional states of system for information


management for IT company…………………………………………………..30

2.5 System architectural design of system for information management of IT


company………………………………………………………………………….35
3

Conclusion to the second section……………………………………………..36

3 DEVELOPMENT AND TESTING OF SYSTEM FOR INFORMATION


MANAGEMENT OF IT COMPANY…………………………………………………..37

3.1 Programming language and technologies that will be involved in


developing the system…………………………………………...……………..37
4

ANNOTATION

The theme of this project is to create a program for the administration of an


IT company. Modern organizations and companies have evolved in a
system of flexible and dynamic work environments where overall goals and
targets are broken down into mini projects and tasks with shorter life spans
and assigned to employees within the organisation. This approach of work
provides efficiency and better quality of work as well as max involvement
and easy tracking of work progress of both the projects and it’s employees.
Companies are therefore required to collect and gather various data -
from specifications and descriptions of a project to personal information of
employees within the organisation. Such data can be gathered and
translated into who has been assigned a particular task and even the
duration of time used for the completion of certain projects. The quantity
and depth of information gathered varies depending on the size of the
organization and the range of services they provide. This highlights some
of the key issues faced by companies who practise old-fashioned storage
and handling of organisational data. There’s a risk of misinformation,
possibly loss of data and significantly slow computing of relevant
information for companies who do not have a proper and well established
digitized management system in place.
The essence of developing a program for organizing and managing a
company’s internal affairs is primarily because many companies lack a well
structured easy to use digitized modern system that focuses on it’s
employees and allows professional interactions among the company’s
management staff and the workers. Currently, most business management
softwares focus on collaborative tools used for effective task tracking
however, lacking proper features for managing and interactions among
individuals within the cooperation.
The purpose and objectives of development: The purpose of this
theme is to design and develop a program that will aid every member of an
organisation specifically an IT company to interact and manage various
aspect of their work details including, their level of workload, add or see
their level of expertise and skills, what technologies they use and even
keep track of individual working times. The program will also keep personal
info of the employees such as address, marital status and contact detail.
The program will allow for the access and manipulation of necessary
information as well as adding of new data to be stored.
5

The application is basically designed for every employee who is


associated with the company; however, the level and rate of interaction a
user will have with the program may vary depending mainly on his position
within the organization.
The aim - This is a program that provides tools for the internal
administration of an IT company, therefore most of the interactions and
management will be done by the HR and managing staff of the company.

Examples of most common employee positions within an IT company


1. HR managers – mainly manages the placements and displacements
of human resources in the company. In this case they are responsible
for recruiting and allocating of employees on appropriate projects

2. Project managers – project managers are usually assigned at least


one or two major projects within the company of which they are
responsible to orchestrate and track the team members working on
that particular projects and assign relevant tasks to fulfill the goal of
the project

3. Team leads – usually in charge of the technicality and documentation


of various working functions of a particular project within a team.
Team Lead solves problems and deals with blockers of team
members on a much higher level and contributes to the project
growth

4. System Administrators - Sysadmins are responsible for dependable


access and availability to IT systems. Sysadmins are therefore
required to troubleshoot and fix issues that compromise system
performance or access to an IT service.

5. CEO - A Chief Executive Officer (CEO), or Chief Executive, is the


highest ranking corporate officer, administrator, corporate
administrator, executive, or executive officer, in charge of total
management of a corporation

6. Employees with technical skills - General staff of the IT company with


various skills and expertise responsible for carrying out the primary
labor of the company’s projects.
6

7. Financial Accountants - Responsible for undertaking and overseeing


monthly and statutory reporting requirements. Company Accountants
work closely with members of management, and need to have a clear
and effective communication style to ensure all stakeholders have a
clear understanding of the finances of the company.
7

1 REVIEW AND COMPARATIVE ANALYSIS OF SYSTEM ANALOGUES


OF INFORMATION SYSTEM FOR ADMINISTRATION OF IT COMPANY
1.1 Characteristics and scope of the system of HR Management
of IT company
A system for the administration of a company is crucial for every
modern organisation. An IT company in context is similar to any
commercial enterprise. The distinct element of every IT organisation is that
they render service mainly within the Information Communication and
Technology sphere. Administering the human resource aspect of such
institution is quite similar to every other institute, although HRs and
management staff of IT companies are tasked with greater responsibilities
that directly reflects on the company’s progres and credibility; You can think
of them as the coach or manager of a soccer club - They are burdened with
recruiting members of various skills, expertise and experience then
allocating them into suitable positions and also maintaining the welfare and
wellbeing of the individuals to keep a positive and goal driven workplace as
well as handle the paperworks and records of necessary relevant
information. With that, raises the need for a management tool or system
that will help the HRs do their job effectively and efficiently.

To develop a program that will ease the job of an IT Company’s


administration, the program should have the following characteristics:
1. User-friendly interface
2. Intuitive and easy to navigate
3. Informative, clear and concise
4. Simple and meaningful display of pages
5. Flexibility in navigation
6. Automatic calculations and report generating
7. Collection and storage of data
8

1.2 Review of analogues of systems for organisational HR


Management
In order to build a prestigious software, a tactical analysis and review
of analogous and well valued programs within the scope of the theme is
needful. It provides an upperhand to get familiar with most valuable
features as well as distinct defects which can add to your focal point to
build the system. By research I looked into a couple of the most commonly
used commercial HR management software I came across.
1.2.1 MyHRToolkit
MyHRToolkit is an HR software package specifically designed for
small and medium sized businesses. MyHRToolkit began in 2005 using the
name H2R as a spin-out business from the Sheffield law firm
IronmongerCurtis. In 2010 the name was changed to MyHRToolkit as its
scope and reach expanded. This particular program claims to be ‘easy to
use’ affordable staff monitoring online software it includes features such as:
● Performance Management
● Performance Metrics
● Self Service Portal
● Skills Tracking
● Time & Attendance
● Time Off Management

Figure 1.1 - Screenshot of display view for appraisals of MyHRToolkit


9

Figure 1.2 - Screenshot of the display page for organisational structure of


MyHRToolkit

According to observations and reviews made by users of this program, it’s


clear that Myhrtoolkit is not very intuitive, which means that new users find
it a bit complicated to navigate and might not grasp the full capability of the
software as quickly as they should. Secondly, the program lacks a fair
amount of filters which would be great to enable it’s users to query and find
a person or group of people based on a certain category within the
company.
10

1.2.2 BambooHR

BambooHR is an American technology company that provides human


resources software as a service. Founded in 2008 by Ben Peterson and
Ryan Sanders, the company is based in Lindon, Utah. This online software
also boasts of an ‘all-in-one’ cloud based software which reduces the stress
of an HR by handling most of the ‘paperwork’ and allowing the HRs to do
their work effectively and efficiently. Prominent features of BambooHR
includes:
● Archiving & Retention
● Assessment Management
● Audit Management
● Automatic Time Capture
● Benchmarking
● Benefits Management
● Billable & Non-Billable Hours
● Billing & Invoicing
● Calendar Management
● Candidate Tracking

Figure 1.3 - Screenshot of the homepage of BambooHR


11

BambooHR however, is also designed for small to medium sized


companies therefore it’s limited to only companies with not more than 1000
employees ideally. Also this software attempts to provide a wide range of
self made features which is a great idea but on the other hand their
functionalities are not very flexible and well automated hence the HRs who
use this software are made to carry out a fair amount of the management
labor which could have been easily digitized.
1.3 Analysis of reviewing system analogues
After reviewing similar programs within the subject area it’s possible
to come up with a conclusion of expectations and requirements that are
essential to develop an HR Management application. By analysis it’s clear
that both reviewed applications contains vital the features required for the
theme such as:
● Collection and storage of information
● Time and calendar management
● Performance tracking
● Personnel management

Other bonus features they could choose to include for more positive
review that were mentioned in section 1.1 are:

● User-friendly interface
● Task automation
● Intuitive and easy to understand user interface

1.4 Statement of the problem of developing a system for


organizing work for management of HR in an IT organisation
The act of developing a system to aid HR management in a tech
company is thoughtful and useful because the primary goal here is to make
this section of management simpler and interactive for every member of the
company. Therefore, the aim is to develop a system that is concise in
display, easy for new users to use, flexible with the flow of functionalities
and relevant features which will serve as useful tools for the users.

The program will aid the HR manage and keep record of the personnel and
professional activities within the company such as:
12

● Manage employee’s personal info


● Manage employee’s professional(work-related) info
● Manage and monitor internal projects of the company
● Monitor employee’s availability and work history
● Monitor and manage workloads of teams and individual employees
● And even keep relevant info about potential employees

The general staff of the company will also be able to access functions
related to:

● Viewing of personal record


● Viewing of professional record
● Interact with their work calendar
● And view availability of team mates

With the functionalities mentioned above, the measures needed to take in


order to build the system are:

1. Get to know the size and scale of the target organization


2. Investigate the basic needs of the HR management
3. Get acquainted with the IT field and the various skills and expertise
that the employees might have
4. Research common structure and positions within a typical IT firm
5. Get acquainted with usual tools and resources commonly used by IT
companies
6. Be familiar with the flow of work in the IT industry and how the
taskforce is monitored
7. Get acquainted to possible api’s and external sources you might
include in the application

To develop the system, the suitable approach is outlined as follows:


1. Gat her the necessary requirements and features needed to be
included in the application
2. Review the features and its relevance to the theme of task
3. Design the system and outline with diagrams the structure and
properties of the application
13

4. Practically developing the application for the administration of IT


company
5. Testing and analyzing the functions of the program

Conclusion to section 1
During this section, the theme of the task - administration of an IT
company was described and explained. Common employee positions
found within a typical IT company were outlined and briefly defined.the
theme of the task was described and explained. The theme of the task was
described and explained. Recommended characteristics were pointed out
and a review was made on a couple of selected commonly used programs
within the scope of the subject area. Defects were pointed out to highlight
what needs to stand out in the application to be developed. The appropriate
measures suitable and approach to help develop the system was outlined.
14

2 ANALYSIS AND DESIGN OF INFORMATION SYSTEM FOR


ADMINISTRATION OF IT COMPANY
2.1 Analyzing the subject area of information system for
administration of IT company
In order to design and construct an information system for managing
an IT company, it is necessary to understand the roles of the users that will
interact with the system. It is also important to outline the main functions
which should be implemented in the application.

Within an IT company there are multiple workers with various sets of


skills and positions. For simplicity and understanding, this documentation
will collectively classify between the most significant roles of the company.
The various positions of the subject area will be condensed into
employees, project managers and HR managers.

Employees in this documentation will stand for the general workforce


of an IT company which will include workers with positions such as
backend engineer, frontend developer, system administrator, business
analyst, team lead, devops engineer, android developers, graphic designer
and and all. Project managers, obviously will be the unit managers of the
various projects within the company and HR managers - the most to
interact with the system, in charge of planning, directing, and coordinating
the administrative functions of the organization.

2.2 FORMULATING AND ANALYSIS OF REQUIREMENTS


Regarding the subject area as a system to be used within an
organisation with its target users already employed, there will be no need
for a registration page in the application. However, there will be a need for
a login page; only users who have already been added to the system by
the HR will have the ability to login and use the application.
As shown in fig 2.1. An employee after login will be able to view the
calendar of both theirs and team mates. The calendar will basically show
the active and inactive days of an employee, also the amount of workload
and projects they might be working on.
15

Employees will also be able to view already requested vacations and


will have the opportunity to request new vacations. The employees will also
have the opportunity to view the overtime they worked and the current
status. Employees will not be able to log overtime themselves because it
will be automatically detected and displayed to the employee for view only.
Lastly, employees can navigate to view their personal career history. The
career history of an employee will contain the various positions an
employee has occupied within the company and at what period of time.

Figure 2.1 - use case diagram of Information System for IT company


16

In regards to the interactions of the system and logic of an


organisation, the project managers and HR managers are technically
employees of the company also. As you can see in fig 2.1. The employee,
project manager and HR manager are progressively linked to each other.
What that means is, the general employee can access the basic level of
features within the system while the project manager can access
everything the employee can but more. The HR manager subsequently has
the opportunity to utilize features that are accessible for both employees
and project managers, as well as have a higher level access to some
features that can only be accessible to an HR manager.

A project manager after login will also be able to access all basic
features just as the general employee. In addition, a project manager will
be able to view the employee list and personal profile of each employee;
however, a project manager will have read only access and will not be able
to make changes to an employee data.

Project managers are primarily responsible for approving vacations of


employees who work on that particular project. Therefore, project
managers will have the right to see vacations that have been requested by
team members and might decide to approve or reject the vacation request.
Project managers will not only interact with vacation requests of team
members but they will also be able to make vacation requests of their own
just like every employee and will also be able to see a list of their personal
vacation requests.

Similar to vacations, project managers will also be responsible for


approving or dismissing overtimes logged by employees. Overtimes will be
calculated automatically by the system using daily logged time of the
employees and will be displayed in the system for project managers to
either approve or dismiss.

One of the most important features of the system will be the ‘projects’
feature. This feature is crucial to provide relevant information needed to aid
the logic and functionality of the system. The system will keep record of all
the projects of the company. Project records will contain the characteristics
17

and status of the projects, as well as the team members who are
associated with each project. This feature will be key to populate the load
calendar of every employee as the calendar will show what day an
employee is active and what projects they are working on. Project
managers will be able to manually manage projects in the application. They
will be able to see their own projects and also a full detailed list of all
projects and can make necessary changes if needed.

Generally the access rights of features within the system between


project managers and HR managers are quite similar but a few features
highlight the distinction between the two roles. Manipulating and managing
employee data is a feature exclusive to an HR manager. HR managers are
also the only ones who will be able to delete the career history of an
employee. Another entity that will be only available to an HR will be the
‘candidates’ unit. An HR will be able to view and manage the candidate
records in the system. In summary an HR manager will have full access to
all the features within the system and be able to manipulate every
necessary information.

In order to give a clear understanding of the access rights of the


various users within an IT company that will interact with the application.
The fundamental roles and user rights have been outlined in figure 2.2
below.

Figure 2.2 - General basic features and user rights to implement in the
application
18

2.3 FORMATION OF SYSTEM REQUIREMENTS

With the basic user roles and functionality already outlined, the next
step is to come up with the concept of a data set for the system. It is
necessary to plan and visualize the initial structure of classes that will be
required to implement the above use case. These classes will be the
backbone of the system therefore, it’s important to realise and revise the
major and crucial entities that govern the management and workflow of an
IT company.
The first and most obvious class is the user class. To build any
user-based application, the user class is the most fundamental class of
them all. The user class will have a great role to play as it will be
responsible for processing the records of every person who will interact
with the system. In addition to employees who will interact with the system,
the user class will also keep records of candidates, who might be potential
members of the company. The user class will be directly or indirectly
related to every other class in the system. Both managers’ and employees'
records will be kept and manipulated through the user class. The user class
in concept will contain fields like:
1. Name - the name column will be a text field which will obviously be
responsible for recording and retrieving the names of the employee
records.
2. Position - the position will be a text field for managing the employee
positions within the company. Examples of such positions are:
‘Backend Engineer’, ‘Graphic Designer’, ‘Project Manager’ etc.
3. Contract date - a date field which will keep record of the date an
employee signed the contract to be a member of the company.
4. Contact info - this will be a text field that will manage the personal
contact of the employee such as address and telephone number.
5. Date of Birth(DOB) - responsible for keeping track of employee
birthdays, date of birth field will also be a date field.
The user class will also hold some functions that will be used to implement
certain functionalities such as searching and calculating working days for
every employee. Another extra capability of the user class could be to
scope between the employee records and candidate records.
19

Figure 2.3 - Conceptual class diagram of the HR management system

Passport info class will be used to keep record of legal information


about our employees. The fields that will be included in the passport info
class will basically correspond to information collected from the employee’s
actual passport document.

The fields of passport info class will be:

1. Name - the name field will be of text type, this will manage the
employee's legal full name which will be taken from the individual’s
passport document.
2. Passport number - this will be a text field that will record and retrieve
the actual number from the individual’s passport.
3. Address - will be responsible for keeping the legal or documented
address of employees. This will also be a text field
20

4. Nationality - the nationality field will be in place for the country of


origin or citizenship of the employee.

Location class will handle the current geographical location or office


that an employee will be working from. The location class will be related to
the user class directly as it will be property of every employee.

1. Name - the name column will be a text field that manipulates the
name of the city of the employee’s office.
2. Annual vacation days - this is basically a numeric field that will be
used to set yearly vacation days for specific locations given by the
company.
3. Annual sick days - is also a numeric field that will be used to set
yearly sick days for employee’s given by the company.

Skill class is related to the user class directly as it is relevant to keep


track and record the level of expertise of an employee associated with the
various skills required on the job. For an IT company examples of technical
skills that will be related to the tools, technology or programming language
they are able to use.

The skill class will have two fundamental fields - the name and level
columns. The name field will hold the name of the technology or
programming language known by the employee and the level column will
be a single descriptive word to tell the employee’s level in a particular skill
for example ‘junior’ or ‘senior’.

Hardware class is important for this system because it will be


needed to keep and manage records of company-owned technical
components and appliances that are being used or distributed to individual
employees. For an IT company, hardwares such as computers, extra
monitors, microphone, web cameras or any physical appliance that is in
possession of an employee has to be recorded and tracked. By that the
hardware class is also directly related to the user class to show what user
or employee is in possession of what hardware.
21

Fields included in the hardware class are:

1. Type - the type column will be for the type of hardware that is in
possession of the employee. For example ‘RAM’ or ‘Laptop’
2. Model - the model field could hold information about the hardware’s
brand or a specific version of type.
3. Value - the value of the particular hardware will also need to be
collected and recorded. In this case the value will depend on the type
of hardware but it could also be optional. The value depending on the
type can be of monetary worth or amount wise. It is purely
informational based on the conditions of input.
4. Condition - condition field will simply record the state of the hardware
when it was received by the employee. For example we could have
conditions as: ‘new’, ‘fixed’ or ‘used’
5. Notice - this field will record any prompt or comment associated with
the hardware in question.

The hardware class will have two functions that will implement
searching of hardwares for cases when the hardware has been
agreed to be transferred or given to another employee for use or
even for fixing.

Load class is one of the most important classes to include in the


system. The load class is related to the user class and it will handle the
level of workload on every employee, it’s crucial to display this information
on the load calendar to be viewed by users who interact with the program.
Load is basically the amount of work that will be done or is expected to be
done by an employee on projects for a time range. The load class will be
linked directly to the user and project class. In other words, the load class
will record and translate the amount of work being done by an employee on
a particular project for a time period.

The load class will contain fields such as:

1. Start date - this will be a date field that will manage the beginning of
the load assigned to the employee.
22

2. End date - this will be a date field that will manage the final date
taken or expected for the employee to complete the particular load.
3. Load amount - a numeric field for measuring the actual amount of
participation of the user on the project. This field will actually
correspond to the percentage of involvement of the employee on the
project.
4. Comment - a text field that will record any extra comment for the
specific load of necessary.

The load class will have one method corresponding to setting dates for the
loads since the dates will not necessarily be required on the addition or
creation of load so this method will allow for the dates to be set within any
given time.

Project class is also a very important requirement for the


development of the management system for IT companies. About all
workforce surrounding the IT organisation are project based therefore,
there’s a great for the implementation of this class. The project class will
not only be responsible for keeping and managing the projects of the
company but it will also be key to grouping the employees into teams and
determining roles such as project manager by the system. The project
class is directly associated to the load class as every technical employee is
expected to be working on at least one project so workloads will directly be
related to projects however the project class will be indirectly associated to
the user class through the load class. In other words the projects of an
employee can be found by the system through the records of workloads
taken.

The project class will include fields such as:

Name - a text field that will record the specific project’s name.

Status - a text field that will be used to track the status of the project, for
example ‘active’, ‘paused’ or ‘completed’

Category - an assumption is made that projects in the organisations will be


split or categorised based on certain criterias.
23

Start date - a date field to record the actual start date of the project.

End date - a date field to record the actual or estimated finish date for the
project.

Tech stack - a text field that will basically record the technologies which will
be involved in working on the project.

Description - a text field to briefly state or describe the expectation of the


project if needed.

Career history class is primarily related and depends on the user


class. The career history class will keep and manage records of employee
positions occupied by each employee in the company. These records will
be taken when the position field of the user class is changed. At the change
of user position, the new position will be recorded in the career history with
a start date of the date of change and the end date of the previous career
history record will be set with the current date of change.

Day-off class or in other words the vacation and sick days tracking
class is also an important requirement in the subject area. This class will be
responsible for managing and keeping records of employees taken and
requested days off from work. This information will be crucial to calculate
the total working days and available days of the employee. Information
provided by this class will be useful for team planning and even HR and
accounting purposes such as calculating the number of paid work days of
an employee.

The day-off class will include fields such as:

1. Start date - a date field that will be set by the user or employee when
requesting a day off.
2. End date - a date field also set by the user to determine the finish
date of his day off.
3. Type - a text field that will allow the user to state the type of day off
being requested, for example ‘vacation’ or ‘sick leave’
4. Status - a text field which will be used to show the state of the
vacation for example, if the vacation has been approved or rejected.
24

The day-off class will include a method which will be implemented to


calculate the total number of requested absent working days.

Overtime class is an instrumental feature to be included in the


system concerning the subject area. The overtime class will manage
extra hours worked by employees. The actual date and amount of
extra hours worked by the employee will be collected and recorded
with the overtime class. This information will also be useful for HR
and accounting purposes such as deciding compensation based on
working hours of the employee. The overtime class relies on the
actual daily time logged by each employee. The actual scope and
implementation of this feature will be described in the section below.
2.3.1 Employee time log functionality
For the collection and tracking of daily time logs by the
employees of an IT organisation there is a need for a project and time
tracking feature. Regarding the scope of the subject area, the main
focus for this system is to develop and implement an application for
the HR management of an IT company. An external program for time
and project tracking will be used as a support system to aid the full
functionality of the target system. For the simple reason that the
external program is more suitable due to already made and in depth
tracking abilities and controls which is not necessarily required within
the scope of this subject area but might be helpful for the overall
capability of the system.
For this segment it is important to understand the product of
choice and how it will integrate with the system of the topic. The api
structure and capabilities of the selected program have to be studied
in order to understand and draw up the necessary approach that will
be used to establish communication between the system and the
external program.
The suitable program for project-time tracking that will be used
to aid development of this system as selected is Jira. Jira is a java
based application that is used for project related time tracking. It’s
licensed under the company Attlassian and one of the most popular
project tracking softwares available.

Jira allows you to divide story points of a project as issues to be


assigned to members of a team or specific employees to be worked
25

on individually. These issues can be grouped in a streamlined


timeline based on their development status - jira provides an
interactive interface for moving issues across dedicated development
phases. Jira also allows you to set priority on issues for team
members to determine the workflow of the project. In fig 2.4. You can
see the typical jira board of issues distributed across various
development phases and the assigned members.

Figure 2.4 - project issues display view of jira

The most important feature of jira which is relevant for the


development of the HR management system is the time tracking feature.
Users of jira are able to track the time spent on individual issues they
worked on as shown in fig. 2.5. Hours spent by a team member is tracked
on the issues in jira and these issues each are related to a particular
project. To align with the requirements of the subject area, the following are
the information that will need to be collected from jira to be recorded and
managed by the system:

1. The project data


2. The issue data
3. Time logged on the issues
26

4. Jira user data

Figure 2.5 - project issues display view of jira

When the listed information is collected from jira, a dedicated


module of classes will be required to manage these data
appropriately. This module will represent relatively the information
needed to be collected from jira and will contain just the necessary
fields required for the logic of the subject area. In figure 2.6, the
concept of classes required to manage the workload time tracking
data is made to show how such information will be sorted and
managed in the system.
27

Figure 2.6 - class diagram for Jira time log module

When the necessary information is being downloaded from the jira


api, the classes shown in fig 2.6 will be used to save and process
according to the system requirement. The following outlines and explains
the required class and their relations in the system to be developed.
Jira project class will basically be responsible for managing the
project data being collected from jira. The only required fields that will be
fetched from the api will be the jira project’s id and the corresponding
project name. The jira project class will be directly associated to the other
three classes - issue, worklog and user class.
Jira issue class will be responsible for handling data of individual
project stories and tasks. Jira issues will be associated with the jira
28

worklog class and the jira project class. This class will be a key feature to
relating the time tracked to the relevant projects.
Fields that will be included in the jira issue class are:
1. Jira id - this field will hold the corresponding jira id of the issue
2. Label - a text field that will save the title or heading of the particular
issue
3. Key - jira issues are given unique keys prefixed with the related
project’s abbreviation followed by numbers which is useful to easily
differentiate and refer the issues.
4. Summary - a text field which is primarily used to store description of
issues when needed
Jira worklog class is very crucial for the functionality of the system.
The jira worklog class will be the class that manages the actual time that’s
been logged on every issue. The jira worklog class is also associated with
the other three classes in the module directly. The worklog class will record
key information needed for some of the system processes and this data will
be stored using the following class fields:
1. Jira id - jira id field will hold the actual id of the jira worklog collected
from the api
2. Date - this date field will keep record of the exact date time time is
being logged for
3. Time spent - numeric field that will keep record of the actual amount
of time that is logged
4. Comment - a text field to keep record of any comment or notes that
will be written when logging time.
Jira user class is also another crucial class in this module because it
will be very useful to relate the above mentioned class to the actual user
class defined for developing the application. In order to relate the jira
records collected above to the actual user class there will be a need for an
extra field in the original user class defined for the system. This will be the
‘jira_account_id’ field as shown in Fig 2.7. With the presence of this field
the main user class of the system can fetch the time tracked and issue data
by finding the corresponding user record of the jira module and through that
be able to query the relative time tracking records by association.
Fields that will be included in the jira user class are:
29

1. Account id - this field will keep the account id of the jira user , in this
case the employee that will log and track their time in jira.
2. Email - a text field that will store the email address of the
corresponding jira account.

Figure 2.7 - updated user class table for HR management system

In conclusion to this segment, an external program was


introduced to aid in time tracking to support the implementation of
features like overtime functionality within the system of development.
New classes are required to manage the information that will be
fetched from the api of the external program and with an extra field
added to the main user class, there’s a possibility to relate the time
tracking module to the appropriate classes of the application.

2.4 System behavioural and transitional states of system for


information management for IT company
When planning the concept and structure of the HR administration
system, it is also important to take into account the behavioural features of
the system during interaction by users. In regards to the scope of the HR
management system, the flow of behaviour and transition between states
will be in relation to the three main user cases defined in the above
sections. We will take into account the behavioural pattern of the system in
account of the employee, manager and HR manager.
30

The first state of transitions to take into account will be the employee
user case. As shown in Figure 2.8 the first state after initial for the
employee will be the login page, the login page will have a self transition if
verification is not successful. When verification is successful the employee
can transition into the summary page which is purely informational about
the employee's saved records. The summary page forks into four states -
vacations, calendar check, overtime view and career history. For the
employee, these states are all also informational corresponding to their
relevant classes except the vacation state which can transition into the
vacation request state on a button click to allow a vacation request to be
made. This state has a reverse transition when a cancel event is invoked.
Once more the vacation, calendar, overtime and career history states fork
into a transition to the login state with logout action. Or to the final state if
the system is exited.
The behaviour of the system to employee users is quite
straightforward. Login will be required, after a successful login the
employee should land on a summary page where basic and calculated
work info will be displayed. On that page the employee will have available
buttons to navigate between the load calendar, overtime list page, career
history view and vacation view where an employee on a button click can
navigate to request for a vacation. From these views the employee can
also decide to logout which will be directed to the login page and to exit the
system in all.
31

Figure 2.8 - state diagram for employee flow

The behaviour of transition for a manager user case is more


condensed compared to the employee user case above as shown in Figure
2.9. The login transition behaviour for the manager is similar to the login
transition of the employee. The state to be transitioned from the login state
for the manager is the employees list view. In this state the manager is able
to filter the provided list. The employees view state forks into four other
states - calendar check, project view, overtime view and vacation view of
which all these states can transition back to the login state by logging out.
The vacation view page however is able to transition into a request
vacation state and has a reverse transition action. Also in this state
vacations can be approved or rejected.
Project view state also has a create action which will transition into the
create project state where the create project state also has a method to
include employees on project. The overtime state of the manager also has
methods to approve and dismiss vacations.

Figure 2.9 - state diagram for manager flow


32

The flow of behaviour for the manager user case is quite different to
that of the employee. The manager will also be required to login after the
initial state. The next state for the manager will be the employee view list.
On this view the manager can filter to narrow down the scope of the
employee list on the view. From this view the manager can navigate to the
check calendar view, to the project list view where there will be a possibility
to create a project and allocate employees to the project. Besides, the
manager can also navigate to the overtime view where he can approve or
request, similarly the vacation view which also has the possibility to open a
create vacation request view. Again there is a logout action to the login
page and lastly exiting the system to end the state.
Below in Figure 2.10 shows the state diagram for an HR manager user
case. The state flow is quite similar to that of the manager but there are
significant additions of states and methods present in this state diagram.
Just like the other user cases, login state and transitioning remains the
same. The login state transitions into the employee view after successful
verification. Here we also have a filter method in the employees view state.
On a button click we have a fork transition from the employees view into
the edit and the add new states. Also there’s a reverse transition on this
fork with a cancel action. The employee view also forks into multiple states
with return action reverse transition which will be described as follows:
1. Candidate state - this states can transition into add new and edit
states with a reverse transition of a cancel action
2. Career history - this state have a method to delete history
3. Calendar view state
4. Project page - can transition into create project where employees will
be added
5. Overtime view - where methods delete, approve and reject requests
can be invoked.
6. Vacation view - will have methods similar to overtime view state
All these states can transition to the login state when logout action is
invoked and will also transition to the final state if the system is exitted.
33

Figure 2.10 - state diagram for HR manager flow

As seen in Figure 2.10, the state diagram for HR manager has the
most states and transitions. This supports the subject topic of the system of
building an information system for the administration and HR purposes of
an IT firm. After HR have logged into the system they are landed on
employees view page as well with access to the filters on the page and
able to add and edit employee data. On button clicks, there’re abilities to
navigate to candidate view to also add and edit data, navigate to the career
history view and be able to delete a history record, check load calendar as
well, navigate to the project view to be able to create new project and
assign employees, apple to navigate to overtime view to approve, dismiss
34

or even delete an overtime record, similarly to that of vacation view with


additional state of requesting a vacation. The following states and
transitions are similar to that of the manager user case as shown in Figure
2.9.

2.5 System architectural design of system for information


management of IT company
In order to get the full concept of and under the hood of the system needed
to be developed, an architectural design is required to define the flow of
information through the system. For such design you can see in figure 2.11.

The architectural structure of the system is actually a simple one. In


Figure 2.11 is shown the key components that will make up the structure of
the system for HR administration. The client side of the structure will
communicate with the server side to retrieve information which will be then
displayed to the user to interact with. The server on receiving a request
from the client side will process the request by validating and generating a
response based on the business logic associated with the server side. The
business logic comprising sets of conditions and rules engineered to meet
35

the business requirement of the subject area will work in hand with the
database to communicate information needed for generating response for
requests originally made by the client side.

Conclusion to section two


Within the scope of this section the subject area was well revised to
draw up the necessary designs and requirements needed to develop the
target system. A clear understanding was made about the focus users of
the system to be built and a corresponding use case diagram was made to
portray the expected interactions between the user cases and the system.
Conceptual class diagram was designed to highlight the basic data
requirement and management strategy that will be needed for
development.
An external program was introduced to be used in support of the
overall requirement of the system - proper additions and amendments were
made to class diagrams to suit the use of the external program. In order to
draft the behaviour of the system in relation to the user cases, state
diagrams were made for each user case to give a clear understanding of
what is required of the system by each user. Finally, the architecture of the
system was constructed to show how requests and responses will be
handled within the system.
36

3 DEVELOPMENT AND TESTING OF SYSTEM FOR


INFORMATION MANAGEMENT OF IT COMPANY
3.1 Programming language and technologies that will be involved in
developing the system.
In order for the job to be done, the language to be used in programming and the
technology stack required for the development of the system have to be outlined. For
that to be even determined, the type of application has to be decided.
Making a system for information administrating of an IT company, a web based
application was the choice of application type. The system will support both desktop and
mobile clients. Users are expected to access the application through the internet on any
mobile device or better yet by a desktop or laptop.
To develop a web application the two main important components of web
developing were taken into account to make choices of what language and technologies
to use.
In order to develop the backend server side, ruby programming language was
the language of choice and the ruby on rails framework will be used to assist the
building and configuring the backend server. Ruby on rails is a well known server side
framework which follows the mvc convention in construction of server. It has a wide
support base, easy access documentations and great collections of libraries which
makes transitioning in development simple and quick
In addition to the ruby on rails framework, the database of choice was mongodb -
mongodb is a document oriented database program. A NoSQL database which is quite
easy on the database classes and associations it is simple to use, easy to deploy and
operate.

You might also like