Program For Managing Internal Affairs of A Project Based Organisation-Roland
Program For Managing Internal Affairs of A Project Based Organisation-Roland
Program For Managing Internal Affairs of A Project Based Organisation-Roland
___________________
(initials and surname)
___________________
(signature)
<<___>>__________2021
DEGREE: BACHELOR
INFORMATION SYSTEM FOR ADMINISTRATION OF IT COMPANY
2
CONTENT
Annotation………………………………………………………………………...4
ANNOTATION
1.2.2 BambooHR
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
The program will aid the HR manage and keep record of the personnel and
professional activities within the company such as:
12
The general staff of the company will also be able to access functions
related to:
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
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.
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.
Figure 2.2 - General basic features and user rights to implement in the
application
18
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
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
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.
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’.
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.
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.
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’
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.
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.
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
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.
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
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
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
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.