You are on page 1of 118

INSTITUTE OF PUBLIC ADMINISTRATION AND MANAGEMENT

UNIVERSITY OF SIERRA LEONE

THE BOARD OF EXAMINERS


CERTIFY

That this Dissertation is the original work of the candidates, and that it is accepted in partial

fulfilment of the requirements for the award of the degree of Bachelor of Science in Information

Systems.

…………………… ……………….. ………………


Name Signature Date
SUPERVISOR(S)
…………………… ……………….. ………………
Name Signature Date

…………………… ……………….. ………………


HEAD OF DEPARTMENT
Name Signature Date

…………………… ……………….. ………………


HEAD OF RESEARCH
Name Signature Date

…………………… ……………….. ………………


EXTERNAL EXAMINER
Name Signature Date

i
ABSTRACT

Sierra Jobs Online Job Portal is a website-oriented human resource management system. The main

aim of the website is to provide recruitment services. Online Job Portal provides jobs to fulfill

specific skills and job profiles that are currently in demand in the local and international markets.

An Agile methodology life cycle has been used to design and develop the proposed system. The

open-source programming framework is used to develop the functional requirements for the

proposed system. The features have been designed to be effective.

With high demand in the recruitment process, the efficient outcome will fulfill the requirements

of job hunters. The online job portal system is created using the PHP Framework platform, with

Apache web server as the server environment, and MySQL as the database management system.

The System has many online recruitment functions and other regular functions, such as User

registration, Management of Job posts, Job Search, Adding Skills, viewing and applying for jobs,

Find Employer information, resume management, Scheduling interviews, Skill Search, and more.

The high-end skill testing functions for the selected employee facilitate an authentic candidate

profile sorting process.

ii
DEDICATION
This dissertation is firstly dedicated to Allah with whom all things are possible. His blessings,

mercy, and guidance have been sufficient in our lives.

Our work is also dedicated to our amazing and supportive families who have endlessly offered all

the needed support during this our academic journey, we are truly humble by your unquestionable

affection, encouragement, and prayers.

To our friends, in and out of the classroom, your contributions to this journey are hard to go

unnoticed, you helped us grow and it has been a huge pleasure having you in every chapter of this

story.

To our spouses, we thank you for being the strength behind this journey, you showed us the needed

love and most importantly your care, support and understanding were unimaginable, we are

grateful.

iii
ACKNOWLEDGEMENTS

We want to acknowledge Allah the most gracious and most merciful, for the strength and for

equipping us with the ability to learn, understand and accomplish the goal of writing this our

dissertation and developing our project.

We want to express our gratitude to our supervisor Mr. Christian Thomas for his support, teaching,

advice and guidance. It has been an honor to have been under your supervision.

We will also like to express our deepest thanks and appreciation to our Dean of faculty for

Information Systems and Technology, Dr. Mohamed A. Sheriff, the heads of departments, and

every lecturer that have contributed to our journey, you filled our curiosity with impactful

knowledge and that has been a positive influence.

We will also like to express our deepest thanks and appreciation to Mr. Jonathan Thomas and the

staff of Complete Solutions LTD. We want to thank you from the depth of our hearts for not only

letting us use your facilities during this project but also for the guidance and mentorship that

relentlessly offered to us.

We also thank all those who played a great role in our academic accomplishments, we

acknowledge and appreciate you all.

iv
CHAPTER ONE

JOB PORTAL WEB APPLICATION

1. INTRODUCTION

1.1 BACKGROUND TO THE PROJECT

A Job Portal is a modern term for a job board or platform that can be accessed over the internet. It

helps employers to find their candidates and the job seekers to find jobs that are suitable for them.

These online job portals offer usually a wide range of functionalities that brings so much ease in

both job application and recruiting processes as compared to the traditional way of doing the same

activity.

In recent years majority if not all institutions use this technology for their job advertisement and

recruiting. Government agencies, nonprofit organizations, universities, and private businesses

among many other sectors have embraced online job portals to enable the job seekers access

organizations vacancy adverts.

Normally it is time and financially consuming for employers to get the right candidates for the

jobs, and also requires resources from the job seekers to access not just available vacancies but

also valid information on institutions, this can be a challenge during interviews simply because the

old-fashioned way of advertising jobs and the entire recruiting process provides little or no form

of communication and interaction between job seekers and job providers prior to first meeting.

In this project we will develop an online application that will be available to both employers and

job seekers with the aim to provide a platform that not only advertise jobs but also provides all the

required interaction and communication between parties. When companies want to advertise for

jobs or recruit in Sierra Leone, they mostly rely on announcing over local radios or newspaper

publications which we can agree to be less effective in this era. Through this online Job Portal,

1
companies in Sierra Leone will not only get to advertise jobs but will get the chance to make

profiles of their companies available and also have access to a large rich database of jobseekers

who will be interested in working all across the country, jobseekers cannot only have access to

posted adverts on vacancies but understanding of potential employers profile and cultures, create

resumes and be part of a rich database of jobseekers that can be directly recruited by suitors. Main

features of this system will include job advert, view jobs, search jobs by district, create company

profile, create resume, view employee, and apply for job.

Sierra Jobs, the name of our portal is a web application, which serves jobseekers to find available

job vacancies and employers to identify eligible job seekers with the prospect of selecting the most

qualified candidates in Sierra Leone. The only way to select best-qualified candidate is to have a

pool of eligible applicants, which is possible by drawing the interest of individuals in the market.

Sierra Jobs best serve this purpose. E-recruitment has become the standard means for employers

and job seekers to meet their respective objectives. The traditional methods for recruitment include

Job fairs, University career employment services, Employee referrals, advertising in the

newspapers, televisions etc. With the advancement in technology and growth of internet usage, the

e-recruitment has revolutionized the way organizations in the advance world hire and candidates

search for jobs. With the Sierra Jobs online job portal, the recruitment process is hastened up at

every stage from job postings, to receiving applications from candidates, interviewing process.

The cost of searching/posting jobs will be much less compared to the traditional way of advertising.

Job search portal stands as an effective means for Employers to outline the job vacancies,

responsibilities and qualifications to attract jobseekers. Using the portal jobseekers can extensively

search for jobs in companies, organizations and regions they may otherwise have not learnt.

2
1.2 STATEMENT OF THE PROBLEM

Sierra Leone is a country that is slowly joining the evolution of technology and is still few steps

back in embracing the modern way of doing things. Most notable, job seekers still struggle to

have access to advertise vacancies which are mostly published in various local newspapers, also it

is a challenge for recruiters to access a platform that maintains a reach job seekers database with

details on these potential employees.

1.3 AIMS AND OBJECTIVES OF THE PROJECT

We intend to develop a system that will aim at making job seeking convenient on both sides. The

Portal will be the solution where recruiter and the job seeker meet aiming at fulfilling their

individual requirement. Our system will not only be a platform for job advertisement, but will aid

job seekers in developing CVs. Companies can also make their profiles available.

The following are the main aims and objective of this project in details;

• To provide Employers in Sierra Leone an online platform that they can advertise vacancies

• To provide jobseekers one stop place to access advertisement on available jobs across the

country.

• To reduce the amount of resources encore by recruiters during recruiting process by

providing a rich online database of potential employees.

• To aid institutions with online presence by having a platform to publish their profiles.

• To provide features that help jobseekers build standard robust resumes that make them

identifiable for suitable jobs by recruiters.

• To help jobseekers apply for jobs with the click of a button.

3
1.4 JUSTIFICATION

The online job portal creates a platform to the jobseekers for them to find the fitting job

opportunities that suites their qualifications all across the country. It will also help companies in

improving its standards through the use of computerized systems rather than manual or traditional

ways of recruiting. The main aim of developing this system is to make job searching easier and

more efficient to the jobseekers and the employers. It is a primary source of talent search for the

recruiters. The job seekers are also able know the vacancies available at single point. The online

job portal has a connecter between the employers and the jobseekers. The job portals have become

very good communication channels because they reach a wide audience worldwide. They are used

in marketing various companies which might not be known if not through the use of this job portal.

The job portals help in saving time and numerous resources.

The project is further justified below;

• Our job portal will provide employers modern way of notifying the job seeking community

with available jobs.

• This system will help jobseekers find suitable jobs that matches their qualifications and

further more bring ease to the application process.

• Traditional ways of recruiting or advertising for jobs can be resource consuming depending

on which method is used. It requires finance for repeated newspaper ads, radio

announcement slots etc. with our Job portal a drastic cut in both human, time, financial and

other required job recruiting resources is guaranteed

• Institutions in our country mostly lack the online presence, at the end of this project, the

system will provide features that will provide means for institutions to get their profiles

available to the world.

4
• The system will not only provide rich employee database to recruiters, but provide standard

way of building robust resume for jobseekers. With a common format for curriculum vitae,

it becomes easy to search through the desired information.

1.5 SCOPE

The scope of the online job portal includes;

• The job portal web application which is to be developed will provides its members with

jobs information.

• Recruiters can create their company profiles.

• Jobseekers can create their resume (CV).

• Job seekers can search for jobs based on district.

• Recruiters can search through potential employee database.

1.6 TECHNOLOGY TO BE USED

We will be developing using the Laravel PHP framework which can be installed using composer,

MySQL as the database engine and Apache Server (Xampp) to host our web application, we will

be using Visual Studio code and Notepad ++ for writing all required script. We will use HTML,

CSS and JavaScript for our front-end development and MS Project to manage the project.

Brief on the use technology and tools are as follows;

• Laravel: is a free and open-source PHP web framework that is use for the development of

web applications following the model–view–controller (MVC) architectural pattern.

• PHP: Hypertext Preprocessor (PHP) is a technology that allows software developers to create

dynamically generated web pages.

5
• MySQL: which is a part of the Apache suit, it is a database engine, widely used for accessing

querying, updating, and managing data in databases.

• Apache Server (Xampp): is a free and open-source cross-platform web server solution stack

package developed by Apache Friends, consisting mainly of the Apache HTTP Server,

MariaDB database, and interpreters for scripts written in the PHP and Perl programming

languages.

• Visual Studio code: Visual Studio Code, also commonly referred to as VS Code, is a source-

code editor made by Microsoft for Windows, Linux and macOS.

• Notepad ++: Notepad++ is a text and source code editor for use with Microsoft Windows. It

supports tabbed editing, which allows working with multiple open files in a single window.

• HTML: Hypertext Markup Language is used to create and save web documents.

• CSS: Cascading Style Sheets is use to create attractive Layouts.

• JavaScript: client-side programming language, commonly used with web browsers.

• MS Project: Microsoft Project is a project management software product.

1.7 PLAN OF WORK

As a team we will maintain a WhatsApp group which we will use for communication and also to

share resource.

After approval of our proposal, we studied each development phase together to enhance the

contribution and experience gain for each team member.

We started with our requirement formulating phase in which we brought out all requirement to

match the scope of our project, furthermore, we used the process approach in segmenting our

6
project, this helped us in deriving robust use cases for our analysis and correct matrix to help form

accurate user story.

Development, documentation and writeup for the dissertation were done simultaneously. We held

daily discussion on the WhatsApp group and met at least twice a week as a team.

Even though our development was done in an iterative approach, we plan to have detail of all

activities involve with the help of a work break down (WBD) structure which in turn can help us

plot a network diagram which can guide us with our timeframe.

Table 1.1 Activity Breakdown

Activity Start Date Duration (Days)

Proposal 19th July 2022 5

Chapter 1 19th July 2022 8

Chapter 2 and Requirement and Analysis 27th July 2022 14

Chapter 3 and Design 10th August 2022 10

Chapter 4 and Coding and Testing 20th August 2022 10

Chapter 5 and Review of sprint 31st August 2022 8

Final Review 10th September 2022 5

Source: Developed by Researcher, July 2022

7
FIGURE 1.1 Gantt Chart

Source: Developed by Researcher, July 2022

8
1.8 DISSERTATION OVERVIEW

Chapter One (1) Introduction: Describe general introduction and gives clear background to the

project, it covers the aims and objective and justification for the project, tools to be used and

work plan for the entire project.

Chapter Two (2) Problem definition and Scope: Overview of the problem that warranted the

development of the project, it describes the problem in details and brings out all the challenges

and obstacles that the current systems possess. Furthermore, this chapter gives insight to the

scope of the entire project.

Chapter Three (3) Literature Review and Methodology: This chapter is aimed at reviewing

the existing literature on the trend of online job or recruitment systems, the demand for online

job portals, related projects on online job portals, similarities and differences between the related

system. This system reviews the different methodologies of software development and

justifications to our choice of methodology for our project.

Chapter Four (4) System Analysis and Design: this chapter Identifies detail, requirement

gathering and fact-finding techniques are discussed. Analyzing current system and requirements

analysis for the proposed system is included. System's functional and non-functional

requirements are also discussed. Specific hardware requirements and software requirements are

analyzed and listed. Design approaches discussed and justification for our design method also

presented.

Chapter Five (5) Results and Discussion: This Chapter present pictorial results in terms of the

key features of the system that we have implemented, result from system test perform and the

different parameters used

9
Chapter Six (6) Summary, Conclusion and Recommendation: This chapter summarizes the

dissertation with a critical evaluation of the system, lessons learned and suggestions for any future

enhancements.

10
CHAPTER TWO

PROBLEM DEFINITION AND SCOPE

2.1 INTRODUCTION

This chapter describes the contemporary drawbacks and challenges in the whole recruiting and job

seeking process in the country. It assesses a range of issues or obstacles surrounding the traditional

or non-technology methods of recruiting or job seeking, and narrows the scope to job seeking

graduates and skill youths and their potential employers. This chapter attempts to describe the

challenges faced by firms in advertising jobs, the number of resources varying from time, finance

among others that are invested by all stakeholders in recruiting or applying for a job.

2.2 BACKGROUND AND CONTEXT OF THE PROBLEM

The ideal candidate is not peering in newspapers or locked in to radio listening to advert or public

notices; they are squinting on their phone screen exploring online job listings. That’s the reality of

today’s generations otherwise refer to as millennials. And that makes up over 50% of the available

workforce. This makes about slightly above 70% of employers find it difficult to search for skilled

candidates, and a huge percentage of Job seekers miss out on advertised vacancies because of the

traditional hiring methods.

These traditional methods which involves newspaper advertisement can be effective to certain set

of job seekers, particular within local radius, local employment office postings and temp agencies.

which do exist but way less popular that are used for recruitment agencies that shortlist potential

candidates for your company. Job fairs.

11
Majority of companies in Sierra Leone are old fashioned and are inclined to go with these

traditional methods or uses, the tried and tested recruiting strategies which technology have proven

to be outdated now.

Therefore, this study provides an analysis of the major challenges faced by both employers and

employees, others considered as job seekers in the whole job recruiting and job seeking cycle in

the country.

2.2.1 DESCRIPTION OF THE PROBLEM

We live in a country in which the embrace of technology and the comfort it brings is on the low

side as compare to countries in the first world. Employers still struggles to access a robust rich

database of potential recruits, so they usually just use means like newspaper job ads or radio and

television slots to communicate about available vacancies in their institutions. This is very

expensive to do with vary much little effect on wider radius and audience or even attract interest

from the job seeking community simply because these methods present far fewer information on

both the job description and the employer. This is still considered to be cheaper as compared to

other alternatives like organizing job fairs or working with temp recruiting agencies.

Job seekers barely get access to single newspaper in their localities not to mention to get the various

editions which are printed on daily bases, so they mostly miss out job advertisement which are

usually printed or limited publications. Also, newspapers printed in Bo or radio advertisement

broadcast in Kono is hardly received in Kambia or Koinadugu.

12
The following constraints are the limitations to the current method of recruiting and job seeking

for courier service

• Limited access to diverse talents: If employers print a newspaper job ad, the prospects

are limited not just by the geographical boundary but also by a factor of chance. The ideal candidate

might just breeze through the job posting without even noticing.

Unlike a digital system, there are no filters or algorithms matching ideal candidates to job listings.

You can only do so much targeting in a traditional hiring approach and among those few people—

who are in the locality, who notice the job posting, and decide to apply, they are left with not so

much options.

• Restricted flexibility of job postings: You will face quite a few hurdles in merely posting

the job ad. In most print ads, there are not adequate space for the entire job description and

requirements. This is equivalent to selling yourself short.

Another problem is the frequency with which job postings can be placed. For enhanced visibility

in the digital medium, recruiters can delete an old job posting and post it afresh on job sites.

However, that is not possible in the traditional approach.

After you attend a job fair, post a bulletin board, or print a newspaper ad, you can only wait. You

cannot do it all over again in a short interval of time.

• Excessive cost and Time Consuming: Traditional recruitment is an expensive and time

demanding process considering all that is involved in the entire recruiting cycle irrespective of

which traditional method is used. Consider the cost for advertisements, recruitment agency

charges, hiring professionals, duration of the process, the time involve in getting the word out on

an available vacancy, waiting around for weeks for physical applications to come in, sorting

13
through each job application manually, arranging tests and interviews, calling in each shortlisted

candidate and finally selecting someone after months.

• Missing out on opportunities: Because of the limitations of these traditional methods in

both been consistently available to the job seeking community and radius of geographical

coverage, job seekers are missing out on their ideal jobs, they also do not provide means for

employees to scan through directories of available jobs, job seekers cannot also have means to

create and add their resumes to a database that can be available to recruiters.

2.3 DEFINITION OF SCOPE

The scope of this project is to develop a system that will provide the perfect environment for

recruitment and job application. The system will be used by both recruiters and job seekers.

Our scope is defined by the identified actors or stakeholders to the system, definition of the scope

based on Employer/Recruiter and Employees/Job seekers are as follows

Employer/Recruiter: They can create a profile of their institution and make relevant information

about their availability online. In addition to the online presence, there will be unlimited chances

to publish as many as available jobs in their institutions and these job adverts can remain available

to the job seeking community for as long as they are required.

Recruiters will have access to a rich database that contains standard formatted resumes of all job

seekers registered on the system.

Employee/Job Seekers: The system will make available all job adverts in the country irrespective

of your geographical location.

Job seekers can have a guided way of creating standard resume which can be placed to a database

and made available to recruiters.

14
Job seekers can scan through directories of available jobs within the country and they can search

with robust filters that can sort jobs based on district and discipline.

15
CHAPTER THREE

LITERATURE REVIEW AND METHODOLOGY

3.1 INTRODUCTION

This chapter is aimed at reviewing the existing literature on the trend of online job or recruitment

systems, the demand for online job portals, related projects on online job portals, similarities and

differences between the related system. This system reviews the different methodologies of

software development.

Learning is important to settle on educated choices, particularly, in a basic circumstance. Learning

helps provide important information to executives in any organization which is pivotal and gives

aggressive edge in this current globalize conditions. In this paper we present the plan of different

on-line recruitment framework, that enables businesses to post their job advertisements, which job

searcher can allude to, when searching for jobs. This job portal can catch job prerequisites

dependent on industry needs.

3.2 LITRATURE REVIEW

Joblessness is one of the genuine social issues looked by both developing and developed nations.

For instance, in Europe the rate of joblessness has been expanding quickly since the 1970's. Dorn

and Naz referenced that one reason for this issue is the unjustifiable appropriation or absence of

data on job openings so individuals cannot present the new job opportunities. It implies that there

are a few jobs accessible, yet jobseekers do not approach that data. An effective pursuit of the web

may help jobseekers in their job chase. Some web-based interfaces give productive method to look

for job opportunities for jobseekers.

16
Today, the web has changed numerous parts of our life, for example, the manner in which we

search for jobs. On the off chance that an individual needs to get another line of work, he/she can

present a resume utilizing word handling programming like Microsoft Office Word, open an

internet browser to send the resume and get an email. Online recruitment has turned into the

standard strategy for businesses and jobseekers to meet their particular targets. The businesses

transfer the job contributions in to the job portals. The majority of substantial organizations as well

as the little ones has acknowledged online recruitment. The organizations send data or jobs opening

for posting on the portals and speak with the candidates through the Internet and Email.

Gangle characterized the idea of online recruitment or e-recruitment as the utilization of the

Internet to scan for jobs, which have been publicized electronically. From this narrative we

understand that businesses publicize job advertisement from their respective institutions, scan

through resumes of potential candidates, and can contact suitable jobseekers through the web

platform. Today the internet has turned out to be one of the key strategies for accessing data on

suitable candidates to fill in job openings for recruiters. Substantial foundations, similar to colleges

incorporate data on vocation prospects in their sites, which are likewise connected to recruitment

locales.

3.2.1 JOB PROCUREMENT

Both old and new ways of looking for jobs more often than not includes distinctive approaches to

search for job openings, for example, through close to home contacts, direct phone calls to

businesses, job organization office, filtering on the web job postings, and so on. Prior to the

internet, these approaches turned out to be generally utilized strategies for job search; jobseekers

invested a heap of energy utilizing different strategies to search for job openings. Today,

jobseekers utilize online techniques, which are extremely advantageous and spare a great deal of

17
time. Galanaki records the accompanying strategies to be the conventional (old) routes for

recruitment;

● Employment recruitment offices

● Job fairs

● Advertising in the broad communications, for example, papers

● Advertisement in TV and radio

● Management Consultants

● Existing worker contacts

● Schools, universities or colleges understudies administrations office

● Workers or expert referrals

These old jobs searching techniques are excessively moderate, distressing, testing and furthermore

need quality. What's more, the candidates need to consider the expense and the measure of time to

get the data they need, and the different arrangements they need to make. Securing all accessible

position opening is a principal venture at in the job-chasing process.

The Internet is presently an incredible asset that jobseekers can utilize. Today, numerous locales

publicize job positions to be filled by individuals with specific skills in different fields. The Internet

assumes an essential job in the region of human asset arranging and advancement. Most arranging

and advancement organizations are currently utilizing personal computer innovation and the

internet for staff recruitment. It ought to be noticed that despite the fact that the Internet has

encouraged the procedure of job chasing, it has not supplanted the conventional techniques totally.

3.2.2 SIGNIFICANCE OF JOB PORTALS

In the period of innovation, the Internet has turned into the principal wellspring of data for

jobseekers. Extensive partnerships, foundations, and colleges incorporate data on vocation

18
prospects on their sites. As per a review, slightly above 70% of the workforce utilizes sites or

portals on the Internet to look for jobs in France. These sites or portals are available for internet

searchers to get to data on job openings.

Sulaiman and Burke found that most businesses are quick to utilize online recruitment strategies

for the recruitment of staff. He referenced that online recruitment strategies can recognize the best

candidates. That is the motivation behind why progressively created nations, for example,

Malaysia have begun to utilize online job portal as one of the vital methods to enlist individuals to

fill job opening. An examination done in 2006, found that 21% of web clients in the EU utilized

the web to look for jobs or to send job applications. In 2007, this had expanded to 67% for jobless

individuals.

Most organizations distribute their job opening on their site, or utilize online jobsites. These

techniques result in incredible sparing in expenses. Mochol and Nixon expressed that the

utilization of semantic web innovation gives advertise straightforwardness, higher speed of

acquisition yet decreased exchange cost. Today, the Internet is utilized for an expansive number

of business exchanges. Individuals observe the Internet to be a compelling specialized apparatus.

In a report in 2005, it was discovered that 90% of jobseekers in Germany utilize the web to search

for jobs. A purpose behind this high rate of Internet is that candidates are youthful and very

qualified and utilize the web a great deal, and numerous organizations distributed their job

openings on the web and through their portal.

Job portals are the beginning stage of jobseekers while scanning for jobs. In this way, some job

portals charge businesses high expenses to distribute data on job opportunities. Regardless of this,

numerous businesses still keep on publicizing or distributing data on job openings hands on portal,

19
however, constrained to minimize expenses. Numerous businesses still trust that a jobseeker will

visit job portals while hunting down job opening.

A great job portal can likewise bolster learning sharing among the individuals. The quantity of

online job portals keeps on expanding. It is trusted that seventy-five percent of individuals who

are looking for jobs, utilize the web and on the web portals. Gangle expressed that online

recruitment has the accompanying points of interest: bosses can distinguish an extensive number

of qualified job searchers and get their data effectively done. It implies that organizations or

institutions can broaden the inquiry area, subsequently, they have better prospect of choosing the

most qualified applicants. Web gives managers an approach to draw in a higher number of

applicants, particularly, the individuals who satisfy the job necessities. With online recruitment,

individuals approach the job data from anywhere on the planet, while with the paper, data is spread

at nearby dimension. One key part of job portal is the expense. Organizations spend less to

distribute or publicize job opportunities on the portals or sites, when contrasted with the utilization

of other media, for example, paper or job fairs. Besides, online recruitment is quick, and spares

time. Once the managers transfer the job opening on the portal, the jobseekers can see it and send

in their application.

Along these lines, cost and efficiency are two noteworthy points of interest of job portals.

Ganalaki, referred to in Rosita and Nadianatra (2007), expressed that the Internet is an instrument

without fringes, and utilizing it have been a great strategy in bringing people together around the

world.

3.2.3 HIGHLIGHTS OF JOB PORTALS

One of the approaches to enhance work portability is to give online job offer administrations.

Online job portals can help jobseekers as they contain all required data about accessible opening

20
in a solitary point. Such portals upgrade effectiveness in job recruitment as candidates can

coordinate their capabilities and skills to the prerequisites of bosses and potential employers.

For the most part, looking for jobs on the web includes a procedure of data gathering in light of

the fact that the jobseeker accumulates data contained in the job portals, amid the inquiry. A great

job portal imparts data and encounters to its individuals/clients. It requires less time and better

choices can be made. Job openings necessities can be coordinated to a candidate's capabilities and

skills. Along these lines, job portals return the exact matches as well as return the most comparable

match. The individuals from the European Commission (EC) expressed that online job portals

ought to have very comparable attributes. The attributes included are:

● An online accessible database of positions for job searcher; offices to send CVs to the site;

● Email alarms of jobs which coordinate the client’s profile;

● Additional guidance, for instance, about working in remote nations or profession direction;

● The capacity to oversee job applications;

● Businesses must be able to distribute and oversee job positions, look through the CV

database;

● Have online contact with potential jobseekers.

3.3 RELATED PROJECT

After thorough research on locally based online Job Portals, a study of current systems of Career.sl

and Careerical eConsult SL was conducted for comparison and inspiration. The study was

conducted on these systems and a brief similarity and differences of how these are as compared to

our system and how the systems operate on all levels are also explained below.

21
3.3.1 DESCRIPTION OF CAREERS.SL SYSTEM

Careers.sl is a job-search engine which was developed by IDT Labs a technology leading firm in

Sierra Leone. This online job platform was developed with the aim of making the labor markets

more inclusive, innovative, flexible, and transparent. This web application explores and leverages

innovative low-cost ways in bringing job-seekers and recruiters together.

The system is accessible by the internet and utilizes Web Access Points (WAP) and Short

Messaging System (SMS) which lower the search cost and barriers to information for the job

seekers and employers. Their system allows employers create and pay subscription for their

accounts, with these subscribed accounts, they can post vacancies which are available to the

general job surfers and interested individuals.

Job seekers can access advertised jobs on the platform but there is a limit to the quantity of

advertisements that is visible and accessible by unregistered jobseekers. To gain access to

unlimited search portfolio of available jobs, one needs to register to the website and pay

subscription.

3.3.2 DESCRIPTION OF CAREERICAL ECONSULT SL SYSTEM

Careerical eConsult SL is Africa’s leading online career consultancy platform. It is uniquely

designed to help students, graduates and professionals achieve job satisfaction and/or

business/entrepreneurial career fulfillment.

Their system helps organize career building trainings for all levels of the job market. The system

serves as medium between stake holders of the job community, it provides guides on how to

develop professional resumes and also prepares individuals for job interviews.

22
They mostly allow the publications of vacancies on the website and their numerous social media

channels on popular platforms like Telegram and WhatsApp.

They are players in the job community but are limited to only trainings, resume guides and job

advertisement.

3.3.3 SIMILARITIES OF OUR SYSTEMS

The following are similarities between our system and the mentioned systems above;

• All systems are web base

• Jobs can be advertised on all platforms

• Both systems aids in the development of professional curriculum vitae (CV)

• both systems allow for job search

• Caarers.sl and our system provides jobseekers database

3.3.4 DIFFERENCES BETWEEN OUR SYSTEMS

Even though there are numerous similarities between our systems, there are also several

differences between these systems. Some of the differences are:

• You don’t need to be a subscriber to publish vacancy on the web application

• Our system allows a single standard way of presenting resume whiles the other systems

allow import of CVs which might be in different formats, hence inconsistency.

• Our system does not limit the amount of job adverts that can be visible to all users.

• To use our system is free of charge while the other system requires subscription fees for

both job seekers and recruiters.

23
3.4 SYSTEM DEVELOPMENT METHODOLOGY

Just like any other engineering discipline, the development of software is guided by a standard

engineering practice referred to software development life cycle (SDLC). As the old adage says

“plan your work and work your plan”. This philosophy has time and again proven to be extremely

efficient, The SDLC with it different models have brought a certain amount of useful structure to

software engineering work and have provided the much needed and reasonably effective road map

for software developers.

The software development life cycle process is broken down into steps (generally 6-8 steps):

Planning, Requirements, Design, Development, Test, Deploy and Maintain.

However, the steps involved can be combined or omitted based on the project scope. Having said

that, these are the core components recommended for all software development projects.

The software development life cycle helps improve and measures the entire software development

process by enabling step by step analysis of the process. Moreover, SDLC also helps developers

reduce costs, meet customer needs, and facilitates quick software delivery to help projects run

smoothly.

Throughout the years, various software development methodologies were introduced to capitalize

on the available technologies and resources. Software development methodology provides a

platform for developers to work together more efficiently as a team. It formalizes communication

and determines how information is shared within the team.

Today, many IT companies agree that employing a software development methodology is crucial

for their team. However, the subject of which method is the best remains in question. That’s

because none exists. Each methodology has its pros and cons.

24
Getting the best out of one depends on the team structure, requirements, and goals. It’s also

possible to use different software development methodologies for different projects.

The major and most popular methodologies are waterfall development method, Agile development

method, rapid application development method and DevOps development method.

Discussion on these major software development methodologies are as follows;

3.4.1 THE WATERFALL DEVELOPMENT METHODOLOGY

The waterfall method, sometimes called the classic life cycle, is the first-ever, simplest, and one

of the best SDLC methodology in the history of software development. The process of

development in this model is linear and all the phases are completed one by one, suggests a

systematic, sequential approach to software development that begins with customer specification

of requirements and progresses through planning, modeling, construction, and deployment,

culminating in ongoing support of the completed software. As the name implies, like a waterfall,

the progress of development flows downwards.

Phases of the Waterfall model:

• Requirements

• Design

• Implementation

• Integration and testing

• Deployment

• Maintenance

25
The Waterfall model does not permit going back to previous stages of development to rectify or

implement changes, each phase must be 100% complete before the next phase can start.

Figure 3.1 Waterfall model

3.4.1.1 PROS OF WATERFALL DEVELOPMENT METHODOLOGY

The linear nature of the waterfall development method makes it easy to understand and manage.

Projects with clear objectives and stable requirements can best use the waterfall method. Less

experienced project managers and project teams, as well as teams whose composition changes

frequently, may benefit the most from using the waterfall development methodology.

More benefits of using this method for development are;

• The waterfall model is easy to explain (for clients and the developers)

• Well defined development stages

• Easy and efficient planning

• One by one phase completion

• Easy to verify errors

• Well documented process

26
3.4.1.2 CONS OF WATERFALL DEVELOPMENT METHODOLOGY

The waterfall development method is often slow and costly due to its rigid structure and tight

controls. These drawbacks can lead waterfall method users to explore other software development

methodologies.

More disadvantages are;

• No working software is produced until late during the life cycle.

• Not suitable for the projects where requirements are at a moderate to high risk of changing.

So, risk and uncertainty are high with this process model.

• It is difficult to measure progress within stages.

• Cannot accommodate changing requirements.

• Adjusting scope during the life cycle can end a project.

3.4.1.3 BEST FOR

• For project with Stable requirements

• Good for software products with a clear vision

• Quick development

3.4.2 RAPID APPLICATION DEVELOPMENT (RAD) METHODOLOGY

Rapid application development (RAD) is a condensed development process that produces a high-

quality system with low investment costs. This RAD process allows developers to quickly adjust

to shifting requirements in a fast-paced and constantly changing market.

27
The RAD (Rapid Application Development) Model is based on the combination of iterative and

prototyping model and has no or minimum planning involved. RAD is again amongst the best

SDLC methodology for business. The required primary data in this model is crated through

workshops, focus groups, and prototypes.

The functional modules in the RAD model essentially build parallelly to the prototype and are then

integrated to come up with the final product quickly. This SDLC analysis designs the software,

build and test phases into a series of short, iterative development cycles.

The rapid application development method contains four phases: requirements planning, user

design, construction, and cutover. The user design and construction phases repeat until the user

confirms that the product meets all requirements.

Figure 3.2 Rapid Application Development

3.4.2.1 PROS OF RAPID APPLICATION DEVELOPMENT (RAD) METHODOLOGY

Rapid application development is most effective for projects with a well-defined business

objective and a clearly defined user group, but which are not computationally complex. RAD is

especially useful for small to medium projects that are time sensitive.

28
More benefits are;

• Accommodates changing requirements

• Easy to measure progress

• Reduce iteration time with powerful RAD tools

• Higher productivity

• Quick development

• Reusable components

• Better chance to get customer feedback

3.4.2.2 CONS OF RAPID APPLICATION DEVELOPMENT (RAD) METHODOLOGY

Rapid application development requires a stable team composition with highly skilled developers

and users who are deeply knowledgeable about the application area. Deep knowledge is essential

in a condensed development timeline that requires approval after each construction phase.

Organizations that don’t meet these requirements are unlikely to benefit from RAD.

More drawbacks are;

• Lack of documentation for progress tracking

• Highly-dependent on a responsive customer.

• Requires a team of highly-skilled and experienced developers.

• Not suitable for projects with budget constraints.

3.4.2.3 BEST FOR:

• Modularized systems

• Design-based projects

29
• Projects with automated code generating functionality

• Projects with changing requirements

3.4.3 DEVOPS DEVELOPMENT METHODOLOGY

DevOps development methodology is a newer method of developing software and in addition it

encompasses of practices that supports an organizational culture. DevOps development methods

centers on organizational change that enhances collaboration between the departments responsible

for different segments of the development life cycle, such as development, quality assurance, and

operations.

DevOps a combination of different phases of continuous software development, integration,

testing, deployment, and monitoring. A competent DevOps lifecycle is necessary to build superior

quality software through the system.

The DevOps approach embraces continuous innovation, agility, and scalability to build, test,

consume, and evolve software products. It promotes a culture of experimentation, feedback, and

constant learning to reinvent products, services, and processes. However, to implement DevOps,

a proper understanding of different phases of the DevOps lifecycle is crucial. To deliver faster

results, developers must be fully aware of all the different phases of the DevOps lifecycle. If they

are not, the entire development process can become complex and time-consuming.

Figure 3.3 DevOps Model

30
3.4.3.1 PROS DEVOPS DEVELOPMENT METHODOLOGY

DevOps is focused on improving time to market, lowering the failure rate of new releases,

shortening the lead time between fixes, and minimizing disruption while maximizing reliability.

To achieve this, DevOps organizations aim to automate continuous deployment to ensure

everything happens smoothly and reliably. Companies that use DevOps methods benefit by

significantly reducing time to market and improving customer satisfaction, product quality, and

employee productivity and efficiency.

More Pros of DevOps;

• Foster a collaborative culture

• Set performance metrics from the start

• Faster, better product delivery

• Faster issue resolution and reduced complexity

• Greater scalability and availability

• More stable operating environments

• Better resource utilization

• Greater automation

• Greater visibility into system outcomes

• Greater innovation

3.4.3.2 CONS DEVOPS DEVELOPMENT METHODOLOGY

Even in light of its benefits, there are a few drawbacks to DevOps:

• Some customers don’t want continuous updates to their systems.

• Some industries have regulations that require extensive testing before a project can move

to the operations phase.


31
• If different departments use different environments, undetected issues can slip into

production.

• Some quality attributes require human interaction, which slows down the delivery pipeline.

3.4.3.3 BEST FOR

• Collaborative development

• Projects that require free flow of communication

3.4.4 AGILE DEVELOPMENT METHODOLOGY

The Agile software development methodology is the structured series of stages that a product goes

through as it moves from beginning to end. It contains six phases: concept, inception, iteration,

release, maintenance, and retirement.

In an agile method of software development, the project is divided into small subparts and is

delivered in iterations. The subtasks are divided into time frames to serve working functionality

with each build. As a result, the final product has all the required features.

Teams use the agile development methodology to minimize risk (such as bugs, cost overruns, and

changing requirements) when adding new functionality. In all agile methods, teams develop the

software in iterations that contain mini-increments of the new functionality. There are many

different forms of the agile development method, including scrum, crystal, extreme programming

(XP), and feature-driven development (FDD).

Figure 3.4 Agile Model

32
3.4.4.1 PROS OF AGILE DEVELOPMENT METHODOLOGY

The primary benefit of agile software development is that it allows software to be released in

iterations. Iterative releases improve efficiency by allowing teams to find and fix defects and align

expectation early on. They also allow users to realize software benefits earlier, with frequent

incremental improvements. More benefits are as follows;

• Quick development

• Quality and measurable results

• Business value can be delivered – demonstrated fast

• Requires minimum resources

• Highly adaptive to changing requirements

3.4.4.2 CONS OF AGILE DEVELOPMENT METHODOLOGY

Agile development methods rely on real-time communication, so new users often lack the

documentation they need to get up to speed. They require a huge time commitment from users and

are labor intensive because developers must fully complete each feature within each iteration for

user approval. More drawbacks are as follows;

• The team can sometimes loose focus due to overwhelming change requests.

• Documentation takes a back seat in Agile, which can be a problem later on in development.

• Agile focuses on discussions and feedback, which can be too time-consuming for the team.

• Due to its non-structured approach, Agile requires experienced developers who can work

independently

33
3.4.4.3 BEST FOR

• The Agile methodology is ideal for projects with fast-changing requirements.

• It works best to implement the additional ideas as you learn more about the market needs

• Suitable for team of developers that are highly-independent and comfortable working in a

fast-paced, non-structured environment.

• Quick functionality implementation – within 3 weeks.

3.5 JUSTIFICATION OF THE METHODOLOGY

The Agile Development model is suitable for this project, because Agile relies on a continuous,

cyclic process that encourages flexibility, experimentation, and adaptability.

Considering we are on an Agile project; the team does not attempt to develop all features at once.

Instead, the team assigns a smaller subset of features that is guided by our scope to each sprint.

That way, the team have more time to perfect those items before integration. Furthermore, agile

development methodology reliance on continuous integration (merging all developers’ working

copies to a shared repository several times a day) gives our team the chance to test issues daily and

address them immediately. Working on a product in small incremental releases ensures that each

sprint results in a fully tested and working product.

Below are more reasons as to why we selected the Agile Methodology for this project;

• Reduced Technical Debt: with this methodology it helps keep technical debt to a minimum.

Any defects, feature changes or other maintenance tasks are added to what is known as a

product backlog. The team reviews the backlog during each sprint planning session to

determine what to address next. Thus, each sprint is a new opportunity to fix defects along

with new feature development.

34
• Adapt to Change Quickly and Easily: Considering our experience with developing this type

of system, a lot of changes can creep in during the process, Agile methodology does not just

only let us adapt to these changes, but encouraged us to embrace the practice.

• Minimize Risk: Using Agile, the team get feedback almost daily and can act on that feedback

immediately. Developing a product in sprints allows teams to quickly determine if we are on

track and allows us to adjust almost immediately. Also, because sprints are customer-focused,

the team can be sure they are producing value at every release.

• User focused Testing: Agile is about more than just adapting to change. It is about delivering

what is most important to the customer. As such, the product owner works closely with the

team to help them gain a clear understanding of what is needed, which fortunately in this case

happens to be around a domain that we are very much familiar with. In Agile software

development, user requirements are represented as “user stories.” These stories define an

action that provides value to the customer. The concept of user stories is a stark contrast to the

rather lengthy list of requirements developed in a traditional development methodology.

35
CHAPTER FOUR

SYSTEM ANALYSIS & DESIGN

4.1 INTRODUCTION

System Analysis and design is a phase or approach in software engineering that developers use to

evaluate particular situations and develop ways to improve them through more optimal methods.

System Analysis is one of the important phases of system development life cycle. This phase

includes requirement gathering and understanding the functional and non-functional requirements

of the proposed system. Similar type of system is analysed. Available design options explained,

and justification for using the Structured System Analysis and Design Methodology and high-level

architectural design diagrams are incorporated in this chapter.

This Identifies detailed requirement gathering and fact-finding techniques are discussed.

Analysing an ongoing system and requirements analysis for the proposed system is included.

Specific hardware and software requirements are analysed and listed. At the design view, the

analysed requirements are converted into graphical form and drawn up Entity Relationship

Diagram (ERD), High-level architecture diagram, Use case diagram, Sequential diagram and class

diagram.

4.2 REQUIREMENT GATHERING

In this phase of our project, we applied skills that have been developed by experienced software

engineers on how to collect the needed data from the right sources and we were able to extract the

needed requirements for our system development. Some of these skills involves communicating

with the client, which in our situation we served as developers and also acted in the capacity of the

client. We asked questions that we will expect a client of such system to ask and had them recorded

as use cases. We are aware of how vital the requirement gathering phase is to the whole

36
development cycle and if not handled carefully can be negatively impactful to the entire success

of the project. So, the following are the techniques we applied in coming up with the requirements

for our system;

• Research on similar project: Similar projects were looked into, we searched websites that

advertise job openings and studied their system processes and procedures, we created profiles

for both Employer and Jobseeker in these platforms which gave us insight and understanding

of what each dashboard offers. We also studied some online job portal systems, with the help

of articles and blogs. The knowledge gathered helped with our analysis which was held on

round table discussions which involves constructive argument and convincing on the

different interpretations and understanding.

• Interviews: Interview is one of the flexible solutions to gain domain knowledge, we utilized

this tool to gain domain knowledge on recruitment process by asking the colleague university

students and job seekers regarding interested field of current and future job market.

• Observing and Monitoring: Observing and monitoring how human resource departments

from few local institutions are doing their recruitment processes. Reading local newspapers

job advertisement helped gave insight about required skill list.

4.3 REQUIREMENT ANALAYSIS AND MANAGEMENT

The gathered requirements needed to be validated and analysed for clarity. Requirement is very

obvious to meet a goal. Requirements have effect on the project scope and the project cost.

Requirements were derived and analysed with tool like use case and managed with the help of the

product backlog tool associated with the scrum methodology. These tools help us identify all

actors, define the system boundaries and functionalities of all respective actors of the system.

37
4.3.1 ACTORS

Requirement analysis identified the following as actors;

• Recruiter/Employer: The actor that advertises and offers job opportunities to the jobseeker

• Jobseeker/Employee: The actor that searches and applies for jobs that are advertised by the

recruiter.

4.3.2 USE CASES

Requirement analysis derived the following use cases;

• As a recruiter, I must be able to create or register an account.

• As a recruiter, I must be able to login properly into the system.

• As a recruiter, I should be able to update my company profile.

• As a recruiter, I should be able to post job advertisement.

• As a recruiter, I should be able to view jobseeker list.

• As a recruiter, I should be able to view jobseeker resume.

• As a recruiter, I should be able to delete job advertisement posted from my account.

• As a jobseeker, I must be able to create or register my profile.

• As a jobseeker, I must be able to login properly in to the system.

• As a jobseeker, I should be able to update my profile.

• As a jobseeker, I should be able to create my resume.

• As a jobseeker, I should be able to view advertised jobs.

• As a jobseeker, I should be search for jobs.

• As a jobseeker, I should be able to apply for a job.

• As a jobseeker, I should be able to view recruiter profile.

38
4.4 ANALYSIS OF CURRENT AND ONGOING SYSTEMS

Before initializing system design task, it is essential to evaluate the current process of the system.

This section analyses the manual or traditional method and some technology base systems that

currently operates in Sierra Leone. It clearly analyses how a typical recruiting process works.

4.4.1 HOW THE TRADITIONAL OR MANUAL RECRUITMENT WORKS

The traditional or manual recruitment refers to old fashioned or all method of recruiting that makes

no use of technology. Analyses of this method of recruiting or job seeking requires that we do the

analysis based on the actors or stakeholders’ perspective.

Recruiter or Employer: This actor usually advertises vacancies from their institutions on local

newspapers or air on mass media slots, sometimes they advertise by internal and external memos,

they usually state requirements and methods for application from applicants.

Once applications have been received during the stated period, they usually analyse and pick out

the most suitable and contact them for the next phase of the process which can sometimes be an

exam, interview or training depending on the advertised job.

Jobseeker or Employee: This actor usually gets information on available vacancies from

advertisement placed on newspapers or on radio or television advert slots or more often by word

of mouth from insiders or from someone who might have come across the advertisement.

They are usually sent in application letters and their resume, if found to be suitable by the recruiter

they are then contacted by the potential employer for continuation on the recruitment process

which sometimes can be interview, exam or training.

39
4.5 REQUIRMENTS FOR THE NEW SYSTEM

The requirements for our proposed system were derived, gathered and categorized. This section

will outline all functional and non-functional requirement of the system and also recommended

hardware and software requirement for the system.

4.5.1 FUNCTIONAL REQUIREMENTS

User Registration

• Create profiles for job seekers.

• Create profiles for companies.

Job post

• Enable job posting features for companies.

• Candidate can view all posts and apply suitable post.

• Real time job list and candidate list by skill search.

• Relevant candidate name list will be display for every skill search.

Searching

• Search using skills, job title, or district.

• Search jobseeker database.

• Password change.

• Forgot password.

• Interview schedules.

40
4.5.2 NON-FUNTIONAL REQUIREMENTS

Performance: Website loading speed and optimize script deliver better usability for even ordinary

user. This requirement will ensure that the Job Portal will always be at optimal performance,

performing activities, tasks and processes it was developed to do.

Usability or User Friendliness: Human–computer interaction is considered in order to deliver

better User Interface (UI) design and User Experiences (UX). Users should be at ease and find the

functionalities easy to use before a system is considered as usable. Usability can be achieved when

the system provides the users with easy learnability and memorability of how the system works.

In that case, user has flexibility to use this website to complete their task. the online job portal

should provide good usability features for easy use.

Availability: This type of requirement is stated for the system to be always available at all times

to perform its assigned functionalities. This simply means Online job portal is to be available 24x7

for its users.

Operability: The system should be operable on different operating systems such as Windows,

Linux, Mac OS and any other operating system capable of running a web browser.

Responsiveness: Systems are said to be responsive when their design and development correspond

to the users’ work environment. The online job portal must be flexible and can respond to users’

requests and actions in a reasonable time. System is designed for all device compatibility and

responsive design using bootstrap for all the browsers and devices.

Privacy: Users might have facility to protect their data by setting up some privacy option. User

roles are clearly defined according to the user level.

Reliability: If there is no deadline for a job post and that post is available on web all the time,

candidate may not trust the content. Always all the job post content must be accurate and reliable.

41
4.5.3 HARDWARE AND SOFTWARE REQUIREMENTS

These are requirements that were specified for the development environment.

Hardware Specifications

Processor Intel / AMD – 2.0 GHz or higher

RAM 2GB or higher

Hard Disk for development environment 500GB or higher

Resolution Minimum 1024 x 768

Internet Broadband with minimum 2.0 Mbps download rate

Software Specifications

Operating System Windows 8.1 or later version

Web Server Apache 2.4.53

Database MySQL Version 5.x

Web browser Google Chrome (recommended) or latest version of

Firefox, edge, opera.

Text Editor VS code editor and Notepad ++

42
4.6 SYSTEM DESIGN

The Software design is focused on visualizing a way to fulfil the expected solution or performance

of the system required by the users. For the purpose of this development the Researchers chose to

evaluate three major design options, namely:

• Object-Oriented Design.

• Function-Oriented Design.

• Structure-Oriented Design.

4.6.1 OBJECT ORIENTED DESIGN

In the object-oriented design method, the system is viewed as a collection of objects (i.e., entities).

The state is distributed among the objects, and each object handles its state data. This technique

enables the implementation of a software solution based on the concepts of objects. The OOD

(Object-Oriented Design) process takes the conceptual systems model, use cases, system relational

model, user interface (UI) and other analysis data as input from the OOA (Object-Oriented

Analysis) phase. This is used in OOD to identify, define and design systems classes and objects,

as well as their relationship, interface and implementation.

Figure 4.1 Object-oriented design

43
Objects: All entities involved in the solution design are known as objects. For example, person,

banks, company, and users are considered as objects. Every entity has some attributes associated

with it and has some methods to perform on the attributes.

Classes: A class is a generalized description of an object. An object is an instance of a class. A

class defines all the attributes, which an object can have and methods, which represents the

functionality of the object.

Messages: Objects communicate by message passing. Messages consist of the integrity of the

target object, the name of the requested operation, and any other action needed to perform the

function. Messages are often implemented as procedure or function calls.

Abstraction: In object-oriented design, complexity is handled using abstraction. Abstraction is

the removal of the irrelevant and the amplification of the essentials.

Encapsulation: Encapsulation is called an information hiding concept. The data and operations

are linked to a single unit. Encapsulation not only bundles essential information of an object

together but also restricts access to the data and methods from the outside world.

Inheritance: OOD allows similar classes to stack up in a hierarchical manner where the lower or

sub-classes can import, implement, and re-use allowed variables and functions from their

immediate super classes. This property of OOD is called an inheritance. This makes it easier to

define a specific class and to create generalized classes from specific ones.

Polymorphism: OOD languages provide a mechanism where methods performing similar tasks

but vary in arguments, can be assigned the same name. This is known as polymorphism, which

allows a single interface is performing functions for different types. Depending upon how the

service is invoked, the respective portion of the code gets executed.

44
4.6.2 FUNCTION ORIENTED DESIGN

Function-Oriented Design is an approach to software design where the design is decomposed into

a set of interacting units where each unit has a clearly defined function.

Design Notations are primarily meant to be used during the process of design and are used to

represent design or design decisions. For a function-oriented design, the design can be represented

graphically or mathematically by the following:

Figure 4.2 Function-oriented design

Function Oriented Design Strategies are as follows:

Data Flow Diagram (DFD): A data flow diagram (DFD) maps out the flow of information for

any process or system. It uses defined symbols like rectangles, circles and arrows, plus short text

labels, to show data inputs, outputs, storage points and the routes between each destination.

Data Dictionaries: Data dictionaries are simply repositories to store information about all data

items defined in DFDs. At the requirement stage, data dictionaries contain data items. Data

45
dictionaries include name of the item, aliases (other names for items), description/purpose, related

data items, range of values, data structure definition/form.

Structure Charts: It is the hierarchical representation of system which partitions the system into

black boxes (functionality is known to users but inner details are unknown). Components are read

from top to bottom and left to right. When a module calls another, it views the called module as

black box, passing required parameters and receiving results.

Pseudo Code: Pseudo Code is system description in short English like phrases describing the

function. It uses keyword and indentation. Pseudo codes are used as replacement for flow charts.

It decreases the amount of documentation required.

4.6.3 STRUCTURE ORIENTED DESIGN

Structured design breaks a system down into functional modules. Each module can be described

as having inputs, processing, and outputs. Structured design is a top-down decomposition of

system functionality.

Structured design is a conceptualization of problem into several well-organized elements of

solution. It is basically concerned with the solution design. Benefit of structured design gives better

understanding of how the problem is being solved. Structured design makes it simpler for designer

to concentrate on the problem more accurately.

Structured design is mostly based on ‘divide and conquer’ strategy where a problem is broken into

several small problems and each small problem is individually solved until the whole problem is

solved. The small pieces of problems are solved by means of solution modules. Structured design

emphasis that these modules be well organized in order to achieve precise solution. These modules

46
are arranged in hierarchy. They communicate with each other. A good structured design always

follows some rules for communication among multiple modules, namely -

Cohesion - grouping of all functionally related elements.

Coupling - communication between different modules.

A good structured design has high cohesion and low coupling arrangements.

4.7 DESIGN CHOICE AND JUSTIFICATION

Considering the available information and requirements for our system, we were able to derive

solid requirements by dividing the system into modules for each identified actor, with all the good

available design approached we find structure-oriented design to be the most suitable for this

project.

Structured design provides a means for understanding complex problems and evaluating system

requirements. Communication among users, designers and implementers is facilitated. Valuable

and usable documentation is produced. This design has a lot of existing CASE tools which can

assist us in the use of this design approach.

Below are some of the key reasons and justification for using structure-oriented design;

• This design approach decreases the complexity of the program by breaking it down into smaller

logical modules.

• This design method allows us to divide, develop, and code modules simultaneously.

• Considering the common features between our pages, it permits reusability, which simply

means it also allows common functions to be written once and then used in all the programs

needing it.

47
• It gave us the flexibility to do modification and amendments to individual modules which in

turn do not affect the rest of the program.

• It is easier to name modules in such a way that they are easy to find in the documentation and

consistent.

48
4.8 PROPOSED SYSTEM DESIGN

4.8.1 INTRODUCTION

In the System design phase, designed methodology processed using unified modelling language

(UML) and rendered UML diagram using source code to implement the User-friendly interface.

PHP script and MySQL database is used to develop back-end and Twitter Bootstrap framework is

used to design responsive user interface design.

4.8.2 DATABASE DESIGN

ER Diagram
Figure 4.3 ER Diagram

49
4.8.3 NORMALIZATION

User Table 2NF

Tbl_user
MemberId(PK)
First_name
Last_name
Gender
DOB
Email
Address
Experience
Reference
Academic
Professional
Language
Referee
Training
Attachment

User Table 3NF

Tbl_user Tbl_experience Tbl_professional Tbl_referee


MemberId(Pk) id (Pk) id (Pk) Id (Pk)
First_name Title Institution Ref_Name
Last_name Institution Title Ref_Contact
Gender Start Timeframe Ref_Email
DOB End Certificate Ref_institution
Email Supervisor
Address

Tbl_Attachment
Tbl_Academic Tbl_Training
Id (Pk)
Id (Pk) Id (Pk) Issuer
Institution Institution Title
Course Certificate attachment
Transcript timeframe
Certificate
Timeframe

50
4.8.4 HIGH LEVEL ARCHITECTURE DIAGRAM

User can view all the job post; User can search for any job category from any district
Functionalities

Already
Registered
user?
No

Yes
Register

Login

Jobseeker/Employee
Recruiter/Employer
▪ Manage company profile
▪ Update information
▪ View Jobseekers
▪ Post jobs ▪ Search for available
▪ Manage posts jobs
▪ View employer
information
▪ Apply for job

Figure 4.4 High level architecture diagram

51
4.8.5 UNIFIED MODELLING LANGUAGE (UML) DIAGRAM

UML is one of the methodologies used in system analysis to understand, clarify and organize

system requirements. Use case diagram is used in UML. UML clearly shows various user

activities in the system that every user can perform and functionalities. Users call in use case

diagram as actors.

Use Case User registration


Actors All users
Overview Provide all required information and email
Preconditions
Needs to have email address and Names
Post conditions
User will be taken a role an Employer or Employee
Flow of events
1. Users must provide initial details to register with the system.
2. Users must provide password for the system.
3. Once a user registered, the user can login to the system

Use Case Jobseeker/Employee registration


Actors Jobseeker/Employee

Overview Jobseeker/Employee to apply for a job, Check the status of applied job
Preconditions
Jobseeker/Employee must register with the system.
Post conditions
1. Jobseeker/Employee can apply for a job only once.
2. Receive update on application status.
Flow of events
1. Jobseeker/Employee must login
2. Jobseeker/Employee apply for the available job by clicking a button.
3. Jobseeker/Employee will get notified via email once invited for the interview.

52
Use Case Recruiter/Employer registration

Actors Recruiter/Employer
Overview Recruiter/Employer post a job, receive application job
Preconditions
Recruiter/Employer must register with the system.
Post conditions
1. Recruiter/Employer can post and manage jobs.
2. Receive update on posted jobs from applicant status
Flow of events
1. Recruiter/Employer must login
2. Recruiter/Employer can post a job by entering required relevant information regarding
the job and post with the click of the button.
3. Recruiter/Employer will get notified via email about applications on posted jobs.
4.8.6 UML USE CASE DIAGRAM

<<Initiate>>
Figure 4.5 UML diagram

<<Participant>>
System
Verify password
<<Initiate>> View portal &

Register
<<Initiate>> <<Include>>
<<Initiate>> <<Initiate>>
Login
<<Initiate>>
<<Initiate>> Manage Recruiter/Employe
Jobseeker/Employ Manage <<Initiate>>
Profile
ee <<Initiate>> Profile
<<Initiate>>
<<Extend>>Post Job <<Initiate>>
<<Initiate>> Apply
job Manage
job

Search

53
4.8.7 SEQUENTIAL DIAGRAM

Recruiter/Employer Jobseeker/Employee Portal

View portal and job list

View portal

Registration

Registration

Login

Login

Manage profile

Manage Company profile

Post and Manage Job

Apply

Job Notification

Notification

Figure 4.6 Sequence diagram

54
4.5 SYSTEM LAYERS

The proposed System is designed on a 3-tier architecture using the web-based server/client concept

for user interaction. Functional process logic, data storage and data access are developed and

maintained independently using different platforms.

The Database Layer: The proposed system's database will be implemented using MySQL Server

8.0. This layer provides high connectivity and availability, plus, it provides system developers with

the ability to manage and administer their databases easily, especially using the Graphical User

Interface (GUI) of the Apache phpMyAdmin dashboard. In addition to enabling developers to

create their own stored procedures or use built-in system ones. Using MySQL Server as a

Relational Database Management System (RDBMS) of the entire solution gives the user the ability

to create Server-Side Cursors to iterate programmatically through different table records and

manipulate them row by row. At development time, developers may need to process resulting

records at the server without the need to use another programming language, i.e. by means of the

built-in functionality of the RDBMS.

The Application Layer: contains the User Interface (UI), Business Rules, and the Data-Access

Components. In this system, all the accessing data code and business rules implementation was

developed using PHP; the code was written in files; each contains a feature or function connected

to a module that handle the operations of web forms designed using PHP.

The Client Layer: The simplest client must have a PC or PDA or mobile phone that connects to

the internet that runs an operating system with a web browser installed. Codes were tested on all

popular browsers; they work very well on such browsers and the support of XML or HTML5. As

a web-based application, processing is handled by the hosting server and the client end script, so

the portal is accessible from any platform that supports web browsing.

55
CHAPTER FIVE

RESULT AND DISCUSSION

5. RESULT AND IMPLEMENTATION

5.1 INTRODUCTION

This Chapter presents results in terms of the key features of the system that we have implemented

using PHP MySQL based framework called Laravel which is an open-source framework that can

be downloaded on the internet. Sierra Jobs as we titled our portal is for Sierra Leone job community

only but can be accessed globally.

We will provide in-depth evaluation of how the system works. show how thorough testing had

been carried out, the results achieved and the descriptive explanations on how it was achieved.

Our requirement derivation and analysis with the help of the numerous tools, we were able to

segment our system into two modules based on the actors identified. Anyone can access the system

but users of the system can only do so in two (2) roles, Recruiter/Employer or Jobseeker/Employee.

this different user roles have different access and functions within the system.

56
5.2 SYSTEM OVERVIEW

This section aims to present pictorial representation of what various windows and elements of the

system looks like.

5.2.1 HOME PAGE

Figure 5.1: Home page

5.2.2 NAVIGATION MENU BAR

5.2.3 REGISTRATION Figure 5.2: Navigation Menu Bar

Figure 5.3: Registration

57
5.2.3.1 REGISTRATION AS EMPLOYER

Figure 5.4: Registration Employer

5.2.3.2 REGISTRATION AS EMPLOYEE

Figure 5.5: Registration Employee

5.2.4 LOGIN

Figure 5.6: Login

58
5.2.5 JOB LISTING

Figure 5.7: Job Listing

5.2.6 EMPLOYER LISTING

Figure 5.8: Employer Listing

59
5.2.7 EMPLOYEE LISTING

Figure 5.9: Employee Listing

5.2.8 EMPLOYER DASHBOARD

Figure 5.10: Employer Dashboard

60
5.2.9 EMPLOYEE DASHBOARD

Figure 5.11: Employee Dashboard

5.3 TECHNOLOGY AND TOOLS USED

• Apache Web Server version 2.4.53: Apache web server is locally used by XAMPP control

panel and also used online Linux web server for online job portal application. Apache is one of

the best web server platforms in the world. Apache is an open-source software that was

incorporated with eight contributors in February 1995. Most of the websites around the world

are running using Apache web servers.

• PHP version 8.1.6: Hypertext Preprocessor (PHP) is an open-source scripting language used

in wider range of website development. PHP scripts are processed using PHP interpreter and

rendered into HTML document on the web server. After the render, HTML file will be sent to

browser through http. HTML code can embed into PHP and vice versa. PHP scripting is a

platform independent scripting language working on all type of operating system.

61
• MySQL Server version 8.0.30: MySQL is a popular relational database management system.

It is a widely used database management system for many available open-source web

applications. PhpMyAdmin is the most popular graphical user interface tool for MySQL

database.

• Visual Studio Code Editor version 1.70.2: Visual Studio Code is a streamlined code editor.

This software is easy to use for debugging, task running and for version control purpose during

the development stage. This is a very lightweight software. Visual Studio Code editor does not

require an installation and this is a platform independent software.

• Notepad++ version 8.4.5: Notepad++ text editor supports debugging, code editing with several

languages including PHP, HTML, CSS and JavaScript. Notepad++ is a lightweight editor.

62
5.4 SYSTEM TESTING

A famous quote from William Howden says “Testing is the unavoidable part of any responsible

effort to develop a software system”. In software engineering, auditing and validation of the

software system is called software testing, which happens to be one element of a broader topic that

is often referred to as verification and validation (V&V). during this phase we performed set of

tasks that verified that our system correctly implemented all specified functions and validated that

our system has been built based on requirements. In other words, verification ensures that we are

building the system the right way and validation ensures that we are building the right system. The

system testing will provide an objective overview of how the system works from a user and

developers perspective.

5.5 OBJECTIVE OF THE TESTING

• To ensure that the software is designed according to the requirements.

• To deliver an error free system.

• To ensure validation and data verification is done properly.

• To ensure the efficiency of the system by checking the quality of the system.

5.6 BLACK BOX TESTING

Otherwise refers to behavioral testing, black box testing is a user’s point of testing the system

functionalities to view how well the system works. This test checks the performance of the system

and if its behavior is corresponding to specify required triggered actions. But a function can only

behave as expected when value is inputted in order to get output value. An example being the

login, where an email address and password input is required to provide an output where users can

access their accounts. The black box testing involves the functional testing which is divided into

sub levels.

63
5.6.1 FUNCTIONAL TESTING

This test focuses on the functional requirements of the system in which we compare the system

functional responses to that of the expected output. The following are the different level of

functional testing:

5.6.1.1 UNIT TESTING

We tested a small component of the system to see how it works. With our design methodology,

we were able to perform unit testing after every sprint with the available prototype. After writing

a small set of code we ran it and tested the prototype to verify if it is error free and works properly.

The first part of the system that was tested for its functionality is the registration sector for both

recruiter and jobseeker. User registration (sign up) process is a basic functional requirement

process in the online job portal system. All jobseekers should enter their first name, last name and

valid email address along with and desired password to register with the system and recruiters

should enter their company name, company type, valid email address along with desired password.

It was tested with a valid email address and password input to verify the result. Other elements

and features of the system that were tested during this phase are as follows

• UI Testing: Front end is very important for web-based applications. The black box testing

offered the opportunity to test the user interface on numerous popular browsers and

responsiveness on various browsing gadget.

• Browser Testing: considering our application is a web base application, Web browser level

competencies are highly recommended for any web applications. Application is tested on

different web browsers (Google Chrome, Firefox, Edge, Opera and etc.). Testing was also

carried forward to different versions as well.

Search Function: Search function is a preliminary task for Online Job Portal. Search box

64
function is created to search any category and by district.

The test scripts and test results of all the scenarios above are display in the Appendix of this

writeup.

5.6.2 INTEGRATION TESTING

This test was done to ensure that the different units of the system work properly when integrated

together. For example, after the login was developed, the dashboards for both recruiter/employer

and jobseeker/employee. Other features that are specific to each module was also developed, so it

was tested to see how well it works when collaborating together.

5.6.3 REGRESSION TESTING

Considering the number of modifications and adjustments that every sprint brings with our design

approach, we had to perform regression testing. This testing involves re-testing the whole system

to verify that an update on the system does not alter or destroy the existing functionalities of the

system. It was a continuous testing process in order to prevent any error or negative result from

occurring whenever the system is updated.

5.6.4 ACCEPTANCE TESTING

This test is done to verify that the end-product of the system is per the requirement, only then can

it be accepted for the intended end user. So, a Beta testing was performed by some employers and

our friends and classmates, the testers verifying how well the job portal works before we continue

development of the system with all its features and functionalities. We get to know that the actors

find the system to be very effective and easy to use and is also satisfied with its functionalities.

The test script and test results are shown in the appendix.

65
5.7 WHITE BOX TESTING

This type of testing is done by the developers to detect logical and design errors and faults in the

system development. The primary intent for doing the white box testing was to check the quality

of implementing the Online Job Portal. It was an important testing that required high understanding

of programming and implementation from the developers. We made sure to understand reasons

for some of the code bugs ups and worked hard to develop the system according to the detailed

design documented. The team did the following test to verify the quality of implementing such a

system:

5.7.1 PERFORMANCE TESTING

It was done to ensure efficiency and optimal performance of the desired tasks that the users are

going to perform. It ensured that the capability of the online job portal to perform heavy tasks like

create user accounts, post jobs with all required details, create resumes, modify information and

present job search seamlessly.

5.7.2 LOADING TESTING

The capability for the system to load pages and respond to request when tasks are performed with

varying conditions was presented with the desired outcome. Even though this test was performed

on a local server with relatively average specification we considered the response time to be

acceptable and can even work better and faster when and if hosted on a cloud platform.

5.7.3 VOLUME TESTING

We did a test to verify that our system allows concurrent users of the system simultaneously in

order to validate how well the system works with receiving multiple requests at the same time.

66
5.7.4 SECURITY TESTING

This test proved to be efficient as the system maintained its security despite being used by different

individuals. We did authentication testing for the specified users before accessing their personal

dashboards, information and the task they can perform.

5.7.5 USABILITY TESTING

The system is also tested for easy usability making sure that the interface is good and well-defined

providing easy memorability and learnability for the end users.

67
CHAPTER SIX

SUMMARY, CONCLUSION AND RECOMMENDATION

6. INTRODUCTION

This chapter summarizes the dissertation with a critical evaluation of the system, lessons learnt

and suggestions for any future enhancements.

6.1 SUMMARY

Our research examined the constraints and problems faced by the job community within the

country when it comes to the old or traditional methods of recruiting and job seeking within

country. Having highlighted the problems and established the need for a better and modern system,

the researchers worked tirelessly to develop a system that will cater for the general needs when it

comes to job seeking and recruiting. And to get a better understanding of what our users need, we

performed requirement gathering/elicitation and had deep observation on the already existing

systems and utilized the knowledge we gained to develop a system that meets the required needs

We also conducted a literature review on how a typical Online Job Portal works, related studies in

the past that prepared us to face similar challenges and opportunities when developing our system.

Selecting the suitable SDLC model after reviewing the different models helped a lot in our

development process. We did numerous testing using the white box and black box testing approach

to match the system to the derived users’ requirement. The testing phase was an essential process

that was required for the smooth running of the system that aligns with the end users’ needs. We

were able to accomplish our goal of developing the online job portal with everything highlighted

above and with the guidance of the software requirements specifications (SRS) document.

68
6.2 LESSONS LEARNT

Development and Implementation of such a system brings gain of knowledge in several aspects.

Some of them are requirement gathering, requirement analysis and system analysis design, project

planning, frontend design and backend development, software testing, organizing infrastructure

and prepare documentation. This is a full stack development process which is equivalent to process

roles of a project manager, technical lead, system analyst, business analyst, software developer,

quality assurance tester, network administrator, content writer and graphic & user interface

designer. The self-confidence and commitment to learn helps more to complete the project

successfully on time. It has been a great challenge for this team and it has been satisfactory on

personal level for this team. It was a great opportunity to not just learn but practicalized some of

the things we have been learning over the years, we have expanded on our knowledge on the

programming PHP and PHP Framework, HTML and CSS using Bootstrap, JavaScript, MySQL

and many other important new technologies to lead the way to learn.

6.3 SUMMARY OF ACHIEVEMENT

The online job portal is a major improvement and a robust tool for our local job community as it

delivers modern ways of recruiting and job seeking, we have developed a system that requires less

resources for job advertisement and job search and covers larger municipality as compared to other

forms of job advertisement, a system that provides a rich jobseeker database for potential

employers. This system provides a platform for easy interaction between recruiters and jobseekers,

also it provides the online presence for institutions by letting companies not only post jobs but also

have a chance to share information about their companies.

69
6.4 LIMITATIONS OF THE STUDY

Though the system is completed based on our objectives, there are other features which we cannot

achieve due to time constraints and technical know-how. Features like setting up interviews or

direct messaging function within the application.

Considering it a fairly new technological tool for this part of the world, we were faced with

numerous other challenges for both our research and developing the system. These constraints

ranges from our research work, requirement gathering, developing and testing of the system. The

constraints that caused some challenges for us are as follows:

• Coming up with the right requirement was a difficulty considering we also had to role play the

client, which involves deriving requirements based on perception or time-consuming research.

• Our design method requires a lot of testing, ensuring the system is error free and flawless

requires time which a little delay in our project.

• The time required for completion of the entire project was short considering the amount of

research, planning, implementation and writeup required.

70
6.5 CONCLUSION

It is evident in our limitation that not all features are implemented, but this online job portal

provides the basis as a tool for modern method of the entire recruitment circle for all stakeholders

of the job community in and beyond Sierra Leone. There is no doubt that improvement of

technology influences the lifestyle of people.

Developed online job portal system is a stable system running on PHP framework platform and it

has scalable schedule to do changes with its MVC architecture. Any freshman can quickly learn

the system with ease to create a new feature.

The main functions that, needed for online job portal systems are mentioned as follows. ‘User

Registration’ is required for the very first access for job seekers and the employers. After the

registration, an employer can ‘post new vacancies. The job seeker can be able to view and apply

for jobs which are sent automatically. After shortlisting the applications, the employer can be able

to ‘invite candidates’ to the interview by emails or using the other contact information included on

the resume. Employers and job seekers can be kept in touch with the system with email

notifications. A ‘user dashboard’ will be there for users’ convenience.

71
6.6 RECOMMENDATION

Some functions need to be included in the system to enhance the portal. Though they are not most

prominent ones but they may give a more attractive look to the system. Some of the recommended

features to be developed as follows;

• Create a section on the home page for advertisement, once the portal has grown in number of

users, it can be an attractive place for firms and individual to market goods and services, the

platform can generate income from such functionality.

• Online payment for goods and services posting: Online payment method for every marketing

or annual subscription charges for regular based marketing ads agents.

• Add search bars for on both the employee and employer pages

• We recommend the application hosted on a cloud server, the mobile view feature that allows

users to access the system through mobile phone requires a live and running server.

• Create admin dashboard for the general administration of the application.

72
REFRENCES

1. Agarwa, A., 2022. Software Engineering | Function Oriented Design - GeeksforGeeks.

[online] GeeksforGeeks. Available at: <https://www.geeksforgeeks.org/software-

engineering-function-oriented-design/> [Accessed 18 September 2022].

2. Dorn, J. and Naz, T., 2007. Integration of Job Portals by Meta-search. Enterprise

Interoperability II, [online] pp.401-412. Available at:

<https://link.springer.com/chapter/10.1007/978-1-84628-858-6_44#citeas> [Accessed 8

September 2022].

3. Gangl, M., 2003. The Only Way is Up?: Employment Protection and Job Mobility among

Recent Entrants to European Labour Markets. European Sociological Review, [online] 19(5),

pp.429-449. Available at: <https://doi.org/10.1093/esr/19.5.429> [Accessed 11 October

2022].

4. Galanaki, E., 2002. The decision to recruit online: a descriptive study. Career Development

International, [online] 7(4), pp.243-251. Available at:

<https://doi.org/10.1108/13620430210431325> [Accessed 12 September 2022].

5. Howden, W., 1981. Software Testing and Validation Techniques. 2nd ed. New York: IEEE

Computer Society Press.

6. Jones, S., 2022. Here’s Why Traditional Hiring Methods No Longer Work. [online] uplers.

Available at: <https://www.uplers.com/blog/drawbacks-of-traditional-hiring-methods/>

[Accessed 15 August 2022].

7. Khan, M., 2022. which SDLC model is the best for your business. [Blog] rnftechnologies,

Available at: <https://www.rnftechnologies.com/blog/best-sdlc-methodology> [Accessed 3

September 2022].

73
8. Mochol, M., Wache, H. and Nixon, L., 2007. Improving the Accuracy of Job Search with

Semantic Techniques. Business Information Systems, [online] 4439, pp.301-313. Available

at: <https://doi.org/10.1007/978-3-540-72035-5_23> [Accessed 15 September 2022].

9. Pressman, R. and Maxim, B., 2015. Software Engineering: A Practitioner's Approach

McGraw-Hill Education. 8th ed. China Machine Press; p.941 pages.

10. QualityLogic. 2022. A Smarter Approach to Software & QA Testing Services.. [online]

Available at: <https://www.qualitylogic.com/> [Accessed 15 September 2022].

11. Rosita, M. and Nadianatra, M., 2007. E-recruitment practice: pros vs. cons. [online] 1.

Available at: <https://myjurnal.mohe.gov.my/public/article-view.php?id=3173> [Accessed

15 September 2022].

12. Scientist, G., 2022. Structured Programming- Advantages & Disadvantages. [online] GK

SCIENTIST. Available at: <https://gkscientist.com/structured-programming/> [Accessed 17

September 2022].

13. Spiceworks. 2022. Home | Spiceworks. [online] Available at:

<https://www.spiceworks.com/> [Accessed 8 September 2022].

14. Sulaiman, N. and Burke, M., 2009. A case analysis of knowledge sharing implementation

and job searching in Malaysia. International Journal of Information Management, [online]

29(4), pp.321-325. Available at: <https://doi.org/10.1016/j.ijinfomgt.2009.03.010>

[Accessed 13 September 2022].

15. Team, S., 2022. Top 4 software development methodologies. [online] Application Security

Blog. Available at: <https://www.synopsys.com/blogs/software-security/top-4-software-

development-methodologies/> [Accessed 3 September 2022].

74
16. Techopedia.com. 2022. What is Object-Oriented Design (OOD)? - Definition from

Techopedia. [online] Available at: <https://www.techopedia.com/definition/21105/object-

oriented-design-ood> [Accessed 20 September 2022].

17. Tutorialspoint.com. 2022. Software Design Strategies. [online] Available at:

<https://www.tutorialspoint.com/software_engineering/software_design_strategies.htm>

[Accessed 22 September 2022].

18. www.javatpoint.com. 2022. Software Engineering | Function Oriented Design - javatpoint.

[online] Available at: <https://www.javatpoint.com/software-engineering-function-oriented-

design> [Accessed 20 September 2022].

19. www.javatpoint.com. 2022. Software Engineering | Object Oriented Design - javatpoint.

[online] Available at: <https://www.javatpoint.com/software-engineering-object-oriented-

design> [Accessed 19 September 2022].

75
APPENDICES
APPENDIX A: USER MANUAL
To Register
• Click on register at the menu bar
• Select actor type (Employer or Employee) from the pop-up window
• Enter all the required details
• Click on Register
To Post a Job
• Login with an Employer account
• Click on Post A Job from the employer dashboard
• Enter all the required details on the job
• Click on Post your Job to publish
To Apply for a Job
• Login with Employee account
• Search or scroll to a job from the job list
• Click on view job to view details and requirements on the Job
• Click on the Apply for this job

APPENDIX B: DATA USED IN TESTING THE SYSTEM


Browser Testing
Web browser level competencies are highly recommended for any web applications. So, our
application was tested on different web browsers (Google Chrome, Firefox, IE Edge, Opera and
etc). Testing was carried forward to different versions as well. Below are the test results;
Chrome Firefox Edge Opera
Home page Pass Pass Pass Pass
Job List page Pass Pass Pass Pass
Registration page Pass Pass Pass Pass
Login Page Pass Pass Pass Pass
Employer Dashboard page Pass Pass Pass Pass
Employee Dashboard page Pass Pass Pass Pass
Contact Us Pass Pass Pass Pass

Table Appendix: B.1 Web browser testing

76
Test cases used to test Registration/Login functions
User registration (sign up) process is a basic functional requirement process for an online job
portal. Our system implemented this functionality and used the test below;

Test ID Test case Expected output from system Success/Fail

1 New user tries to register with Form validation rules reject system Success
blank First name, Last name input and display error
and email address

2 New user registration details Adds user details with proper Success
with valid email address and validation, and update database
other information

3 User tries existing email Return login page again to login Success
address to register and validation error occur

4 Forgot password Forgot password ask to input email Fail


address and sends reset password
to email

5 User provides invalid username Form verification returns an error Success


and password and reject to login

6 User tries blank username and Form validation sends error Success
blank password to login message and login failed

7 User tries with correct username Form verification failed and login Success
but wrong password rejected

8 User tries with wrong username Form verification failed and login Success
and correct password rejected

9 Correct email and password Form verification success and login Success
success

Table Appendix: B.2 Registration and login testing

77
Test cases used to test on search function

Test ID Test case Expected output from system Success / Fail


1 Success
Click “Search” button without Form validation rules reject for
type anything search and display error
2 Success
Leaving one of the search
criteria blank and click search Prompt to enter the other criteria
3 Success
Select Job Category and Display all jobs from the selected
District and click search category from the selected district.
Table Appendix: B.3 Job search function testing

Test cases to post jobs

Test ID Test case Expected output from system Success / Fail


1 Success
Click “Submit” button without Form validation rules reject for
type anything post and display validation errors
2 Edit and update job posting Success
By clicking “Edit Post” button
user can open the view post in
editable mode and after editing
when user press “Submit” button,
it will update
3 Delete any post Success
By clicking on “Delete” button
confirmation message will be
displayed once confirm post get
deleted
4 View all the posts made by user Success
By clicking “Posted Jobs” option
user can view all the posts made
by him/her
Table Appendix: B.4 Job Post testing

78
APPENDIX C: SOURCE CODES
The source code for this system is at the GitHub account
https://github.com/ramadanbah/OnlineJobPortal.git
Home page
Figure Appendix C1.1

<!doctype html>
<html lang="en">
<?php
include 'constants/settings.php';
include 'constants/check-login.php';
?>
<head>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Sierra Jobs - Job Portal</title>


<meta name="description" content="Online Job Management / Job Portal" />
<meta name="keywords" content="job, work, resume, applicants, application, employee, employer, hire, hiring, human resource management, hr,
online job management, company, worker, career, recruiting, recruitment" />
<meta name="author" content="BwireSoft">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:image" content="http://<?php echo "$actual_link"; ?>/images/banner.jpg" />
<meta property="og:image:secure_url" content="https://<?php echo "$actual_link"; ?>/images/banner.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="500" />
<meta property="og:image:height" content="300" />
<meta property="og:image:alt" content="Nightingale Jobs" />
<meta property="og:description" content="Online Job Management / Job Portal" />

<link rel="shortcut icon" href="images/ico/faviconMRB.png">

<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css" media="screen">


<link href="css/animate.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<link href="css/component.css" rel="stylesheet">

<link rel="stylesheet" href="icons/linearicons/style.css">


<link rel="stylesheet" href="icons/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="icons/simple-line-icons/css/simple-line-icons.css">
<link rel="stylesheet" href="icons/ionicons/css/ionicons.css">
<link rel="stylesheet" href="icons/pe-icon-7-stroke/css/pe-icon-7-stroke.css">
<link rel="stylesheet" href="icons/rivolicons/style.css">
<link rel="stylesheet" href="icons/flaticon-line-icon-set/flaticon-line-icon-set.css">
<link rel="stylesheet" href="icons/flaticon-streamline-outline/flaticon-streamline-outline.css">
<link rel="stylesheet" href="icons/flaticon-thick-icons/flaticon-thick.css">
<link rel="stylesheet" href="icons/flaticon-ventures/flaticon-ventures.css">

<link href="css/style.css" rel="stylesheet">

79
</head>

<style>

.autofit2 {
height:70px;
width:400px;
object-fit:cover;
}

.autofit3 {
height:80px;
width:100px;
object-fit:cover;
}

</style>
<body class="home">

<div id="introLoader" class="introLoading"></div>

<div class="container-wrapper">

<header id="header">

<nav class="navbar navbar-default navbar-fixed-top navbar-sticky-function">

<div class="container">

<div class="logo-wrapper">
<div class="logo">
<a href="./"><img src="images/logoMRB.png" alt="Logo" /></a>
</div>
</div>

<div id="navbar" class="navbar-nav-wrapper navbar-arrow">

<ul class="nav navbar-nav" id="responsive-menu">

<li>

<a href="./">Home</a>

</li>

<li>
<a href="job-list.php">Job List</a>

</li>

<li>
<a href="employers.php">Employers</a>
</li>

<li>
<a href="employees.php">Employees</a>
</li>

<li>
<a href="contact.php">Contact Us</a>
</li>

</ul>

</div>

<div class="nav-mini-wrapper">
<ul class="nav-mini sign-in">
<?php
if ($user_online == true) {
print '
<li><a href="logout.php">logout</a></li>
<li><a href="'.$myrole.'">Profile</a></li>';
}else{
print '
<li><a href="login.php">login</a></li>
<li><a data-toggle="modal"
href="#registerModal">register</a></li>';

80
}

?>

</ul>
</div>

</div>

<div id="slicknav-mobile"></div>

</nav>

<div id="registerModal" class="modal fade login-box-wrapper" tabindex="-1" style="display: none;" data-


backdrop="static" data-keyboard="false" data-replace="true">

<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-
hidden="true">&times;</button>
<h4 class="modal-title text-center">Create your account for free</h4>
</div>

<div class="modal-body">

<div class="row gap-20">

<div class="col-sm-6 col-md-6">


<a href="register.php?p=Employer" class="btn btn-facebook btn-
block mb-5-xs">Register as Employer</a>
</div>
<div class="col-sm-6 col-md-6">
<a href="register.php?p=Employee" class="btn btn-facebook btn-
block mb-5-xs">Register as Employee</a>
</div>

</div>

</div>

<div class="modal-footer text-center">


<button type="button" data-dismiss="modal" class="btn btn-primary btn-
inverse">Close</button>
</div>

</div>

</header>

<div class="main-wrapper">

<div class="hero" style="background-image:url('images/hero-header/homeMRB.jpg');">


<div class="container">

<h1>your bright future starts here now</h1>


<p>Finding your next job or career on Sierra Jobs</p>

<div class="main-search-form-wrapper">

<form action="job-list.php" method="GET" autocomplete="off">

<div class="form-holder">
<div class="row gap-0">

<div class="col-xss-6 col-xs-6 col-sm-6">


<select class="form-control"
name="category" required/>
<option value="">-Select
category-</option>
<?php
require
'constants/db_config.php';
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $conn->prepare("SELECT * FROM tbl_categories ORDER BY category");


$stmt->execute();

81
$result = $stmt->fetchAll();

foreach($result as $row)
{
?>

<option style="color:black"
value="<?php echo $row['category']; ?>"><?php echo $row['category']; ?></option>
<?php
}
$stmt->execute();

}catch(PDOException $e)
{

?>

</select>
</div>

<div class="col-xss-6 col-xs-6 col-sm-6">


<select class="form-control"
name="country" required/>
<option value="">-Select
District-</option>
<?php
require
'constants/db_config.php';
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $conn->prepare("SELECT * FROM tbl_countries ORDER BY country_name");


$stmt->execute();
$result = $stmt->fetchAll();

foreach($result as $row)
{
?>

<option style="color:black"
value="<?php echo $row['country_name']; ?>"><?php echo $row['country_name']; ?></option>
<?php
}
$stmt->execute();

}catch(PDOException $e)
{

?>

</select>
</div>

</div>

</div>

<div class="btn-holder">
<button name="search" value="✓" type="submit"
class="btn"><i class="ion-android-search"></i></button>
</div>

</form>

</div>

</div>

</div>

<div class="post-hero bg-light">

82
<div class="container">

<div class="process-item-wrapper mt-20">

<div class="row">

<div class="col-sm-4">

<div class="process-item clearfix">

<div class="icon">
<i class="flaticon-line-icon-set-
magnification-lens"></i>
</div>

<div class="content">
<h5>01 / Search for jobs</h5>
</div>

</div>

</div>

<div class="col-sm-4">

<div class="process-item clearfix">

<div class="icon">
<i class="flaticon-line-icon-set-
pencil"></i>
</div>

<div class="content">
<h5>02 / Apply a Job</h5>
</div>

</div>

</div>

<div class="col-sm-4">

<div class="process-item clearfix">

<div class="icon">
<i class="flaticon-line-icon-set-
calendar"></i>
</div>

<div class="content">
<h5>03 / Start Working</h5>
</div>

</div>

</div>

</div>

</div>

</div>

</div>

<div class="pt-0 pb-50">

<div class="container">

<div class="row">

<div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2">

<div class="section-title">

<br><h2>Random Companies</h2>

</div>

83
</div>

</div>

<div class="row top-company-wrapper with-bg">

<?php
require 'constants/db_config.php';
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $conn->prepare("SELECT * FROM tbl_users WHERE role = 'employer' ORDER BY rand() LIMIT 8");
$stmt->execute();
$result = $stmt->fetchAll();

foreach($result as $row) {
$complogo = $row['avatar'];
?>
<div class="col-xss-12 col-xs-6 col-sm-4 col-md-3">

<div class="top-company">
<div class="image">
<?php
if ($complogo == null) {
print '<center><img class="autofit2" alt="image" src="images/blank.png"/></center>';
}else{
echo '<center><img class="autofit2" alt="image"
src="data:image/jpeg;base64,'.base64_encode($complogo).'"/></center>';
}
?>
</div>
<h6><?php echo $row['first_name'];?></h6>
<a target="_blank" href="company.php?ref=<?php echo $row['member_no']; ?>">View
Company</a>
</div>

</div>
<?php

}}catch(PDOException $e)
{

?>

</div>

</div>

</div>

<div class="bg-light pt-80 pb-80">

<div class="container">

<div class="row">

<div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2">

<div class="section-title">

<h2>Latest Jobs</h2>

</div>

</div>

</div>

<div class="row">

84
<div class="col-md-12">

<div class="recent-job-wrapper alt-stripe mr-0">


<?php
require 'constants/db_config.php';
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT * FROM tbl_jobs ORDER BY enc_id DESC LIMIT 8");
$stmt->execute();
$result = $stmt->fetchAll();

foreach($result as $row) {
$jobcity = $row['city'];
$jobcountry = $row['country'];
$type = $row['type'];
$title = $row['title'];
$closingdate = $row['closing_date'];
$company_id = $row['company'];
$post_date = date_format(date_create_from_format('d/m/Y',
$closingdate), 'd');
$post_month = date_format(date_create_from_format('d/m/Y', $closingdate), 'F');
$post_year = date_format(date_create_from_format('d/m/Y', $closingdate), 'Y');

$stmtb = $conn->prepare("SELECT * FROM tbl_users WHERE


member_no = '$company_id' and role = 'employer'");
$stmtb->execute();
$resultb = $stmtb->fetchAll();
foreach($resultb as $rowb) {
$complogo = $rowb['avatar'];
$thecompname = $rowb['first_name'];

if ($type == "Freelance") {
$sta = '<div class="job-label label label-success">
Freelance
</div>';

}
if ($type == "Part-time") {
$sta = '<div class="job-label label label-danger">
Part-time
</div>';

}
if ($type == "Full-time") {
$sta = '<div class="job-label label label-warning">
Full-time
</div>';

}
?>
<a class="recent-job-item clearfix" target="_blank" href="explore-
job.php?jobid=<?php echo $row['job_id']; ?>">
<div class="GridLex-grid-middle">
<div class="GridLex-col-5_xs-12">
<div class="job-position">
<div class="image">
<?php
if ($complogo == null) {
print '<center><img alt="image" src="images/blank.png"/></center>';
}else{
echo '<center><img alt="image" title="'.$thecompname.'"
width="180" height="100" src="data:image/jpeg;base64,'.base64_encode($complogo).'"/></center>';
}
?>
</div>
<div class="content">
<h4><?php echo "$title"; ?></h4>
<p><?php echo "$thecompname"; ?></p>
</div>
</div>
</div>
<div class="GridLex-col-5_xs-8_xss-12 mt-10-xss">
<div class="job-location">
<i class="fa fa-map-marker text-primary"></i> <?php echo
"$jobcountry" ?></strong> - <?php echo "$jobcity" ?>

85
</div>
</div>
<div class="GridLex-col-2_xs-4_xss-12">
<?php echo "$sta"; ?>
<span class="font12 block spacing1 font400 text-center">Due - <?php
echo "$post_month"; ?> <?php echo "$post_date"; ?>, <?php echo "$post_year"; ?></span>
</div>
</div>
</a>

<?php

}
}catch(PDOException $e)
{

}
?>

</div>

</div>

</div>

</div>

</div>

<footer class="footer-wrapper">

<div class="main-footer">

<div class="container">

<div class="row">

<div class="col-sm-12 col-md-9">

<div class="row">

<div class="col-sm-6 col-md-4">

<div class="footer-about-us">
<h5 class="footer-
title">About Sierra Jobs</h5>
<p>Sierra Jobs is a
job portal, online job management system developed by Mohamed .L.Bah, Chernor M.S. Jalloh, & Mamadu A. Barrie as their dissertation project class of
21/22.</p>

</div>

</div>

<div class="col-sm-6 col-md-5 mt-30-xs">


<h5 class="footer-title">Quick
Links</h5>
<ul class="footer-menu
clearfix">
<li><a
href="./">Home</a></li>
<li><a href="job-
list.php">Job List</a></li>
<li><a
href="employers.php">Employers</a></li>
<li><a
href="employees.php">Employees</a></li>
<li><a
href="contact.php">Contact Us</a></li>
<li><a
href="#">Go to top</a></li>

</ul>

86
</div>

</div>

</div>

<div class="col-sm-12 col-md-3 mt-30-sm">

<h5 class="footer-title">Sierra Jobs Contact</h5>

<p>Address : Institute of Public Admininistration and


Management, University of Sierra Leone</p>
<p>Email : <a
href="mailto:ramadanbah10@gmail.com">ramadanbah10@gmail.com</a></p>
<p>Phone : <a href="tel:+23278221169">+232 78 221
169</a></p>

</div>

</div>

</div>

</div>

<div class="bottom-footer">

<div class="container">

<div class="row">

<div class="col-sm-4 col-md-4">

<p class="copy-right">&#169; Copyright <?php echo


date('Y'); ?> Sierra Jobs</p>

</div>

<div class="col-sm-4 col-md-4">

<ul class="bottom-footer-menu">
<li><a >Developed by L.Bah, Chernor,
Leigh</a></li>
</ul>

</div>

<div class="col-sm-4 col-md-4">


<ul class="bottom-footer-menu for-social">
<li><a href="<?php echo "$tw"; ?>"><i
class="ri ri-twitter" data-toggle="tooltip" data-placement="top" title="twitter"></i></a></li>
<li><a href="<?php echo "$fb"; ?>"><i
class="ri ri-facebook" data-toggle="tooltip" data-placement="top" title="facebook"></i></a></li>
<li><a href="<?php echo "$ig"; ?>"><i
class="ri ri-instagram" data-toggle="tooltip" data-placement="top" title="instagram"></i></a></li>
</ul>
</div>

</div>

</div>

</div>

</footer>

</div>

</div>

<div id="back-to-top">
<a href="#"><i class="ion-ios-arrow-up"></i></a>
</div>

<script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>

87
<script type="text/javascript" src="js/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/bootstrap-modalmanager.js"></script>
<script type="text/javascript" src="js/bootstrap-modal.js"></script>
<script type="text/javascript" src="js/smoothscroll.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/jquery.waypoints.min.js"></script>
<script type="text/javascript" src="js/wow.min.js"></script>
<script type="text/javascript" src="js/jquery.slicknav.min.js"></script>
<script type="text/javascript" src="js/jquery.placeholder.min.js"></script>
<script type="text/javascript" src="js/bootstrap-tokenfield.js"></script>
<script type="text/javascript" src="js/typeahead.bundle.min.js"></script>
<script type="text/javascript" src="js/bootstrap3-wysihtml5.min.js"></script>
<script type="text/javascript" src="js/bootstrap-select.min.js"></script>
<script type="text/javascript" src="js/jquery-filestyle.min.js"></script>
<script type="text/javascript" src="js/bootstrap-select.js"></script>
<script type="text/javascript" src="js/ion.rangeSlider.min.js"></script>
<script type="text/javascript" src="js/handlebars.min.js"></script>
<script type="text/javascript" src="js/jquery.countimator.js"></script>
<script type="text/javascript" src="js/jquery.countimator.wheel.js"></script>
<script type="text/javascript" src="js/slick.min.js"></script>
<script type="text/javascript" src="js/easy-ticker.js"></script>
<script type="text/javascript" src="js/jquery.introLoader.min.js"></script>
<script type="text/javascript" src="js/jquery.responsivegrid.js"></script>
<script type="text/javascript" src="js/customs.js"></script>

</body>

</html>

Job List page


Figure Appendix C1.2

<!doctype html>
<html lang="en">
<?php
include 'constants/settings.php';
include 'constants/check-login.php';
?>
<head>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

88
<title>Sierra Jobs - Login</title>

<meta name="description" content="Online Job Management / Job Portal" />


<meta name="keywords" content="job, work, resume, applicants, application, employee, employer, hire, hiring, human resource management, hr,
online job management, company, worker, career, recruiting, recruitment" />
<meta name="author" content="BwireSoft">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:image" content="http://<?php echo "$actual_link"; ?>/images/banner.jpg" />
<meta property="og:image:secure_url" content="https://<?php echo "$actual_link"; ?>/images/banner.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="500" />
<meta property="og:image:height" content="300" />
<meta property="og:image:alt" content="Sierra Jobs" />
<meta property="og:description" content="Online Job Management / Job Portal" />

<link rel="shortcut icon" href="images/ico/faviconMRB.png">

<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css" media="screen">


<link href="css/animate.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<link href="css/component.css" rel="stylesheet">

<link rel="stylesheet" href="icons/linearicons/style.css">


<link rel="stylesheet" href="icons/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="icons/simple-line-icons/css/simple-line-icons.css">
<link rel="stylesheet" href="icons/ionicons/css/ionicons.css">
<link rel="stylesheet" href="icons/pe-icon-7-stroke/css/pe-icon-7-stroke.css">
<link rel="stylesheet" href="icons/rivolicons/style.css">
<link rel="stylesheet" href="icons/flaticon-line-icon-set/flaticon-line-icon-set.css">
<link rel="stylesheet" href="icons/flaticon-streamline-outline/flaticon-streamline-outline.css">
<link rel="stylesheet" href="icons/flaticon-thick-icons/flaticon-thick.css">
<link rel="stylesheet" href="icons/flaticon-ventures/flaticon-ventures.css">

<link href="css/style.css" rel="stylesheet">


<script type="text/javascript">
function update(str)
{

if(document.getElementById('mymail').value == "")
{
alert("Please enter your email");

}else{
document.getElementById("data").innerHTML = "Please wait...";
var xmlhttp;

if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("data").innerHTML = xmlhttp.responseText;
}
}

xmlhttp.open("GET","app/reset-pw.php?opt="+str, true);
xmlhttp.send();
}

function reset_text()
{
document.getElementById('mymail').value = "";
document.getElementById("data").innerHTML = "";
}

</script>
</head>

<body class="not-transparent-header">

89
<div class="container-wrapper">

<header id="header">

<nav class="navbar navbar-default navbar-fixed-top navbar-sticky-function">

<div class="container">

<div class="logo-wrapper">
<div class="logo">
<a href="./"><img src="images/logoMRB.png" alt="Logo" /></a>
</div>
</div>

<div id="navbar" class="navbar-nav-wrapper navbar-arrow">

<ul class="nav navbar-nav" id="responsive-menu">

<li>

<a href="./">Home</a>

</li>

<li>
<a href="job-list.php">Job List</a>

</li>

<li>
<a href="employers.php">Employers</a>
</li>

<li>
<a href="employees.php">Employees</a>
</li>

<li>
<a href="contact.php">Contact Us</a>
</li>

</ul>

</div>

<div class="nav-mini-wrapper">
<ul class="nav-mini sign-in">
<li><a href="login.php">login</a></li>
<li><a data-toggle="modal" href="#registerModal">register</a></li>
</ul>
</div>

</div>

<div id="slicknav-mobile"></div>

</nav>

<div id="registerModal" class="modal fade login-box-wrapper" tabindex="-1" style="display: none;" data-


backdrop="static" data-keyboard="false" data-replace="true">

<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-
hidden="true">&times;</button>
<h4 class="modal-title text-center">Create your account for free</h4>
</div>

<div class="modal-body">

<div class="row gap-20">

<div class="col-sm-6 col-md-6">


<a href="register.php?p=Employer" class="btn btn-facebook btn-
block mb-5-xs">Register as Employer</a>
</div>
<div class="col-sm-6 col-md-6">
<a href="register.php?p=Employee" class="btn btn-facebook btn-
block mb-5-xs">Register as Employee</a>

90
</div>

</div>

</div>

<div class="modal-footer text-center">


<button type="button" data-dismiss="modal" class="btn btn-primary btn-
inverse">Close</button>
</div>

</div>

</header>

<div class="main-wrapper">

<div class="breadcrumb-wrapper">

<div class="container">

<ol class="breadcrumb-list">
<li><a href="./">Home</a></li>
<li><span>Access your account</span></li>
</ol>

</div>

</div>

<div class="login-container-wrapper">

<div class="container">

<div class="row">

<div class="col-md-10 col-md-offset-1">

<div class="row">

<div class="col-sm-6 col-sm-offset-3">


<?php
include 'constants/check_reply.php';
?>
<form name="frm" action="app/auth.php" method="POST" autocomplete="off">
<div class="login-box-wrapper">

<div class="modal-header">
<h4 class="modal-title text-center">Access your account</h4>
</div>

<div class="modal-body">

<div class="row gap-20">

<div class="col-sm-12 col-md-12">

<div class="form-group">
<label>Email Address</label>
<input class="form-control" placeholder="Enter your email address" name="email" required type="text">
</div>

</div>

<div class="col-sm-12 col-md-12">

<div class="form-group">
<label>Password</label>
<input class="form-control" placeholder="Enter your password" name="password" required type="password">
</div>

</div>

91
<div class="col-sm-12 col-md-12">
<div class="login-box-link-action">
<a data-toggle="modal" onclick = "reset_text()"
href="#forgotPasswordModal">Forgot password?</a>
</div>
</div>

</div>

</div>

<div class="modal-footer text-center">


<button type="submit" class="btn btn-primary">Login</button>
</div>

</div>
</form>

<div
id="forgotPasswordModal" class="modal fade login-box-wrapper" tabindex="-1" style="display: none;" data-backdrop="static" data-keyboard="false" data-
replace="true">

<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-
hidden="true">&times;</button>
<h4 class="modal-title text-center">Restore your forgotten password</h4>
</div>

<div class="modal-body">
<div class="row gap-20">

<div class="col-sm-12 col-md-12">


<p class="mb-20">Enter the email address associated to your account,
we will send you the link to reset your password</p>
</div>

<div class="col-sm-12 col-md-12">

<div class="form-group">

<label>Email Address</label>
<input id="mymail" autocomplete="off" name="email"
class="form-control" placeholder="Enter your email address" type="email" required>
</div>

</div>

<div class="col-sm-12 col-md-12">


<div class="login-box-box-action">
Return to <a data-dismiss="modal">Log-in</a>
<p id="data"></p>
</div>

</div>

</div>
</div>

<div class="modal-footer text-center">


<button onclick="update(mymail.value)" type="submit" class="btn btn-
primary">Restore</button>
<button type="button" data-dismiss="modal" class="btn btn-primary btn-
inverse">Close</button>
</div>

</div>

</div>

</div>

</div>

92
</div>

</div>

Login Page
Figure Appendix C1.3

<!doctype html>
<html lang="en">
<?php
include 'constants/settings.php';
include 'constants/check-login.php';
?>
<head>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Sierra Jobs - Login</title>

<meta name="description" content="Online Job Management / Job Portal" />


<meta name="keywords" content="job, work, resume, applicants, application, employee, employer, hire, hiring, human resource
management, hr, online job management, company, worker, career, recruiting, recruitment" />
<meta name="author" content="BwireSoft">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:image" content="http://<?php echo "$actual_link"; ?>/images/banner.jpg" />
<meta property="og:image:secure_url" content="https://<?php echo "$actual_link"; ?>/images/banner.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="500" />
<meta property="og:image:height" content="300" />
<meta property="og:image:alt" content="Sierra Jobs" />
<meta property="og:description" content="Online Job Management / Job Portal" />

<link rel="shortcut icon" href="images/ico/faviconMRB.png">

<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css" media="screen">


<link href="css/animate.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<link href="css/component.css" rel="stylesheet">

<link rel="stylesheet" href="icons/linearicons/style.css">

93
<link rel="stylesheet" href="icons/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="icons/simple-line-icons/css/simple-line-icons.css">
<link rel="stylesheet" href="icons/ionicons/css/ionicons.css">
<link rel="stylesheet" href="icons/pe-icon-7-stroke/css/pe-icon-7-stroke.css">
<link rel="stylesheet" href="icons/rivolicons/style.css">
<link rel="stylesheet" href="icons/flaticon-line-icon-set/flaticon-line-icon-set.css">
<link rel="stylesheet" href="icons/flaticon-streamline-outline/flaticon-streamline-outline.css">
<link rel="stylesheet" href="icons/flaticon-thick-icons/flaticon-thick.css">
<link rel="stylesheet" href="icons/flaticon-ventures/flaticon-ventures.css">

<link href="css/style.css" rel="stylesheet">


<script type="text/javascript">
function update(str)
{

if(document.getElementById('mymail').value == "")
{
alert("Please enter your email");

}else{
document.getElementById("data").innerHTML = "Please wait...";
var xmlhttp;

if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("data").innerHTML = xmlhttp.responseText;
}
}

xmlhttp.open("GET","app/reset-pw.php?opt="+str, true);
xmlhttp.send();
}

function reset_text()
{
document.getElementById('mymail').value = "";
document.getElementById("data").innerHTML = "";
}

</script>
</head>

<body class="not-transparent-header">

<div class="container-wrapper">

<header id="header">

<nav class="navbar navbar-default navbar-fixed-top navbar-sticky-function">

<div class="container">

<div class="logo-wrapper">
<div class="logo">

94
<a href="./"><img src="images/logoMRB.png" alt="Logo"
/></a>
</div>
</div>

<div id="navbar" class="navbar-nav-wrapper navbar-arrow">

<ul class="nav navbar-nav" id="responsive-menu">

<li>

<a href="./">Home</a>

</li>

<li>
<a href="job-list.php">Job List</a>

</li>

<li>
<a href="employers.php">Employers</a>
</li>

<li>
<a href="employees.php">Employees</a>
</li>

<li>
<a href="contact.php">Contact Us</a>
</li>

</ul>

</div>

<div class="nav-mini-wrapper">
<ul class="nav-mini sign-in">
<li><a href="login.php">login</a></li>
<li><a data-toggle="modal"
href="#registerModal">register</a></li>
</ul>
</div>

</div>

<div id="slicknav-mobile"></div>

</nav>

<div id="registerModal" class="modal fade login-box-wrapper" tabindex="-1" style="display: none;"


data-backdrop="static" data-keyboard="false" data-replace="true">

<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-
hidden="true">&times;</button>
<h4 class="modal-title text-center">Create your account for free</h4>
</div>

<div class="modal-body">

<div class="row gap-20">

<div class="col-sm-6 col-md-6">


<a href="register.php?p=Employer" class="btn btn-facebook
btn-block mb-5-xs">Register as Employer</a>
</div>
<div class="col-sm-6 col-md-6">
<a href="register.php?p=Employee" class="btn btn-facebook
btn-block mb-5-xs">Register as Employee</a>

95
</div>

</div>

</div>

<div class="modal-footer text-center">


<button type="button" data-dismiss="modal" class="btn btn-primary btn-
inverse">Close</button>
</div>

</div>

</header>

<div class="main-wrapper">

<div class="breadcrumb-wrapper">

<div class="container">

<ol class="breadcrumb-list">
<li><a href="./">Home</a></li>
<li><span>Access your account</span></li>
</ol>

</div>

</div>

<div class="login-container-wrapper">

<div class="container">

<div class="row">

<div class="col-md-10 col-md-offset-1">

<div class="row">

<div class="col-sm-6 col-sm-offset-3">


<?php
include 'constants/check_reply.php';
?>
<form name="frm" action="app/auth.php" method="POST" autocomplete="off">
<div class="login-box-wrapper">

<div class="modal-header">
<h4 class="modal-title text-center">Access your account</h4>
</div>

<div class="modal-body">

<div class="row gap-20">

<div class="col-sm-12 col-md-12">

<div class="form-group">
<label>Email Address</label>
<input class="form-control" placeholder="Enter your email address" name="email" required type="text">
</div>

96
</div>

<div class="col-sm-12 col-md-12">

<div class="form-group">
<label>Password</label>
<input class="form-control" placeholder="Enter your password" name="password" required type="password">
</div>

</div>

<div class="col-sm-12 col-md-12">


<div class="login-box-link-action">
<a data-toggle="modal" onclick = "reset_text()"
href="#forgotPasswordModal">Forgot password?</a>
</div>
</div>

</div>

</div>

<div class="modal-footer text-center">


<button type="submit" class="btn btn-primary">Login</button>
</div>

</div>
</form>

<div
id="forgotPasswordModal" class="modal fade login-box-wrapper" tabindex="-1" style="display: none;" data-backdrop="static" data-
keyboard="false" data-replace="true">

<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-
hidden="true">&times;</button>
<h4 class="modal-title text-center">Restore your forgotten password</h4>
</div>

<div class="modal-body">
<div class="row gap-20">

<div class="col-sm-12 col-md-12">


<p class="mb-20">Enter the email address associated to your
account, we will send you the link to reset your password</p>
</div>

<div class="col-sm-12 col-md-12">

<div class="form-group">

<label>Email Address</label>
<input id="mymail" autocomplete="off"
name="email" class="form-control" placeholder="Enter your email address" type="email" required>
</div>

</div>

<div class="col-sm-12 col-md-12">


<div class="login-box-box-action">
Return to <a data-dismiss="modal">Log-in</a>
<p id="data"></p>
</div>

97
</div>

</div>
</div>

<div class="modal-footer text-center">


<button onclick="update(mymail.value)" type="submit" class="btn btn-
primary">Restore</button>
<button type="button" data-dismiss="modal" class="btn btn-primary btn-
inverse">Close</button>
</div>

</div>

</div>

</div>

</div>

</div>

</div>

</div>

Employer Dashboard
Figure Appendix C 1.4:

<!doctype html>
<html lang="en">
<?php
include '../constants/settings.php';
include 'constants/check-login.php';

if ($user_online == "true") {
if ($myrole == "employer") {
}else{
header("location:../");
}
}else{
header("location:../");
}
?>

98
<head>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Sierra Jobs - Company Profile</title>


<meta name="description" content="Online Job Management / Job Portal" />
<meta name="keywords" content="job, work, resume, applicants, application, employee, employer, hire, hiring, human resource management, hr,
online job management, company, worker, career, recruiting, recruitment" />
<meta name="author" content="BwireSoft">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:image" content="http://<?php echo "$actual_link"; ?>/images/banner.jpg" />
<meta property="og:image:secure_url" content="https://<?php echo "$actual_link"; ?>/images/banner.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="500" />
<meta property="og:image:height" content="300" />
<meta property="og:image:alt" content="Bwire Jobs" />
<meta property="og:description" content="Online Job Management / Job Portal" />

<link rel="shortcut icon" href="../images/ico/faviconMRB.png">

<link rel="stylesheet" type="text/css" href="../bootstrap/css/bootstrap.min.css" media="screen">


<link href="../css/animate.css" rel="stylesheet">
<link href="../css/main.css" rel="stylesheet">
<link href="../css/component.css" rel="stylesheet">

<link rel="stylesheet" href="../icons/linearicons/style.css">


<link rel="stylesheet" href="../icons/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../icons/simple-line-icons/css/simple-line-icons.css">
<link rel="stylesheet" href="../icons/ionicons/css/ionicons.css">
<link rel="stylesheet" href="../icons/pe-icon-7-stroke/css/pe-icon-7-stroke.css">
<link rel="stylesheet" href="../icons/rivolicons/style.css">
<link rel="stylesheet" href="../icons/flaticon-line-icon-set/flaticon-line-icon-set.css">
<link rel="stylesheet" href="../icons/flaticon-streamline-outline/flaticon-streamline-outline.css">
<link rel="stylesheet" href="../icons/flaticon-thick-icons/flaticon-thick.css">
<link rel="stylesheet" href="../icons/flaticon-ventures/flaticon-ventures.css">

<link href="../css/style.css" rel="stylesheet">

</head>

<body class="not-transparent-header">

<div class="container-wrapper">

<header id="header">

<nav class="navbar navbar-default navbar-fixed-top navbar-sticky-function">

<div class="container">

<div class="logo-wrapper">
<div class="logo">
<a href="../"><img src="../images/logoMRB.png" alt="Logo" /></a>
</div>
</div>

<div id="navbar" class="navbar-nav-wrapper navbar-arrow">

<ul class="nav navbar-nav" id="responsive-menu">

<li>

<a href="../">Home</a>

</li>

<li>
<a href="../job-list.php">Job List</a>

</li>

<li>
<a href="../employers.php">Employers</a>
</li>

<li>
<a href="../employees.php">Employees</a>

99
</li>

<li>
<a href="../contact.php">Contact Us</a>
</li>

</ul>

</div>

<div class="nav-mini-wrapper">
<ul class="nav-mini sign-in">
<li><a href="../logout.php">logout</a></li>
<li><a href="./">Profile</a></li>
</ul>
</div>

</div>

<div id="slicknav-mobile"></div>

</nav>

</header>

<div class="main-wrapper">

<div class="breadcrumb-wrapper">

<div class="container">

<ol class="breadcrumb-list booking-step">


<li><a href="../">Sierra Jobs</a></li>
<li><span>Profile</span></li>
</ol>

</div>

</div>

<div class="admin-container-wrapper">

<div class="container">

<div class="GridLex-gap-15-wrappper">

<div class="GridLex-grid-noGutter-equalHeight">

<div class="GridLex-col-3_sm-4_xs-12">

<div class="admin-sidebar">

<div class="admin-user-item for-employer">

<div class="image">
<?php
if ($logo == null) {
print '<center>Company Logo
Here</center>';
}else{
echo '<center><img
alt="image" title="'.$compname.'" width="180" height="100" src="data:image/jpeg;base64,'.base64_encode($logo).'"/></center>';
}
?><br>
</div>

<h4><?php echo "$compname";


?></h4>

</div>

<div class="admin-user-action text-center">

<a href="post-job.php"
class="btn btn-primary btn-sm btn-inverse">Post a Job</a>

</div>

100
<ul class="admin-user-menu clearfix">
<li class="active">
<a href="./"><i
class="fa fa-user"></i> Profile</a>
</li>
<li class="">
<a href="change-
password.php"><i class="fa fa-key"></i> Change Password</a>
</li>

<li>
<a
href="../company.php?ref=<?php echo "$myid"; ?>"><i class="fa fa-briefcase"></i> Company Overview</a>
</li>
<li>
<a href="my-
jobs.php"><i class="fa fa-bookmark"></i> Posted Jobs</a>
</li>
<li>
<a
href="../logout.php"><i class="fa fa-sign-out"></i> Logout</a>
</li>
</ul>

</div>

</div>

<div class="GridLex-col-9_sm-8_xs-12">

<div class="admin-content-wrapper">

<div class="admin-section-title">

<h2>Profile</h2>
<p>Your last loged-in: <span
class="text-primary"><?php echo "$mylogin"; ?></span></p>

</div>

<form class="post-form-wrapper"
action="app/update-profile.php" method="POST" autocomplete="off">

<div class="row
gap-20">
<?php
include 'constants/check_reply.php'; ?>
<div
class="clear"></div>

<div
class="col-sm-12 col-md-8">

<div class="form-group">

<label>Company Name</label>

<input name="company" placeholder="Enter company name" type="text" class="form-control" value="<?php echo "$compname";
?>" required>

</div>

</div>
<div
class="clear"></div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Established In</label>
<input name="year" placeholder="Enter year eg: 2016, 2017, 2018" type="text" class="form-control" value="<?php echo
"$esta"; ?>" required>

</div>

101
</div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Type</label>
<input class="form-control" placeholder="Eg: Booking, Travel" name="type" required type="text" value="<?php echo
"$mytitle"; ?>" required>

</div>

</div>

<div
class="clear"></div>

<div
class="form-group">

<div class="col-sm-6 col-md-4">

<label>People</label>

<select name="people" required class="selectpicker show-tick form-control mb-15" data-live-search="false">

<option <?php if ($mypeople == "1-10") { print ' selected '; } ?> value="1-10">1-10</option>

<option <?php if ($mypeople == "11-100") { print ' selected '; } ?> value="11-100">11-100</option>

<option <?php if ($mypeople == "200+") { print ' selected '; } ?> value="200+" >200+</option>

<option <?php if ($mypeople == "300+") { print ' selected '; } ?> value="300+">300+</option>

<option <?php if ($mypeople == "1000+") { print ' selected '; } ?>value="1000+">1000+ </option>

</select>

</div>

<div class="col-sm-6 col-md-4">

<label>Website</label>

<input type="text" class="form-control" value="<?php echo "$myweb"; ?>" name="web" placeholder="Enter your website">

</div>

</div>

<div
class="clear"></div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>City/town</label>

<input name="city" required type="text" class="form-control" value="<?php echo "$city"; ?>" placeholder="Enter your city">

</div>

</div>

<div
class="col-sm-6 col-md-4">

102
<div class="form-group">

<label>Street</label>

<input name="street" required type="text" class="form-control" value="<?php echo "$street"; ?>" placeholder="Enter your street">

</div>

</div>

<div
class="clear"></div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Zip Code</label>

<input name="zip" required type="text" class="form-control" value="<?php echo "$zip"; ?>" placeholder="Enter your zip">

</div>

</div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>District Head Office</label>

<select name="country" required class="selectpicker show-tick form-control" data-live-search="true">

<option disabled value="">Select</option>


<?php

require '../constants/db_config.php';

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $conn->prepare("SELECT * FROM tbl_countries ORDER BY country_name");


$stmt->execute();
$result = $stmt->fetchAll();

foreach($result as $row)
{
?> <option <?php if ($country == $row['country_name']) { print ' selected '; } ?> value="<?php echo
$row['country_name']; ?>"><?php echo $row['country_name']; ?></option> <?php

}catch(PDOException $e)
{

?>

</select>

</div>

</div>

<div
class="clear"></div>

103
<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Phone Number</label>

<input type="text" name="phone" required class="form-control" value="<?php echo "$myphone"; ?>" placeholder="Enter your
phone">

</div>

</div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Email Address</label>

<input type="email" name="email" required class="form-control" value="<?php echo "$mymail"; ?>" placeholder="Enter your
email">

</div>

</div>

<div
class="clear"></div>

<div
class="clear"></div>

<div
class="col-sm-12 col-md-12">

<div class="form-group bootstrap3-wysihtml5-wrapper">

<label>Company background</label>

<textarea name="background" class="bootstrap3-wysihtml5 form-control" placeholder="Enter company background ..."


style="height: 200px;"><?php echo "$desc"; ?></textarea>

</div>

</div>

<div
class="clear"></div>

<div
class="col-sm-12 col-md-12">

<div class="form-group bootstrap3-wysihtml5-wrapper">

<label>Services</label>

<textarea name="services" class="bootstrap3-wysihtml5 form-control" placeholder="Enter company services ..." style="height:


200px;"><?php echo "$myserv"; ?></textarea>

</div>

</div>

<div
class="clear"></div>

104
<div
class="col-sm-12 col-md-12">

<div class="form-group bootstrap3-wysihtml5-wrapper">

<label>Expertise</label>

<textarea name="expertise" class="bootstrap3-wysihtml5 form-control" placeholder="Enter company expertise ..." style="height:


200px;"><?php echo "$myex"; ?></textarea>

</div>

</div>

<div
class="clear"></div>

<div
class="col-sm-12 mt-10">

<button type="submit" class="btn btn-primary">Save</button>

<button type="reset" class="btn btn-warning">Cancel</button>


</div>

</div>

</form><br>

<form action="app/new-
dp.php" method="POST" enctype="multipart/form-data">
<div class="row gap-20">
<div class="col-sm-12 col-md-
12">

<div class="form-group
bootstrap3-wysihtml5-wrapper">
<label>Company Logo</label>
<input accept="image/*"
type="file" name="image" required >
</div>

</div>

<div class="clear"></div>

<div class="col-sm-12 mt-10">


<button type="submit"
class="btn btn-primary">Update</button>
<?php
if ($logo == null) {

}else{
?><a onclick = "return
confirm('Are you sure you want to delete your logo ?')" class="btn btn-primary btn-inverse" href="app/drop-dp.php">Delete</a> <?php
}
?>
</div>
</div>
</form>

</div>

</div>

</div>

</div>

</div>

</div>

105
Employee Dashboard
Figure Appendix C 1.5:
!doctype html>
<html lang="en">
<?php
require '../constants/settings.php';
require 'constants/check-login.php';

if ($user_online == "true") {
if ($myrole == "employee") {
}else{
header("location:../");
}
}else{
header("location:../");
}
?>
<head>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Sierra Jobs - Employee Profile</title>


<meta name="description" content="Online Job Management / Job Portal" />
<meta name="keywords" content="job, work, resume, applicants, application, employee, employer, hire, hiring, human resource
management, hr, online job management, company, worker, career, recruiting, recruitment" />
<meta name="author" content="BwireSoft">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:image" content="http://<?php echo "$actual_link"; ?>/images/banner.jpg" />
<meta property="og:image:secure_url" content="https://<?php echo "$actual_link"; ?>/images/banner.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="500" />
<meta property="og:image:height" content="300" />
<meta property="og:image:alt" content="Sierra Jobs" />
<meta property="og:description" content="Online Job Management / Job Portal" />

<link rel="shortcut icon" href="../images/ico/faviconMRB.png">

<link rel="stylesheet" type="text/css" href="../bootstrap/css/bootstrap.min.css" media="screen">


<link href="../css/animate.css" rel="stylesheet">
<link href="../css/main.css" rel="stylesheet">
<link href="../css/component.css" rel="stylesheet">

<link rel="stylesheet" href="../icons/linearicons/style.css">


<link rel="stylesheet" href="../icons/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../icons/simple-line-icons/css/simple-line-icons.css">
<link rel="stylesheet" href="../icons/ionicons/css/ionicons.css">
<link rel="stylesheet" href="../icons/pe-icon-7-stroke/css/pe-icon-7-stroke.css">
<link rel="stylesheet" href="../icons/rivolicons/style.css">
<link rel="stylesheet" href="../icons/flaticon-line-icon-set/flaticon-line-icon-set.css">
<link rel="stylesheet" href="../icons/flaticon-streamline-outline/flaticon-streamline-outline.css">
<link rel="stylesheet" href="../icons/flaticon-thick-icons/flaticon-thick.css">
<link rel="stylesheet" href="../icons/flaticon-ventures/flaticon-ventures.css">

<link href="../css/style.css" rel="stylesheet">

</head>
<style>

.autofit2 {
height:80px;
width:100px;
object-fit:cover;
}

</style>

<body class="not-transparent-header">

<div class="container-wrapper">

<header id="header">

<nav class="navbar navbar-default navbar-fixed-top navbar-sticky-function">

<div class="container">

106
<div class="logo-wrapper">
<div class="logo">
<a href="../"><img src="../images/logoMRB.png" alt="Logo"
/></a>
</div>
</div>

<div id="navbar" class="navbar-nav-wrapper navbar-arrow">

<ul class="nav navbar-nav" id="responsive-menu">

<li>

<a href="../">Home</a>

</li>

<li>
<a href="../job-list.php">Job List</a>

</li>

<li>
<a href="../employers.php">Employers</a>
</li>

<li>
<a href="../employees.php">Employees</a>
</li>

<li>
<a href="../contact.php">Contact Us</a>
</li>

</ul>

</div>

<div class="nav-mini-wrapper">
<ul class="nav-mini sign-in">
<li><a href="../logout.php">logout</a></li>
<li><a href="./">Profile</a></li>
</ul>
</div>

</div>

<div id="slicknav-mobile"></div>

</nav>

</header>

<div class="main-wrapper">

<div class="breadcrumb-wrapper">

<div class="container">

<ol class="breadcrumb-list booking-step">


<li><a href="../">Sierra Jobs</a></li>
<li><span>Profile</span></li>
</ol>

</div>

</div>

<div class="admin-container-wrapper">

<div class="container">

<div class="GridLex-gap-15-wrappper">

<div class="GridLex-grid-noGutter-equalHeight">

<div class="GridLex-col-3_sm-4_xs-12">

107
<div class="admin-sidebar">

<div class="admin-user-item">
<div class="image">

<?php
if ($myavatar == null) {
print '<center><img
class="img-circle autofit2" src="../images/default.jpg" title="'.$myfname.'" alt="image" /></center>';
}else{
echo '<center><img
class="img-circle autofit2" alt="image" title="'.$myfname.'" src="data:image/jpeg;base64,'.base64_encode($myavatar).'"/></center>';
}
?>
</div>
<br>

<h4><?php echo
"$myfname"; ?> <?php echo "$mylname"; ?></h4>
<p class="user-role"><?php
echo "$mytitle"; ?></p>

</div>

<div class="admin-user-action text-


center">

<a target="_blank"
href="my_cv" class="btn btn-primary btn-sm btn-inverse">View my CV</a>

</div>

<ul class="admin-user-menu clearfix">


<li class="active">
<a href="./"><i
class="fa fa-user"></i> Profile</a>
</li>
<li class="">
<a href="change-
password.php"><i class="fa fa-key"></i> Change Password</a>
</li>
<li>
<a
href="qualifications.php"><i class="fa fa-trophy"></i> Professional Qualifications</a>
</li>
<li>
<a
href="language.php"><i class="fa fa-language"></i> Language Proficiency</a>
</li>
<li>
<a
href="training.php"><i class="fa fa-gears"></i> Training & Workshop</a>
</li>

<li>
<a
href="referees.php"><i class="fa fa-users"></i> Referees</a>
</li>
<li>
<a
href="academic.php"><i class="fa fa-graduation-cap"></i> Academic Qualifications</a>
</li>
<li>
<a
href="experience.php"><i class="fa fa-briefcase"></i> Working Experience</a>
</li>
<li>
<a
href="attachments.php"><i class="fa fa-folder-open"></i> Other Attachments</a>
</li>
<li>
<a href="applied-
jobs.php"><i class="fa fa-bookmark"></i> Applied Jobs</a>
</li>
<li>
<a
href="../logout.php"><i class="fa fa-sign-out"></i> Logout</a>
</li>
</ul>

108
</div>

</div>

<div class="GridLex-col-9_sm-8_xs-12">

<div class="admin-content-wrapper">

<div class="admin-section-title">

<h2>Profile</h2>
<p>Your last loged-in: <span
class="text-primary"><?php echo "$mylogin"; ?></span></p>

</div>

<form class="post-form-wrapper"
action="app/update-profile.php" method="POST" autocomplete="off">

<div class="row
gap-20">
<?php require
'constants/check_reply.php'; ?>

<div
class="clear"></div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>First Name</label>

<input name="fname" required type="text" class="form-control" value="<?php echo "$myfname"; ?>" placeholder="Enter
your first name">

</div>

</div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Last Name</label>

<input name="lname" required type="text" class="form-control" value="<?php echo "$mylname"; ?>" placeholder="Enter
your last name">

</div>

</div>

<div
class="clear"></div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Born</label>

<div class="row gap-5">

<div class="col-xs-3 col-sm-3">

<select name="date" required class="selectpicker form-control" data-live-search="false">

<option disabled value="">day</option>


<?php
$x = 1;

109
while($x <= 31) {

if ($x < 10) {

$x = "0$x";

print '<option '; if ($mydate == $x ) { print ' selected '; } print ' value="'.$x.'">'.$x.'</option>';

}else{

print '<option '; if ($mydate == $x ) { print ' selected '; } print ' value="'.$x.'">'.$x.'</option>';

}
$x++;
}
?>

</select>

</div>

<div class="col-xs-5 col-sm-5">

<select name="month" required class="selectpicker form-control" data-live-search="false">


<?php
$x = 1;

while($x <= 12) {

if ($x < 10) {

$x = "0$x";

print '<option '; if ($mymonth == $x ) { print ' selected '; } print ' value="'.$x.'">'.$x.'</option>';

}else{

print '<option '; if ($mymonth == $x ) { print ' selected '; } print ' value="'.$x.'">'.$x.'</option>';

}
$x++;
}
?>

</select>

</div>

<div class="col-xs-4 col-sm-4">

<select name="year" class="selectpicker form-control" data-live-search="false">

<?php
$x = date('Y');
$yr = 60;

$y2 = $x - $yr;
while($x > $y2) {

print '<option '; if ($myyear == $x ) { print ' selected '; } print ' value="'.$x.'">'.$x.'</option>';
$x = $x - 1;
}
?>

</select>

</div>

</div>

</div>

</div>

110
<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Email</label>

<input type="email" name="email" required class="form-control" value="<?php echo "$myemail"; ?>" placeholder="Enter
your email address">

</div>

</div>

<div
class="clear"></div>

<div
class="form-group">

<div class="col-sm-12">

<label>Education Level</label>

</div>

<div class="col-sm-6 col-md-4">


<input value="<?php echo "$myedu"; ?>" name="education" type="text" required class="form-control"
placeholder="Eg: Diploma, Degree...etc">

</div>

<div class="col-sm-6 col-md-4">

<input value="<?php echo "$mytitle"; ?>" name="title" required type="text" class="form-control mb-15" placeholder="Eg:
Computer Science, IT...etc">

</div>

</div>

<div
class="clear"></div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Gender</label>

<select name="gender" required class="selectpicker show-tick form-control" data-live-search="false">

<option disabled value="">Select</option>

<option <?php if ($mygender == "Male") { print ' selected '; } ?> value="Male">Male</option>

<option <?php if ($mygender == "Female") { print ' selected '; } ?>value="Female">Female</option>

</select>

</div>

</div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

111
<label>City/town</label>

<input name="city" required type="text" class="form-control" value="<?php echo "$mycity"; ?>">

</div>

</div>

<div
class="clear"></div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Street</label>

<input name="street" required type="text" class="form-control" value="<?php echo "$mystreet"; ?>">

</div>

</div>
<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Constituency</label>

<input name="zip" required type="text" class="form-control" value="<?php echo "$myzip"; ?>">

</div>

</div>

<div
class="clear"></div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>District</label>

<select name="country" required class="selectpicker show-tick form-control" data-live-search="true">

<option disabled value="">Select</option>


<?php

require '../constants/db_config.php';

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $conn->prepare("SELECT * FROM tbl_countries ORDER BY country_name");


$stmt->execute();
$result = $stmt->fetchAll();

foreach($result as $row)
{
?> <option <?php if ($mycountry == $row['country_name']) { print ' selected '; } ?>
value="<?php echo $row['country_name']; ?>"><?php echo $row['country_name']; ?></option> <?php

112
}catch(PDOException $e)
{

?>

</select>

</div>

</div>

<div
class="col-sm-6 col-md-4">

<div class="form-group">

<label>Phone Number</label>

<input type="text" name="phone" required class="form-control" value="<?php echo "$myphone"; ?>">

</div>

</div>

<div
class="clear"></div>

<div
class="col-sm-12 col-md-12">

<div class="form-group bootstrap3-wysihtml5-wrapper">

<label>About me</label>

<textarea name="about" class="bootstrap3-wysihtml5 form-control" placeholder="Enter your short description ..."


style="height: 200px;"><?php echo "$mydesc"; ?></textarea>

</div>

</div>

<div
class="clear"></div>

<div
class="col-sm-12 mt-10">

<button type="submit" class="btn btn-primary">Update</button>

<button type="reset" class="btn btn-primary btn-inverse">Cancel</button>


</div>

</div>

</form><br>

<form action="app/new-
dp.php" method="POST" enctype="multipart/form-data">
<div class="row gap-20">
<div class="col-sm-12 col-md-
12">

<div class="form-group
bootstrap3-wysihtml5-wrapper">
<label>Display Image</label>
<input accept="image/*"
type="file" name="image" required >
</div>

113
</div>

<div class="clear"></div>

<div class="col-sm-12 mt-


10">
<button type="submit"
class="btn btn-primary">Update</button>
<?php
if ($myavatar == null) {

}else{
?><a onclick = "return
confirm('Are you sure you want to delete your avatar ?')" class="btn btn-primary btn-inverse" href="app/drop-dp.php">Delete</a> <?php
}
?>
</div>
</div>
</form>

</div>

</div>

</div>

</div>

</div>

</div>

114

You might also like