0% found this document useful (0 votes)
3K views70 pages

Job Portal Project Report

This document is a project report for a Job Portal System created by three students - Sanjeev Kumar, Kaushlendra Pratap Singh, and Aryan Singh - under the supervision of Prof. Alka Singh. The report describes the objectives, design, implementation, and testing of the Job Portal System, which aims to more efficiently connect job seekers with employers and streamline the hiring process. Key features of the Job Portal System include employer registration, job posting, candidate search and selection.

Uploaded by

Archana Kushwaha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3K views70 pages

Job Portal Project Report

This document is a project report for a Job Portal System created by three students - Sanjeev Kumar, Kaushlendra Pratap Singh, and Aryan Singh - under the supervision of Prof. Alka Singh. The report describes the objectives, design, implementation, and testing of the Job Portal System, which aims to more efficiently connect job seekers with employers and streamline the hiring process. Key features of the Job Portal System include employer registration, job posting, candidate search and selection.

Uploaded by

Archana Kushwaha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 70

A PROJECT REPORT

ON
JOB PORTAL SYSTEM
BY
Sanjeev Kumar (16643)
Kaushlendra Pratap Singh (16625)
Aryan Singh (16617)
UNDER THE SUPERVISION OF
Prof. Alka Singh

A DISSERTATION SUBMITTED IN PARTIAL FULFILLMENT OF THE


REQUIREMENTS FOR THE AWARD OF DEGREE OF
BACHELOR OF TECHNOLOGY
IN
INFORMATION TECHNOLOGY

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


KAMLA NEHRU INSTITUTE OF TECHNOLOGY
SULTANPUR- 228118, U.P.
(An Autonomous State Government Institute)

AFFILIATED TO

DR. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY


LUCKNOW (U.P.) INDIA
2019-2020

1
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
KAMLA NEHRU INSTITUTE OF TECHNOLOGY
SULTANPUR- 228118, U.P.

CERTIFICATE

This is to certify that Sanjeev Kumar (16643), Kaushlendra Pratap Singh (16625), Aryan Singh
(16617), have carried out the project work in this report entitled “Job Portal System” for the award
of in Bachelor of Technology, Information Technology at Kamla Nehru Institute of Technology,
affiliated to Dr. A.P.J. Abdul Kalam Technical University, Lucknow.
This report is the record of the candidates’ own work carried out by them under our supervision and
guidance.This project work is the part of Bachelor of Technology Information Technology
curriculum.
Their performance was excellent and we wish them good luck for their future endeavors.

_______________________ __________________________ ______________________

Prof. Alka Singh Prof. Dharmendra Lal Gupta Prof. Neelendra Badal
(Project Guide) (Project In-charge) (Professor & Head)

2
Declaration
We hereby declare that this submission is our own work and that, to the rest of our knowledge
and belief, it contains no material previously or written by another person nor material which to a
substantial extent has been accepted for the award of any other degree of the university or other
institute of higher learning, except where due acknowledgement has been made in text.

________________________ ________________________
Sanjeev Kumar Kaushlendra Pratap Singh
(16643) (16625)

________________________
Aryan Singh
(16617)

3
Acknowledgement

This satisfaction that accompanies the successful completion of this project would be incomplete
without the mention of people whose ceaseless co-operation made it possible, whose constant
guidance and encouragement crown all efforts with success.

Our sincere regards to Prof. Alka Singh for her continuous valuable guidance, inspiration and
constructive suggestions that helped us in the preparation of this project. We convey our sincere
thanks to her for her commendable support towards successful completion of our project.

Sanjeev Kumar (16643)


Kaushlendra Pratap
Singh (16625)
Aryan Singh (16617)
(IT IV Year)

4
Job Portal System

ABSTRACT
The "Job Portal System" has been developed to override the problems prevailing in the practicing
manual system. This software is supported to eliminate and in some cases reduce the hardships
faced by this existing system. Moreover this system is designed for the particular need of the
company to carry out operations in a smooth and effective manner.

OBJECTIVE:

The main objective of the Project on Job Portal System is to manage the details of Employer,
Employer Registration, Post Job, Interview, Interview, Search Job. It manages all the information
about Employer, Search Job, Employer. The project is totally built at administrative end and thus
only the administrator is guaranteed the access. The purpose of the project is to build an application
program to reduce the manual work for managing the Employer, Employer Registration, Post Job,
Candidate selection. It tracks all the details about the Post Job, Candidate Selection, Search Job.

5
PROJECT OVERVIEW:

The application is reduced as much as possible to avoid errors while entering the data. It also
provides error message while entering invalid data. No formal knowledge is needed for the user to
use this system. Thus by this all it proves it is user-friendly. Job Portal System , as described above,
can lead to error free, secure, reliable and fast management system. It can assist the user to
concentrate on their other activities rather to concentrate on the record keeping. Thus it will help
organization in better utilization of resources.

We understand in today's world, it is very difficult to find right person to do the right job for you,
And for an employee too, it is not easy to get the work, so, we decided to solve both of these
problems. This is our motivation, and we decided that we will make a job portal which will make
the life of both job seekers as well as job providers easy. And everything will be hassle-free.

6
CONTENTS

Certificate………………………………………………………………………………………i
Declaration……………………………………………………………………………………..ii
Acknowledgement…………………………………………………………………………….iii
Abstract………………………………………………………………………………………..iv
Content Index………………………………………………………………………………….v

1. INTRODUCTION………………………………………………………………...8-11
2. ANALYSIS………………………………………………………………………12-14
2.1 EXISTING SYSTEM…..…………………………………..………13
2.2 PROPOSED SYSTEM ...…………………………………..………13
2.3 OBJECTIVE OF THE SYSTEM…..………………………………14
3. DESIGN…………………………………………………………………………..15-22
3.1. UML DIAGRAM…………………………………………...…..16-17
3.2. USECASE DIAGRAM…………………………………….…...17-19
3.3. SEQUENCE DIAGRAM…………………………………………..19
3.4. DFD……………………………………………………….…….19-20
3.5. ER DIAGRAM……………………………………………..…...21-22
4. MODULES…………………………………………………………………...…..23-26
5. IMPLEMENTATION………………………………………………………….....27-33
5.1. ANDROID…………….. …….………………………………...28-29
5.2. NODE JS………………….…………………………………....30-32
5.3. MONGO DB…………………………………………..……...……33
6. FEASIBILITY STUDY………………………………………………….………..34-36
7. CODE SNIPPETS……………………………………………………….………...37-53
8. TESTING………………………………………………………………..………...54-56
9. OUTPUT SCREENS…….……………………………………………...………....57-66
10. CONCLUSION…………………………………………………………………..67-68
11. BIBLIOGRAPHY………………………………………………………………..69-70

7
INTRODUCTION

8
INTRODUCTION:

Job Search Portal is an android 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. 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. Job search portals
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 includes 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 hire and candidates search for jobs. With the
Online Job search portals, the recruitment process is speeded 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. In addition, candidates/Employers
can write a review about an organization, which might help them to change the way things are
done.

9
MOTIVATION:

The purpose of developing an Online Job Search Portal comes from our idea to make the
job search efficient and handy. It helps the recruiters as a primary source of talent search. It also
helps the job seekers to search for current vacancies at a single point. Therefore, we can say that
Online Job Search Portal act as a bridge of communication between organizations and applicants.
With the evolution of technology and internet being the main source of information for the
applicants, these job portals and have become an excellent method to reach wide range of audience.
Initially, when we were unaware of these portals, we used to do research about companies and
their technology stack through their respective websites and apply if the job responsibilities
matches our interests. This requires lots of effort and time. However, later when we realized the
importance of job search portals, we are able to access jobs in companies, locations that we might
not otherwise have learned.

10
BACKGROUND

Based on the Job Search Portal application’s requirements, we have made the choice of
frameworks to be used. This application primarily consists of one main components; an android
application that allows recruiters to outline job vacancies with required information for which
jobseekers can view and apply according to their interests and an android application that displays
the jobs that are available and applied by the applicants. This android application is developed by
using the Android Studio . The Backend work is done in NodeJS. In addition, the Database is
stored in a real time online database which is MongoDB .

11
ANALYSIS

12
2.1 Existing System

The existing system for job recruitment includes traditional methods like Employment agencies,
advertising through newspapers, televisions and radios, college fairs etc., which are too slow and
stressful. With the advancement of internet, jobseekers rely on the online job portals, which makes
the job search efficient. Again, most of these are limited to the web/desktop applications, which
requires jobseekers to have a laptop or desktop connected to internet and is not handy.

Disadvantages:

• Time Consuming
• Stressful
• Challenging

2.2 Proposed System

Job Search Portal is a Java-based web application as well as Android application that
provides functionalities of e-recruitment on desktop and on portable devices like Android
based smart phones/tablets. Both applications do not require internet to perform the desired
functionalities.

Advantages
• Cost and Time efficient
• Portable

Purpose of the System:

Job Search Portal is developed to provide an effective means for the employers to post job
openings with required qualification to have a better penetration into the job market and
jobseekers to find out the information regarding the current openings in the organization. In
addition, Employers can view the reviews provided by the applicants to make necessary
improvements in their system if needed. Job search portal is an android application
providing flexibility for the users.

13
2.3 Objective of the System

The objective of the android application is to provide flexibility to the jobseekers by


providing the functionalities of both job search and job application in a single application. In
addition, this application provides an effective means for the employers to post job vacancies
and view the job applications by the interested applicants in a single application. Employers
can also view the reviews provided by the jobseekers.

System Specification

Hardware Requirements:-

 Android Phone

Software Requirements: -

 Operating System: Android version 4.4 or above

14
DESIGN

15
INTRODUCTION:

Design is the first step in the development phase for any techniques and principles
for the purpose of defining a device, a process or system in sufficient detail to permit its physical
realization.

Once the software requirements have been analyzed and specified the software
design involves three technical activities - design, coding, implementation and testing that are
required to build and verify the software.

The design activities are of main importance in this phase, because in this activity,
decisions ultimately affecting the success of the software implementation and its ease of
maintenance are made. These decisions have the final bearing upon reliability and maintainability
of the system. Design is the only way to accurately translate the customer’s requirements into
finished software or a system.

Design is the place where quality is fostered in development. Software design is a


process through which requirements are translated into a representation of software. Software
design is conducted in two steps. Preliminary design is concerned with the transformation of
requirements into data.

3.1 UML Diagrams:


Actor:
A coherent set of roles that users of use cases play when interacting with the use `cases.

Use case:
A description of sequence of actions, including variants, that a system
performs that yields an observable result of value of an actor.

16
There are various kinds of methods in software design:
They are as follows:

Use case Diagram

Sequence Diagram

Collaboration Diagram

Activity Diagram

State chat Diagram

3.2 USECASE DIAGRAMS:

Use case diagrams model behaviour within a system and helps the developers
understand of what the user require. The stick man represents what’s called an actor.
Use case diagram can be useful for getting an overall view of the system and
clarifying who can do and more importantly what they can’t do.
Use case diagram consists of use cases and actors and shows the interaction
between the use case and actors.

 The purpose is to show the interactions between the use case and actor.
 To represent the system requirements from user’s perspective.
 An actor could be the end-user of the system or an external system.

17
Actors:
The Actors of the system are Employer and Applicant.

Use Cases:
We have identified a set of use cases based on the functionalities and goals of the application.
 Register Account- This use case denotes a set of actions required for Employer and Job
seeker to register with the application.
 Login- This use case denotes a set of actions required for Employer and Job seeker to
login into the application.
 Add Job Vacancy- This use case denotes a set of actions required for Employer to post a
job vacancy.
 View Applicants for a Job Post- This use case denotes a set of actions required for
Employer to view the list of applicants for a particular job post.

18
 View Job Posts- This use case denotes a set of actions required for Employer to view all
the jobs posted by the Employer.
 Search Job Posts- This use case denotes a set of actions required for Job Seeker to
search available and active jobs.
 Apply for Job- This use case denotes a set of actions required for Job Seeker to apply for
an available job vacancy.

3.3 SEQUENCE DIAGRAM:

Sequence diagram and collaboration diagram are called INTERACTION DIAGRAMS. An


interaction diagram shows an interaction, consisting of set of objects and their relationship
including the messages that may be dispatched among them.
A sequence diagram is an introduction that empathizes the time ordering of messages.
Graphically a sequence diagram is a table that shows objects arranged along the X-axis and
messages ordered in increasing time along the Y-axis.

3.4 DATA FLOW DIAGRAMS:

The DFD takes an input-process-output view of a system i.e. data objects flow into the software,
are transformed by processing elements, and resultant data objects flow out of the software.

Data objects represented by labeled arrows and transformation are represented by circles also
called as bubbles. DFD is presented in a hierarchical fashion i.e. the first data flow model
represents the system as a whole. Subsequent DFD refine the context diagram (level 0 DFD),
providing increasing details with each subsequent level.

The DFD enables the software engineer to develop models of the information domain & functional
domain at the same time. As the DFD is refined into greater levels of details, the analyst perform
an implicit functional decomposition of the system. At the same time, the DFD refinement results
in a corresponding refinement of the data as it moves through the process that embody the
applications.

19
A context-level DFD for the system the primary external entities produce information for use by
the system and consume information generated by the system. The labeled arrow represents data
objects or object hierarchy.

RULES FOR DFD:

 Fix the scope of the system by means of context diagrams.

 Organize the DFD so that the main sequence of the actions

 Reads left to right and top to bottom.

 Identify all inputs and outputs.

 Identify and label each process internal to the system with Rounded circles.

 A process is required for all the data transformation and Transfers. Therefore, never
connect a data store to a data Source or the destinations or another data store with just a
Data flow arrow.

 Do not indicate hardware and ignore control information.

 Make sure the names of the processes accurately convey everything the process is done.

 There must not be unnamed process.

 Indicate external sources and destinations of the data, with Squares.

 Number each occurrence of repeated external entities.

 Identify all data flows for each process step, except simple Record retrievals.

 Label data flow on each arrow.

 Use details flow on each arrow.

 Use the details flow arrow to indicate data movements.

20
3.5 E-R Diagrams:

The Entity-Relationship (ER) model was originally proposed by Peter in 1976 [Chen76] as a
way to unify the network and relational database views. Simply stated the ER model is a conceptual
data model that views the real world as entities and relationships. A basic component of the model
is the Entity-Relationship diagram which is used to visually represents data objects. Since Chen
wrote his paper the model has been extended and today it is commonly used for database design
For the database designer, the utility of the ER model is:
 it maps well to the relational model. The constructs used in the ER model can easily be
transformed into relational tables.
 it is simple and easy to understand with a minimum of training. Therefore, the model can
be used by the database designer to communicate the design to the end user.
 In addition, the model can be used as a design plan by the database developer to implement
a data model in a specific database management software.

Connectivity and Cardinality

The basic types of connectivity for relations are: one-to-one, one-to-many, and
many-to-many. A one-to-one (1:1) relationship is when at most one instance of a entity A is
associated with one instance of entity B. For example, "employees in the company are each
assigned their own office. For each employee there exists a unique office and for each office
there exists a unique employee.

A one-to-many (1:N) relationships is when for one instance of entity A, there are zero, one, or
many instances of entity B, but for one instance of entity B, there is only one instance of entity
A. An example of a 1:N relationships is a department has many employees each employee is
assigned to one department.

21
ER Diagram:

22
MODULES

23
Android Structure:

24
Backened Structure:

25
The Online Job Search Portal is a web-based and android application, which revolutionizes the
way companies hire the candidates and jobseekers search for job vacancies. The employers can
view reviews given by the jobseekers and make improvements in their system accordingly. The
application provides a flexible and easy to use environment on portable devices like smart
phones/tablets for the users to achieve their respective objective The modules that we have
implemented in the Job Search Portal are as listed.
 Employer
 Job Seeker or Candidate

Employer:
Employer users will be able to perform functions such as registering with the application and
creating an account by providing the details of Employer Name, Address, E-mail, Mobile
Number, Login Name, and Password that are stored in the MongoDB database. Once the account
is activated, this module allows employers to post jobs summarizing responsibilities and
expected skills that will be saved in the MongoDB database. The employer will also be given
privilege to change the status of the job seeker and mark it as: Selected, rejected or Under
Consideration. He/she can view the list of job postings that are active. He/she can also view the
applicant details that have applied for a particular job posting. The employer will be able to view
reviews provided by the jobseeker.

Job Seeker or Candidate:


The Jobseeker users will be able to perform functions such as registering with the application
and creating an account by providing the details of First Name, Last Name, E-mail, Password,
Mobile Number, Primary Skill and Experience that are stored in the MongoDB database. Once
the account is activated, jobseekers can search, view and apply for active job openings. All the
applied jobs details are stored in the MongoDB database.

26
IMPLEMENTATION

27
OVERVIEW OF TECHNOLOGIES USED

5.1 Android

Android is an open source Linux based operating system. It is used to create various mobile
applications on various smart phones or tablets available and to customize the device in
many ways. It provides various components for an optimal application development and
execution environment for mobile devices.

Fig.: Android Architecture

Each layer in the Android OS shown above provides various functionalities to the layers above it.

28
In detail about each layer,

Linux Kernel

The Linux Kernel is the bottom layer of the Android software stack that provides a level of
abstraction between the device hardware and the upper layers of the software stack [4]. The
functionalities of the kernel include memory, process and power management. It also
provides various device drivers for display, Wi-Fi and audio.

Android Libraries
The Libraries layer provides a set of Java-based libraries that facilitates interface design,
graphics drawing and database access to list a few and C/C++ libraries for 2D and 3D
graphics drawing, SSL communication, graphic layer and SQLite database management etc.,

Android Runtime

Replacing Dalvik, which is a runtime, Virtual Machine used by the Android Operating
System for running Android application, the Android Runtime (ART). ART performs the
translation of the application's bytecode into native instructions that are executed by the
device's runtime environment [5]. The ART has two main features, Ahead-of-Time (AOT)
compilation and improved Garbage Collection (GC).

Application Framework
The Application Framework layer provides various services to the applications. The services
include, Activity Manager that controls the activity stack, Content Providers that allows
sharing of data with other applications, Resource Manager that provides access to color
settings and user interface layouts, Notifications Manager that takes care of the notification
settings and View System to create user interfaces for the applications.

Applications

Applications form the top layer of the software stack in the Android Architecture. As a
developer, you will write and install your application in this layer. This layer contains
native as well as the third party applications installed by the user.

29
5.2 Node JS

What is Node.js?

Node.js is an open-source, Server side platform & cross runtime environment platform for
developing server-side Networking applications built on Google Chrome’s V8 JavaScript
Engine. Nodejs library package ECOSYSTEM and NPM are the biggest user friendly system of
open source till date, Node.js can be run on OS X, Microsoft Windows, and Linux.

What makes Node.js different?

Node.js uses an event-driven, non-blocking I/O model that makes it translucent and productive
and efficient. Node.js makes developing such tools highly facile with the open source
subdivision and a special package manager.

Where You can use Node.js?

Chat App:

Node.js is highly using to create private chatrooms also it has ability to write back-end code
JavaScript which is perfect technology for building real time applications. We can develop
realtime mobile chat application using Node.js

30
Web App:

Node.JS we can use for web application development.

Data and Video Streaming:

One of the main use of Node.js is its capacity to retort efficiently to a huge figure of requests and
video streaming app development.

Node.js is useful for the direct connection to the Web can be made,We had to generate our own
backing to proxy requests in node.js.

Node.js easily maintain simultaneous data & manage in queue.

Node.js library provides a careful environment for managing data,It’s maintaining the system
flexibility that makes database powerful.

The Advantages of Node.js over other technologies

 The applications now run 20x faster in some scenarios due to lower memory overhead
and better performance of Node.js
 It was easier for developers to grasp on Node.js and leverage from their JavaScript
skills and so they no longer needed to work in different front-end and back-end teams
as they could now be combined into a single functional unit and focus more on
application development than firefighting.
 The utilization of resources shrunk to 10x as enough headroom remained and the
servers were cut down from 30 to 3.

The Top Exhilarating Features of Node.js

Listed below are some features that make Node.js the best way out for software architects.

 Event Driven and Asynchronous − Node.js library consists of API’s that are
asynchronous, or non-blocking which essentially means that a Node.js based server
will never wait for an API to return data but moves to the next API after calling it.
Node.js has a notification mechanism of events which helps the server to get a
response from the previous API call.

31
 Highly Scalable – The event mechanism in Node.js makes the server highly scalable
by responding in a non-blocking way.
 Single Threaded – Node.js supports a single threaded model with event looping and
the same model can provide service to a much larger number of requests.
 Extremely Fast − The code execution in the Node.js library is faster because it is built
on V8 JavaScript Engine of Google Chrome.
 No Buffering − The data in the applications of Node.js is never buffered but output the
data in chunks.
 License − Node.js has been released under the MIT license which puts a very limited
restriction on reuse and has, therefore, an excellent license compatibility.

Here is the list of companies shifted to Node.JS:

1. Netflix

2. PayPal

3. Uber

32
5.3 MongoDB

MongoDB is a NoSQL document-oriented database; it is used for storing large amounts of data.
This database was implemented in the 2000s. MongoDB makes use of collections and documents.
A document is the basic unit of data in MongoDB. It contains fields or name-value pairs.
Collections store groups of documents and functions. They are equivalent to relational database
tables.

Let's look at the main components of the MongoDB database architecture.

1. _id is a field required in every MongoDB document. It represents a unique value in a


MongoDB document.
2. A collection is used to group documents in MongoDB. It is the equivalent of a table in any
other RDMS.

3. A cursor is an arrangement of rows together with a pointer that recognizes a present row.

4. A record in a MongoDB collection is commonly called a document. The document will


include the field name and values.

5. A name-value pair in a document is called a field. Fields are similar to columns in relational
databases.

6.JSON document is a collection of fields and values in a structured format.

MongoDB supports field searches, range queries, and regular expression searches. Flexibility
makes MongoDB a universal and adaptable tool for business needs.

33
Feasibility Study

34
FEASIBILITY STUDY:

Feasibility study is conducted once the problem is clearly understood. Feasibility


study is a high level capsule version of the entire system analysis and design process. The objective
is to determine quickly at a minimum expense how to solve a problem. The purpose of feasibility
is not to solve the problem but to determine if the problem is worth solving.

The system has been tested for feasibility in the following points.
1. Technical Feasibility
2. Economical Feasibility
3. Operational Feasibility.

1. Technical Feasibility
We demonstrate the feasibility of our detection methods and highlight the increased
security from leveraging hardware, but more research is necessary. First, our detector accuracy
can be improved. This will involve further research into classification algorithms and ways to label
malware data more accurately. Second, our classifiers are not optimized for hardware
implementations. Further hardware/algorithm codesign can increase accuracy and efficiencies..

It provides the high level of reliability, availability and compatibility. All these
make python an appropriate language for this project. Thus the existing system, python is
a powerful language.

2. Economical Feasibility

The computerized system will help in automate the selection leading the profits and
details of the organization. With this software, the machine and manpower utilization are expected
to go up by 80-90% approximately. The costs incurred of not creating the system are set to be
great, because precious time can be wanted by manually.

3. Operational Feasibility

In this project, the system will know the details of each malware where it may be
presented and the data will be maintained as decentralized and if any inquires for that particular
malware can be known as per their requirements and necessaries.

35
Implementation:

Implementation is the stage where the theoretical design is turned into a working system. The
most crucial stage in achieving a new successful system and in giving confidence on the new
system for the users that it will work efficiently and effectively.

The system can be implemented only after thorough testing is done and if it is found to work
according to the specification.

It involves careful planning, investigation of the current system and its constraints on
implementation, design of methods to achieve the change over and an evaluation of change over
methods a part from planning. Two major tasks of preparing the implementation are education and
training of the users and testing of the system.

The more complex the system being implemented, the more involved will be the systems
analysis and design effort required just for implementation.

The implementation phase comprises of several activities. The required hardware and
software acquisition is carried out. The system may require some software to be developed. For
this, programs are written and tested. The user then changes over to his new fully tested system
and the old system is discontinued.

36
CODE SNIPPET

37
BACKENED CODE IN NODE JS:

Candidate Schema
const mongoose = require("mongoose");
const bcrypt = require("bcryptjs");
//CandidateSchema
const CandidateSchema = mongoose.Schema({
email: {
type: String,
required: true,
},
firstName: {
type: String,
required: true,
},
lastName: {
type: String,
},
password: {
type: String,
required: true,
},
mobile: {
type: Number,
required: true,
},
college: {
type: String,
},
passoutYear: {
type: Number,
},
percentage10: {
38
type: Number,
},

percentage12: {
type: Number,
},
graduationCourse: {
type: String,
},
graduationPercentage: {
type: Number,
},
dateOfBirth: {
type: Date,
},
aadharNumber: {
type: Number,
},
otp:{
type:String
},
skillSets: [
{
type: String,
},
],
});

const Candidate = (module.exports = mongoose.model(


"Candidate",
CandidateSchema
));
module.exports.getCandidateById = function (id, callback) {
Candidate.findById(id, callback);
};

39
// module.exports.getCandidateByCandidatename = function (username, callback) {
// const query = { username: username };
// Candidate.findOne(query, callback);
// };
module.exports.getCandidateByEmail = function (email, callback) {
const query = { email: email };
Candidate.findOne(query, callback);
};

module.exports.addCandidate = function (newCandidate, callback) {


bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(newCandidate.password, salt, (err, hash) => {
if (err) throw err;
newCandidate.password = hash;
newCandidate.save(callback);
});
});
};
module.exports.comparePassword = function (candidatePassword, hash, callback) {
bcrypt.compare(candidatePassword, hash, (err, isMatch) => {
if (err) throw err;
callback(null, isMatch);
});
};

EmployerSchema
const mongoose=require('mongoose');
const bcrypt=require('bcryptjs');

//EmployerSchema
const EmployerSchema=mongoose.Schema({
firstName:{
40
type:String,
required:true
},
otp:{
type:String
},
mobile:{
type:Number
},
lastName:{
type:String
},
email:{
type:String,
required:true
},
password:{
type:String,
required:true
},
industry:{
type:String,
required:true
}
});
const Employer=module.exports=mongoose.model('Employer',EmployerSchema);
module.exports.getEmployerById=function(id,callback){
Employer.findById(id,callback);
}

module.exports.getEmployerByEmployername=function(employername,callback){
const query={employername:employername }
Employer.findOne(query,callback);
}

41
module.exports.getEmployerById = function (id, callback) {
Employer.findById(id, callback);
};

module.exports.getEmployerByEmail=function(email,callback){
const query={email:email }
Employer.findOne(query,callback);
}

module.exports.addEmployer=function(newEmployer,callback){
Employer.findOne({email:newEmployer.email},function(err,data){
if(err) throw err;
if(data){
callback(new Error('User Already Exists'));
}
else{
bcrypt.genSalt(10,(err,salt)=>{
bcrypt.hash(newEmployer.password,salt,(err,hash)=>{
if(err)throw err;
newEmployer.password=hash;
newEmployer.save(callback);
});
});
}
});
}
module.exports.comparePassword=function(candidatePassword,hash,callback){
bcrypt.compare(candidatePassword,hash,(err,isMatch)=>{
if(err) throw err;
callback(null,isMatch);
});
}

ApplicationSchema

42
const mongoose = require("mongoose");
const { Schema } = require("mongoose");
const ApplicationSchema = mongoose.Schema({
status: {
type: String,
},
title: {
type: String,
},
location: {
type: String,
},
applicationDetails: {
type: String,
},
skillsRequired: {
type: String,
},
companyName: {
type: String,
},
experienceRequired: { type: String },
employeeID: [
{
id: {
type: Schema.ObjectId,
ref: "Candidate",
},
status: {
type: String,
},
firstName:{
type:String
},
email:{

43
type:String
},
mobile:{
type:Number
}
},
],
employerID: {
type: Schema.ObjectId,
ref: "Employer",
},
createdAt: {
type: Date,
default: Date.now,
},
});

const Application = (module.exports = mongoose.model(


"Application",
ApplicationSchema
));

module.exports.createApplication = function (newApplication, callback) {


Application.findOne({ createdAt: newApplication.createdAt }, (err, data) => {
if (err) {
throw err;
}
if (!data) {
newApplication.save(callback);
} else {
return callback(new Error("Already Applied"));
}
});
};

44
Application Route

const express=require('express');
const router=express.Router();
const Application=require('./../models/application');

router.post('/createApplication',(req,res,next)=>{
const {ObjectId} = require('mongodb');
var employerID= ObjectId(req.body.employerId);
let application=new Application({
status:req.body.status,
employerID:employerID,
title:req.body.title,
location:req.body.location,
applicationDetails:req.body.applicationDetails,
skillsRequired:req.body.skillsRequired,
companyName:req.body.companyName,
experienceRequired:req.body.experienceRequired
});

Application.createApplication(application,(err,data)=>{
if(err){
res.json({success:false,msg:'Failed to Create Application',error:err});
}
else{
res.json({success:true,msg:'Application Created',application:data});
}
});
});

router.put('/apply/:id', function(req, res){


Application.findById({_id: req.params.id},
function(err, application){
if(err) res.json(err);
45
else
{
if(!application)res.json({error:"No such Application"});
else{
const {ObjectId} = require('mongodb');
var _id= ObjectId(req.body.employeeId);

// console.log(application.employeeID.length);
for(var i=0;i<application.employeeID.length;i++){
if ((application.employeeID[i].id).equals(_id)) {
res.sendStatus=201;
res.json({error:"Already Applied..."})
return;
}
}
var id= ObjectId(req.body.employeeId);
let emp={
id:id,
status:"Applied",
firstName:req.body.firstName,
mobile:req.body.mobile,
email:req.body.email
}
application.employeeID.push(emp);
application.save().then((err,data)=>{
if(err) res.json(err);
if(data)
res.json({application:data});
});
}
}

});
});
const config=require('../config/database');

46
var assert = require('assert');
const mongoose=require('mongoose');
var db=null;
mongoose.connect(config.database,{ useNewUrlParser: true, useUnifiedTopology: true
},function(err,database) {
assert.equal(err,null)
db = database;
} );
mongoose.connection.on('connected',()=>{
// console.log('connected to database'+config.database);
// db=mongoose.connection;
});
mongoose.connection.on('error',(err)=>{
console.log('Database Error'+err);
});

router.post('/createdApplications/:id',(req,res,next)=>{
db.collection('applications').find({}).toArray(function(err,doc) {
assert.equal(err,null)
var Array=[];
for(var i=0;i<doc.length;i++){
if((doc[i].employerID).equals(req.params.id)){
Array.push(doc[i]);
}
}
res.json(Array);
});
});

router.post('/appliedApplications/:id',(req,res,next)=>{
db.collection('applications').find({}).toArray(function(err,doc) {
assert.equal(err,null)
var Array=[];
for(var i=0;i<doc.length;i++){

47
for(var j=0;j<doc[i].employeeID.length;j++){
if((doc[i].employeeID[j].id).equals(req.params.id)){
Array.push(doc[i]);
}
}
}
res.json(Array);
});
});

router.get('/all',(req,res,next)=>{
db.collection('applications').find({status:'Fresh'}).toArray(function(err,doc) {
assert.equal(err,null)
if(err) res.json({msg:"Error Occurred"});
res.json(doc);
});
});

router.put('/updateStatus',(req,res,next)=>{
Application.findOneAndUpdate( {
_id:req.body._id,
employerID: req.body.id,
employeeID: { $elemMatch: { id:req.body.employeeId } }
},{ $set: { "employeeID.$.status" : req.body.status } }, {new: true},function(err,data){
if(err) res.json(err);
if(data){
res.json(data);
}
if(!data) res.json({msg:"No data"});
});
});

router.put('/changeApplicationStatus',(req,res,next)=>{
Application.findOneAndUpdate( {
_id: req.body.id

48
},{ $set: { status: req.body.status } }, {new: true},function(err,data){
if(err) res.json(err);
if(data) res.json(data);
if(!data) res.json({msg:"No data"});
});
});
module.exports=router;

App.js

const express=require('express');
const path=require('path');
const bodyParser=require('body-parser');
const cors=require('cors');
const passport=require('passport');
const mongoose=require('mongoose');
const config=require('./config/database');
var assert = require('assert');
var port = process.env.PORT || 8080;
var db=null;

mongoose.connect(config.database,{ useNewUrlParser: true, useUnifiedTopology: true


},function(err,database) {
assert.equal(err,null)
db = database;
} );

mongoose.connection.on('connected',()=>{
// console.log('connected to database'+config.database);
// db=mongoose.connection;
});
mongoose.connection.on('error',(err)=>{
// console.log('Database Error'+err);
});
49
const app=express();
if(process.env.NODE_ENV === 'production'){
//set static folder
app.use(express.static('client/build'));
}
const candidates=require('./routes/candidate');
const employers=require('./routes/employer');
const search=require('./routes/search');
const application=require('./routes/application');
//const port=3000;

//CORS Middleware
app.use(cors());
app.use(express.static(path.join(__dirname,'public')));
app.use(bodyParser.json());
app.use('/candidate',candidates);
app.use('/employer',employers);
app.use('/search',search);
app.use('/apply',application);
//Passport Middleware
app.use(passport.initialize());
app.use(passport.session());

//testing
app.get('/all', function(req,res) {
db.collection('candidates').find({percentage12:{$in: [70,80]},skillSets: {$in:
["Java","C"]}}).toArray(function(err,doc) {
assert.equal(err,null)
res.send((doc))
})
})

//require('./config/passport')(passport);

50
require('./config/passportCandidate')(passport);
require('./config/passportEmployer')(passport);
app.get('/',(req,res)=>{
res.send('Invalid EndPoint');
});
app.listen(port,()=>{
// console.log('Server started at port '+port);
});

51
DATABASE SCHEMAS:

Application Schema:

Candidate Schema:

52
Employer Schema:

53
TESTING

54
Testing:

Testing is a process of executing a program with the intent of finding an error.


Testing is a crucial element of software quality assurance and presents ultimate review of
specification, design and coding.

System Testing is an important phase. Testing represents an interesting anomaly for the software.
Thus a series of testing are performed for the proposed system before the system is ready for user
acceptance testing.

A good test case is one that has a high probability of finding an as undiscovered error. A
successful test is one that uncovers an as undiscovered error.

Testing Objectives:

1. Testing is a process of executing a program with the intent of finding an error


2. A good test case is one that has a probability of finding an as yet undiscovered error
3. A successful test is one that uncovers an undiscovered error

Testing Principles:
 All tests should be traceable to end user requirements
 Tests should be planned long before testing begins
 Testing should begin on a small scale and progress towards testing in large
 Exhaustive testing is not possible

To be most effective testing should be conducted by a independent third party

The primary objective for test case design is to derive a set of tests that has the highest
livelihood for uncovering defects in software. To accomplish this objective two different
categories of test case design techniques are used. They are
 White box testing.
 Black box testing.

55
White-box testing:

White box testing focus on the program control structure. Test cases are derived to ensure
that all statements in the program have been executed at least once during testing and that all
logical conditions have been executed.

Block-box testing:

Black box testing is designed to validate functional requirements without regard to the internal
workings of a program. Black box testing mainly focuses on the information domain of the
software, deriving test cases by partitioning input and output in a manner that provides through
test coverage. Incorrect and missing functions, interface errors, errors in data structures, error in
functional logic are the errors falling in this category.

Testing strategies:

A strategy for software testing must accommodate low-level tests that are necessary to
verify that all small source code segment has been correctly implemented as well as high-level
tests that validate major system functions against customer requirements.

Testing fundamentals:

Testing is a process of executing program with the intent of finding error. A good test case
is one that has high probability of finding an undiscovered error. If testing is conducted
successfully it uncovers the errors in the software. Testing cannot show the absence of defects, it
can only show that software defects present.

56
OUTPUT SCREENS

57
Homepage:

58
Login Screeen:

59
Sign Up Screen:

60
Employer Homepage:

61
Employer Create Application:

62
A

Employer Profile:

63
Candidate HomePage:

64
Candidate Application Status:

65
Candidate Profile:

66
CONCLUSION

67
CONCLUSION:
The app was designed in such a way that future modifications can be done
easily. The following conclusion can be deduced from the development of the project.


This app can help people find new jobs easily.
 We have kept in mind the Covid situation, that’s why we made this adroid app,
which can be accessed by anyone.
 Since everybody has a mobile nowadays, so it was more feasible to make the app
for them instead of making a website, as many people don’t use internet on
computers on daily basis.
 Local Government offices can use this app for providing jobs to jobless people.

Many people have lost their jobs in this Covid situation, so this Job Portal is ghe
need of the hour.
 If some company, or government comes to us, we can scale up the app, and add
new things according to their requirements, and we would be more than happy to
help our country to remove unemployment to some extent.
 The System has adequate scope for modification in future if it is necessary.

68
BIBILOGRAPHY

69
BIBLIOGRAPHY

The following websites were referred during the analysis and execution phase of the project

 Java https://www.java.com/en/
 Android https://www.developer.android.com/studio/
 Android Runtime https://en.wikipedia.org/wiki/AndroidRuntime
 MongoDB https://mongodb.com/
 NodeJS https://nodejs.org/
 NodeJS Dependencies https://nodejs.org/en/docs/meta/topics/dependencies/
 Draw.io https://app.diagrams.net/
 Visual Studio Code https://www.code.visualstudio.com/
 Notepad Plus Plus https://notepad-plus-plus.org/

70

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy