Samrat Updated 4
Samrat Updated 4
[CSC 412]
A project report submitted for the partial fulfillment of the requirement for the degree of
Bachelor of Science in Computer Science & Information Technology
awarded by Tribhuvan University.
Submitted By
Submitted To
College of Applied Business
We would like to express our gratitude to all the individuals for providing all the
necessary support and friendly environment for the successful completion of the project.
We are grateful to College of Applied Business for guidance and supervision.
We would like to express our profound thanks to our project supervisor Mr. Santosh
Sharma who took keen interest in our project and guided us as throughout the entire
project by providing necessary ideas, information and knowledge for developing
“Codersplace”. We would like to thank Mr. Tekendra Nath Yogi and Mr. Indra
Chaudhary for their encouragement and guidance towards the making of this report as
per the standard.
Further on, we are thankful and fortunate enough to get constant support from our
colleagues and teaching staff of B.Sc. CSIT Department who helped us to complete our
project. We would also like to extend our regards to all the non-teaching staff of B.Sc.
CSIT department for their time and support.
To sum up, with immense please, our project group presenting “Codersplace” as part of
the curriculum of “Bachelor’s degree in Computer Science and Information Technology”
would like to thank all the people who gave us an unending support.
i
ABSTRACT
The rise of information technology and the spread of the internet has made an enormous
impact in every industry. In Nepal, it’s quite difficult for the tech background job seekers
to find the job according to their expertise. In order to solve this problem "Codersplace"
has been developed which is a web application where user especially having tech
background can have their own profile related to their experiences, skills and showcase
their portfolio. "Codersplace" is a platform for the tech enthusiast and professional where
they can find the suitable job as per their skills. The user needs to fill the registration form
to get the login details and this system will suggest best job vacancy for them on their
dashboard. The content- based recommender have been implemented in Python to
illustrate the concept of content-based recommendation. Cosine similarity measures the
similarity between two vectors of an inner product space. It is measured by the cosine of
the angle between two vectors and determines whether two vectors are pointing in
roughly the same direction. It is often used to measure document similarity in text
analysis.
Keywords: Recommendation System, Codersplace, Content Based Filtering, Cosine
Similarity.
ii
TABLE OF CONTENTS
ACKNOWLEDGEMENT....................................................................................................i
ABSTRACT.........................................................................................................................ii
LIST OF TABLES...............................................................................................................v
LIST OF FIGURES...........................................................................................................vii
LIST OF ABBREVIATIONS...........................................................................................viii
CHAPTER 1.........................................................................................................................1
INTRODUCTION................................................................................................................1
1.1 Introduction....................................................................................................................1
1.3 Objectives.......................................................................................................................2
1.4 Limitations.....................................................................................................................2
CHAPTER 2.........................................................................................................................5
CHAPTER 3.........................................................................................................................7
SYSTEM ANALYSIS.........................................................................................................7
3.1.3 Analysis.......................................................................................................................9
Structured Approach............................................................................................................9
iii
CHAPTER 4.......................................................................................................................13
SYSTEM DESIGN............................................................................................................13
4.1 Design..........................................................................................................................13
CHAPTER 5.......................................................................................................................17
5.1 Implementation............................................................................................................17
5.2 Testing..........................................................................................................................19
CHAPTER 6.......................................................................................................................23
6.1 Conclusion....................................................................................................................23
REFERENCES...................................................................................................................24
APPENDIX........................................................................................................................25
iv
LIST OF TABLES
Table 5.1: Test Case for User Registration........................................................................19
Table 5.2: Test Case for User Login..................................................................................20
Table 5.3: Test Case for Admin Login...............................................................................20
Table 5.4: Test Case for Job Search...................................................................................21
Table 5.5: Test Case for Job Category Browsing...............................................................21
Table 5.6: Test Case for Add User Profile.........................................................................21
Table 5.7: Test Case for Job Recommendation..................................................................22
v
LIST OF FIGURES
Figure 1. 1: Waterfall Model................................................................................................3
Figure 3. 1:Use case diagram for Codersplace.....................................................................8
Figure 3. 2: ER Diagram of Codersplace...........................................................................10
Figure 3. 3: Level 0 DFD of Codersplace..........................................................................10
Figure 3. 4: Level 1 DFD of Codersplace..........................................................................11
Figure 3. 5: Level 2 DFD of Codersplace..........................................................................11
Figure 3. 6: Sequence Diagram..........................................................................................12
Figure 4. 1: Relational Data Model of Codersplace...........................................................13
vi
LIST OF ABBREVIATIONS
vii
CHAPTER 1
INTRODUCTION
1.1 Introduction
There are tons of vacancy available on the internet nowadays but it’s hard to identify
which one is trustworthy and reliable. It gets really confusing and frustrating at
times. The problem is alleviated by recommender systems. These are the systems that are
designed to recommend things to user based on many different factors (like preference,
utility, etc.). These systems predict the most likely product that the users are most likely
interested in. Codersplace is a web application that identifies and provides a list of
jobs which are available based on the registered user’s profile. This system is designed to
recommend best job vacancy and well-skilled candidates for that particular job. In
context of Nepal, there are different websites and forums which provides information
about the job. But sometimes this information is incomplete, unreliable and biased. The
candidates are unable to make best decision. Either they have to make a physical visit or
make a choice based on limited information.
This system will collect data about candidates based on their different aspects like skills,
knowledge, experiences etc. and job vacancy of the companies. The user can access this
information and make best choices for themselves.
In this project, content-based filtering is applied to extract the required information in an
efficient manner. Cosine Similarity algorithm is used which may be taken as an important
basis to recommend the best suitable jobs for the coders. It is a tedious job searching the
best jobs of the companies due to lack of articulate information about them. It also
consumes lot of time. Recommender Systems (RSs) are software tools and techniques
providing suggestions for items to be of use to a user. The suggestions relate to various
decision-making processes. Therefore, this project focuses on proposing a system where
candidates can showcase their portfolio and explore the job vacancies especially related to
information and technology and also view the recommended jobs.
1
know about the office or a company, from this site they can get the job according to their
skills.
Many IT enthusiasts are seeking for a job but they don’t know where to search. They have
to visit each and every office to find a job in their particular field. Searching for suitable
jobs for tech background persons is somehow a complicated task. It is difficult to go in
details about the job through job description and the preferred skills required for the job.
That’s the reason even skilled tech personnel face trouble to get the job well suited for
them.
1.3 Objectives
The objective is to develop a system that uses cosine algorithm and recommends jobs that
suits best, based on input data provided by the user.
The main objectives of this system are to:
To recommend suitable jobs available on the web application for the users
according to their skills.
To provide convenient way to manage the user’s portfolio and search the jobs
based on categories.
1.4 Limitations
The company doesn’t have direct control to manage the jobs.
The system recommends the job for the registered users based on their skills
only.
1.5 Development Methodology
Waterfall Model
The Waterfall model includes different phases as: requirements analysis, design,
implementation, testing (validation), integration, and maintenance. In this model, each
phase must be completed before the next phase can begin. At the end of each phase, a
review takes place to determine if the project is on the right path and whether or not to
continue or discard the project. In this model the testing starts only after the development
is complete. In waterfall model phases do not overlap and typically the outcome of one
phase acts as the input for the next phase sequentially. Waterfall model has been used as
all the requirements of the system is clear and doesn’t change frequently.
2
Figure 1. 1: Waterfall Model
Chapter 1: It deals with the introductory part of the project and explains about what the
project is, how it came in idea, the main objective of the project that are planned to be
achieved after the completion, its scope and limitations.
Chapter 2: This chapter is all about the research process carried out to do the project. It
provides a description, summary, and critical evaluation of these works in relation to the
research problem being investigated.
Chapter 4: This chapter is all about system analysis and design. This deals with the
interpretation of the findings and study so that all the components of the system functions
as proposed. System design is a process of defining the components and data for a system
to satisfy specified requirements.
3
Chapter 5: It is all about result analyzing of this project. It deals with checking the
outputs and testing is carried out using various test cases.
Chapter 6: Finally, this chapter is about conclusion and recommendation which contains
idea about what was achieved in the end of the project and what the system recommends
for better output.
4
CHAPTER 2
BACKGROUND STUDY AND LITERATURE REVIEW
2.1 Background Study
The jobs searching through making visits usually spends a lot of time. The software
program to be design for this project work will captures all parameters used in searching
of jobs and automatically prescribe the relevant jobs for user. This project also considers
the job vacancy openings of the companies. In order to overcome some setbacks in the
method used by the user this project is developed to recommend the jobs based on their
user profile. It is not the case that Job recommendation tools are not available in the
market. There are Job recommendation system like merojobs which is a job site ranging
from the web, to mobile, to social media tools and apps, provide service to all companies
of all sizes to find the right fit using most advanced technology in Nepal. Providing
recruitment solutions to employers finding, fostering and preparing the right candidates in
every possible way with an effective tracking system and a dedicated team of customer
service to both; the employers and the job seekers, has always been their primary goal. [1]
In Codersplace, the web application recommends the jobs to the users that are similar to
the skills of the user.
In " Help me find a job " it provides the job offers whereas an employee can also post
about their skills. Content Based Filtering (CBF) and Collaborative Filtering (CF) are
used in this system. On the basis of this study and various techniques to research and after
implementation of algorithms the Collaborative Filtering (CF) based algorithm for its
better performance and overall factors. Different data mining schemes can be used on
business intelligence process of recommendation system to enhance the efficiency. [3].
5
Francesco Ricci on his research explained how recommendation system can be used by e-
commerce sites to suggest product and information regarding to help in decision making.
To suggest a product knowledge is extracted from either domain experts (content- or
knowledge-based approaches) or extensive logs of previous purchases (collaborative-
based approaches). [4].
Prem Melville, Vikas Sindhwani in their study, they state that Recommender systems
differ in the way they analyze these data sources to develop notions of affinity between
users and items, which can be used to identify well-matched pairs. Collaborative Filtering
systems analyze historical interactions alone, while Content based Filtering systems are
based on profile attributes; and hybrid techniques attempt to combine both of these
designs. While pure content-based methods avoid some of the pitfalls like false ratings a
collaborative filtering still has some key advantages over them. Firstly, CF can perform in
domains where there is not much content associated with items, or where the content is
difficult for a computer to analyze, such as ideas, opinions, etc. Secondly, a CF system
has the ability to provide serendipitous recommendations, that is, it can recommend items
that are relevant to the user, but do not contain content from the user’s profile. [5],
6
CHAPTER 3
SYSTEM ANALYSIS
b) User function:
Registered users are allowed to post their portfolio as well as manage it. They can
view the recommended jobs based on their portfolio.
c) Admin Function:
Admin is in charge of maintaining database of the system. The response and possible
queries are updated and managed by the admin. The main role of the admin is to post
the jobs of companies and manage it.
7
Figure 3. 1:Use case diagram for Codersplace
8
the natural environment, the resources required for the project, and the prospects for
success.
The various feasibility studies are:
i. Technical
Technically, the system is web application which will be developed using Python as core
programming language. The backend will use Django of Python and PostgreSQL, the
algorithms was implemented in Python. The frontend was developed using HTML, CSS
and Bootstrap. The technologies that are required for the development of the system were
readily available.
ii. Operational
The interface is user-friendly with no training required to use the application. The system
recommends the best jobs as per their skills. Thus, the system is operationally feasible.
iii. Economic
This is a small project with no cost for development. The system is easy to understand
and use. Therefore, there is no need to spend time on training to use the system. This
system has the potential to grow by adding functionalities for programmers and
companies. No extra equipment was brought for this system.
iv. Schedule
The project is performed by team members allocating different jobs for each member.
Requirements Gathering is done at the initiation of the project. Requirement analysis has
been given more emphasis. Analysis of the whole project is done through deep research
following design phase to be completed nicely. Debugging and testing is done at the final
stage of the project.
3.1.3 Analysis
Structured Approach
3.1.3.1 Entity-Relationship Diagram
The ER diagram shows how the entities are related with each other. This system consists
of mainly three entities i.e., admin, user and jobs. Admin manages the jobs and user
search existing job details.
9
Admin consists of attributes like id, username and password. Similarly, job consists of
jid, address, city, contact, email. Similarly, user consists of uid, name, username,
password, contact. ER diagram clearly illustrates the relationship between all the entities
residing on the system which provides clear vision of the system.
10
ii. Level 1 DFD
11
Figure 3. 6: Sequence Diagram
12
CHAPTER 4
SYSTEM DESIGN
System Design includes the means and methodologies to improve the management and
control of the software development process. It is the process of defining the elements of
a system such as the architecture, modules and components, the different interfaces of
those components and the data that goes through that system. It is meant to satisfy
specific needs and requirements of a business or organization through the engineering of
a coherent and well-running system.
4.1 Design
Database Design: Transformation of ER to relations and normalizations
ER Model, when conceptualized into diagrams, gives a good overview of entity-
relationship, which is easier to understand. ER diagrams can be mapped to relational
schema, that is, it is possible to create relational schema using ER diagram. It is not
possible to import all the ER constraints into relational model, but an approximate schema
can be generated. Below figure shows the relational data model of our system.
13
4.2 Algorithm Details
Cosine Similarity is a metric, helpful in determining, how similar the data objects are
irrespective of their size. In cosine similarity, data objects in a dataset are treated as a
vector. The formula to find the cosine Similarity between two vectors is –
𝐴.𝐵
∑𝑛 𝐴𝑖∗𝐵𝑖
Cosine similarity = cos(𝛩) = 𝑖=1
||𝐴||∗||𝐵|| = 𝑛
√∑𝑖=1 𝐴𝑖2∗√∑𝑛𝑖=1 𝐵𝑖2
14
Example: [['HTML', 'CSS', 'Javascript', 'Typescript', 'Angular'], ['html', 'css', 'javascript',
'Python’]]
e) Create a single list of all the jobs skills
Example: Job skills = ['HTML', 'CSS', 'Javascript', 'Typescript', 'Angular', 'html', 'css',
'javascript', 'Python’]
f) Convert single list of job skills into lowercase
Example: Job skills = ['html', 'css', 'javascript', 'typescript', 'angular', 'html', 'css',
'javascript’,’python’]
g) Create unique list of job skills only
Example: Job skills = ['html', 'css', 'javascript', 'typescript', 'angular', 'python']
h) Convert each job skills into lowercase
Example: Job Skills 1 = [['html', 'css', 'javascript', 'typescript', 'angular']]
Job Skills 2 = [['html', 'css', 'javascript', 'python']]
i) Create unique list containing coder and job skills
Example: ['html', 'css', 'javascript', 'typescript', 'angular', 'python']
j) Create a list of job skills in vector form by assigning value 1 to each string containing in
list of coder and job skills if job skill is present on it otherwise assign value 0
Example: Job skills 1 = [1, 1, 1, 1, 1, 0]
Job skills 2 = [1, 1, 1, 0, 0, 1]
k) Create a list of skills of all jobs (both jobs in this case) in vector form
Example: Job Skills List = [[1, 1, 1, 1, 1, 0], [1, 1, 1, 0, 0, 1]]
l) Create a list of coder skills in vector form by assigning value 1 to each string containing
in list of coder and job skills if coder skill is present on it otherwise assign value 0
Example: Coder skills = [1, 1, 1, 0, 0, 1]
6. Calculate cosine similarity between coder skill and each job skills
a) Calculate dot product between the coder skill and each job skills
b) Calculate magnitude of coder skill and each job skill
c) Use cosine similarity formula to calculate similarity between coder skills and skills in
each job:
𝐴.𝐵
∑𝑛 𝐴𝑖∗𝐵𝑖
Cosine similarity = cos(𝛩) = = 𝑖=1
||𝐴||∗||𝐵|| 𝑛
√∑𝑖=1 𝐴𝑖2∗√∑𝑛𝑖=1 𝐵𝑖2
16
CHAPTER 5
IMPLEMENTATION AND TESTING
5.1 Implementation
The project implies various development technologies for system development., HTML,
CSS, Bootstrap and Django are used for interface design and backend processing.
CSS
CSS was used to stylize the news portal website. Arranging the images and texts of the
webpage in organized manner, decorating HTML elements and managing the elements
are all done using CSS.
Bootstrap
Bootstrap was used to design a customized and responsive front-end along with the help
of HTML and CSS. It allowed for easier and faster development of a front end for the
web portal.
Python
Python was used to implement cosine algorithm as well as to complete the overall
development. Connection to the database was made using psycopg2. Fetching the data
from database and feeding client requesting for data was made possible using python.
Django
Django is a high-level Python web framework that encourages rapid development and
clean, pragmatic design.
PostgreSQL
It is a free and open-source relational database management system (RDBMS)
emphasizing extensibility and SQL compliance.
17
Draw.io
Draw.io was used to draw the diagrams used in the document.
pgAdmin
pgAdmin is the most popular and feature rich Open-Source administration and
development platform for PostgreSQL, the most advanced Open-Source database in the
world.
18
if magnitude_product==0:
cosine_similarity.append(0)
else:
total = dot_product / magnitude_product
cosine_similarity.append(round(total,4))
return cosine_similarity
5.2 Testing
After building the project, following testing measures are applied and got the results as
shown below:
5.2.1 Unit Testing
Table 5. 1: Test Case for User Registration
Test Case Input Expected Test Result
Result
firstName=Urgen,
Successful lastName=Lama, A message A message
User “User “User registered
username=urgen
Registration registered successfully!
email address=
successfully! ” is displayed
[email protected] ” should be
password=urgen123 displayed
confirm password=urgen123
19
Table 5. 2: Test Case for User Login
Test case Input Expected Result Test Result
Successful User username= anisha, The login page The login page is
Login password = anisha123 should be redirected to
redirected to dashboard with
dashboard with recommended jobs.
recommended
jobs.
20
Table 5. 4:Test Case for Job Search
S.N. Test case Input Expected Result Test Result
1 Searching search query= PHP All the job with PHP as All the job
a title should be with PHP as a
displayed title is
displayed
1 Job Browsing The specific Only the job belonging Only the job
based on category is to the clicked category belonging to the
Categories clicked should be displayed. clicked category is
displayed.
21
S. N Test Test Description Expected Actual Result Remarks
Id Result
1 TC- After registration Dashboard Dashboard with Pass
01 login is done with recommended job
with username recommended according to user
and password. job according skills should be
Then,user profile to user skills displayed
is added. should be
displayed.
Table 5. 7: Test Case for Job Recommendation
22
CHAPTER 6
CONCLUSION AND FUTURE RECOMMENDATION
6.1 Conclusion
Codersplace makes easy for tech background persons to showcase their portfolio and
provide a convenient way to search jobs related to information and technology field. This
project uses an approach of cosine similarity of content-based filtering to recommend jobs
to the tech background persons which are suitable to them according to their skills. It
diminishes the way to go through the entire job description to find out whether the job is
well suited for them or not.
6.2 Future Recommendations
a) The company dashboard to post and manage the jobs by company itself can be
implemented.
b) All the attributes of coders can be used to find better similarity between the user
profile and the jobs.
c) Collection of more data fields can direct towards positive direction and allows more
recommendation approaches as well as more ways of similarity computation.
d) Furthermore, collaborative filtering can be applied in future so that more appropriate
jobs could be recommended based on the requirements of company and skills of
developers.
23
REFERENCES
[1] H. Gautam, Mero Job, 2022. [Online]. Available: https://merojob.com/about-us/.
[Accessed: 20- Mar- 2022]
[3] W. Shalaby et al., "Help me find a job: A graph-based approach for job
recommendation at scale," 2017 IEEE International Conference on Big Data (Big Data),
2017, pp. 1544- 1553, doi: 10.1109/BigData.2017.8258088.
24
APPENDIX
25
Figure: Signup for User
26
Figure: Dashboard
27
Figure: Coders Page
28
Figure: Dashboard with Job Recommendations
29
Figure: Contact Page
30
Figure: Search Jobs Results for PHP developer type
31
Figure: Django Admin Panel
32