0% found this document useful (0 votes)
143 views49 pages

Workers Job Portal Final

The document discusses developing a web portal to help daily wage workers find job opportunities. It aims to make the job search process easier for workers and provide a platform for employers to find workers. The technologies used to build the system include ReactJS, NodeJS, ExpressJS and MongoDB.

Uploaded by

Sivarajan
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)
143 views49 pages

Workers Job Portal Final

The document discusses developing a web portal to help daily wage workers find job opportunities. It aims to make the job search process easier for workers and provide a platform for employers to find workers. The technologies used to build the system include ReactJS, NodeJS, ExpressJS and MongoDB.

Uploaded by

Sivarajan
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

WORKERS JOB PORTAL

A Project Report Submitted to the Government Arts College(Autonomous),


Coimbatore
In Fullfillment of the requirements
For the Award of Degree of
MASTER OF COMPUTER APPLICATIONS
Submitted by
SIVARAJAN R
REG. NO: 22MCA520
Under the Guidance of
Dr. R. VIDYABANU M.C.A, [Link]., Ph.D.,
Assistant Professor

POST GRADUATE AND RESEARCH DEPARTMENT OF


COMPUTER APPLICATIONS
GOVERNMENT ARTS COLLEGE(AUTONOMOUS), COIMBATORE-641018
Re-accredited with “B++” Grade by NAAC. Affiliated to Bharathiar University

APRIL 2024
ii

DECLARATION

I here declare that this project, entitled with “WORKERS JOB PORTAL”
Submitted to the Government Arts College (Autonomous), Coimbatore in
fulfillment of the requirements for the award of the Degree of Master of Computer
Applications is a bonafide record of the original project work done by me under
the supervision and guidance of [Link], MCA,[Link].,Ph.D.,
Assistant Professor, Post Graduate and Research Department of Computer
Applications, Government Arts College (Autonomous), Coimbatore – 641018.

PLACE : Coimbatore Signature of the Candidate


DATE : 13-04-2024 (SIVARAJAN R)
22MCA520
iii

CERTIFICATE

This is to certify that the project entitle “WORKERS JOB PORTAL” is a


record of an original project work done by SIVARAJAN R (22MCA520)
Submitted to Bharathiar University in a fulfillment of the requirement for the
award of the Degree of MASTER OF COMPUTER APPLICATIONS.

Head of the Department Signature of the Guide

Submitted for the Project Viva-Voce examination held on 13-04-2024

Internal Examiner External Examiner


iv

ACKNOWLEDGEMENT

Hereby, I take this opportunity to acknowledge my deep sense of gratitude


and heartfelt thanks to our beloved Principal Dr. R. ULAGI [Link]. [Link],,
Ph.D., Government Arts College (Autonomous), Coimbatore, who has given
permission to carry out the project by providing necessary and permitting me with
all facilities to complete it successfully.
I also express my sincere and profound thanks to to Head of the Department
Dr. R. A. ROSELINE [Link]. [Link],. Ph. D,. Assistant Professor and Head, Post
Graduate and Research Department of Computer Applications, Government Arts
College(Autonomous), Coimbatore, for her Valuable support and suggesstions in
my project work.
I would also express my sincere gratitude to my internal guide,
Dr.R. VIDYABANU MCA., [Link]., Ph.D., Assistant Professor, Post Graduate
and Research Department of Computer Applications, Government Arts College
(Autonomous) Coimbatore, for who shaped my project into better one with her
guidance for completion of this project.
Finally, I also express my sincere gratitude to all of my parents and
friends who helped for my career without whose sustained support, I could not
have made my debut in Computer Applications.
v

ABSTRACT

In recent years, the digital revolution has transformed the way we work,
communicate, and interact. However, while many industries have embraced
technology advancements, daily wage workers, who constitute a significant
portion of the global workforce, have been largely left behind, this is due to a lack
of access to technology and the internet, as well as the informal of their
employment.

Unfortunately, despite of all the struggles and hard work many of the workers
have lost their jobs. We want to provide a solution that could make a small
difference in their lives that could make it easier to find a job. This idea would
not be useful to only the workers, but also the common people like us who need
their assist. This article addresses the idea that can be implemented to provide a
web platform for the daily wage workers to find a job that could be either
temporary or permanent based on the preference of the employee and the
employer. The technologies/ tools that we are utilizing in the implementation of
the system includes: ReactJS, Node-JS, Express JS, MongoDB.

This website offers a user-friendly interface accessible via web and mobile
devices, enabling daily wage workers to browse, apply, and secure employment
opportunities swiftly and conveniently. Empower integrates advanced search
algorithms that match job seekers with suitable job listings based on their skills,
location, and preferences, ensuring a tailored and efficient job-seeking
experience.
vi

TABLE OF CONTENT

TITLE PAGE NO

DECLARATION II
CERTIFICATE III
ACKNOWLEDGEMENT IV
ABSTRACT V
CHAPTER 1: INTRODUCTION
1.1 About the project 1
1.2 Objectives 2
1.3 Scope for Job Portals 2
CHAPTER 2: SYSTEM REQUIREMENTS
2.1 Software Requirements 3
2.2 Hardware Requirements 3
CHAPTER 3: TECHNOLOGY PLATFORMS
3.1 [Link] 4
3.2 [Link] 5
3.3 [Link] 6
3.4 MongoDB 7
CHAPTER 4: SYSTEM ANALYSIS
4. 1 Literature Survery 8
4.2 Existing System 9
4.3 Proposed System 10
CHAPTER 5: PROJECT FEASIBILITY STUDY 11
5.1 Technical Feasibility
5.2 Economical Feasibility
5.3 Operational Feasibility
vii

TITLE PAGE NO
5.4 Project timeline chart 12
5.5 Analysis Model 13
Figure 1- Water Fall Model 14
CHAPTER 6: SYSTEM DESIGN
6.1 Graphical User Interface 15
6.2 Data flow Diagram 16
6.3 Data flow Diagram symbols 17
6.4 Data flow Diagarm samples 18
6.5 Class Diagram
Figure-2: Class Diagram 20
6.6 Entity Relationship model 21
Figure-3: Entity Relationship Model Diagram
6.7 Module Description. 22
CHAPTER 7: SYSTEM DEVELOPMENT 23
CHAPTER 8: SYSTEM TESTING AND IMPLEMENTATION 25
8.1 System Testing
8.2 System Implementation
CHAPTER 9 :CONCLUSION
9.1 Conclusion 26
9.2 Futue work
APPENDIX A:
[Link] Code 27
[Link] Screen Shots 39
APPENDIX B:
BIBLIOGRAPY 42
1

CHAPTER 1

INTRODUCTION

1.1 ABOUT THE PROJECT


The impact of COVID-19 pandemic on the daily wage workers and migrants has been
largely unsettling. Wages have and important role in maintaining the livelihood and the
well-being of the work force. There has been a severe crisis of employment opportunities
in local labour markets. Getting work for even two days in a week is excruciating difficult.
Daily wages too, for any work possible, have dipped by half. Searching for a job has not
been an easy task for these workers due to the lockdown. Most of the communities have
shut down their entrances for outsiders to avoid as much as the crowd possible.

Daily-wage workers like Carpenters, Electricians, Mechanics, Masons, Cooks,


Launderers, Plumbers, or even student Tutors can use this platform to find a job in a faster
and easier way. As much as we are able to do our essential works, most of us need an assist
to do the chores as we need to buy us some time and energy to do the other jobs that we
do for a living. Hence, we can say that the need for a daily wage worker to get a job for
their survival and the need for us to get an assist in mutual. This is going to be an
extremely useful platform not only for daily-wage workers but also for the ones who are
great at their job but do not have any attractive profile and for the ones who are willing to
do a part time job for some extra money in hand.

For this study secondary data has been collected. From the website of KSE the monthly
stock prices for the sample firms are obtained from Jan 2020 to Dec 2022.
2

1.2 OBJECTIVES

The online job Portal System that is to be developed provides the members with jobs
information, online applying for jobs and many other facilities, This System provides
service to the job applicants to search for working opportunities.

Job Portal will allow job provider to establish one to one relationship with workers. This
Portal will primarily focus on the posting and management of job vacancies. This system
is designed such that ultimately all vacancies will be posted online and would offer
employers the facilities to post their vacancies online.

Job providing and job searching is not only motive of our project, additionally we will add
some extra module that notify current affairs about labours security and empowerment.

1.3 SCOPE FOR JOB PORTALS


There are many prospects for portal sites in the Indian market because there are more
skilled individuals without jobs. Additionally, as India's growth rate soars to a robust
pace of over 7%, businesses and job providers are experiencing a boom, meaning that an
increasing number of lucrative opportunities will become available to job seekers.
Therefore, it is the ideal time for employment portal websites to think creatively and
maximise the chances available to employees.
3

CHAPTER 2
SYSTEM REQUIREMENTS

2.1 SOFTWARE REQUIREMENTS


• Operating System: Windows 10 or Linux-based operating system (e.g., Ubuntu
Server) for hosting backend services. Offering stability and security.
• Database Management System: MongoDB for storing book data, user information,
and session management.
• Backend Framework: [Link] with [Link] for building RESTful APIs and
handling server-side logic.
• Frontend Framework: [Link] for building interactive and responsive user
interfaces.
• Package Manager: NPM (Node Package Manager) for managing project
dependencies and packages.

2.2 HARDWARE REQUIREMENTS


The System requires the following hardware:

• RAM: 4 GB (further increase that as per requirement).


• Hard Disk: 80 GB (further increase that as per requirement)
• Display: 1024*768 True Type Color-32 Bit.
• Mouse: Any Normal Mouse.
• Keyboard: Any window Supported Keyboard.
4

CHAPTER 3

TECHNOLOGY PLATFORMS
This project is going to be implemented using the technologies:

1) ReactJS for frond-end Development(client-side),


2) MongoDB as the database,
3) NodeJS and Express JS for back-end development(server-side).

3.1 REACT JS:

ReactJS is declarative, efficient, and flexible JavaScript library for building reusable UI
components, it is an opensource, component-based frond end library responsible only for the
view layer of the application, it was created by Jordan Walke, who was a software engineer at
Facebook, It was initially developed and maintained by Facebook and was later used in its
products like WhatsApp & Instagram. Facebook developed ReactJS in 2011 in its newsfeed
section, but it was released to the public in the month of May 2013. Today, most of the websites
are built using MVC (model view controller) architecture. In MVC architecture, REACT is the
‘V’ which stands for view, whereas the architecture is provided by the Redux or Flux. A ReactJS
application is made up of multiple components, each component responsible for outputting a
small, reusable piece of HTML code. The components are the heart of all React applications,
These Components can be nested with other components to allow complex applications to be
built of simple building blocks. ReactJS uses virtual DOM based mechanism to fill data in
HTML DOM. The virtual DOM works fast as it only changes individual DOM elements instead
of reloading complete DOM every time.
5

3.2 NODE JS:

[Link] is an open source, cross-platform runtime environment for developing server-


side and networking applications. [Link] applications are written in JavaScript, and can be
run within the [Link] runtime on OS X, Microsoft Windows, and Linux. [Link] also provides
a rich library of various JavaScript modules which simplifies the development of web
applications using [Link] to a great extent. Features of [Link] following are some of the
important features that make [Link] the first choice of software architects.

1) Asynchronous and Event Driven – All APIs of [Link] libraries are asynchronous,
that is, non-blocking. It essentially means a [Link] based server never waits for an
API to return data. The server moves to the next API after calling it and a
notification mechanism of Events of [Link] helps the server to get a response from
the previous API call.
2) Very Fast – Being built on Google Chrome’s V8 JavaScript Engine, [Link] library
is very fast in code execution. Single Threaded but Highly Scalable – [Link] uses
a single threaded model with event looping. Event mechanism helps the server to
respond in a nonblocking way and makes the server highly scalable as opposed to
traditional servers which create limited to handle requests. [Link] uses a single
threaded program and the same program can provide service to much larger number
of requests than traditional servers like Apache HTTP Server.
3) No Buffering - [Link] applications never buffer any data. These applications
simply output the data in chunks,
4) License – [Link] is released under the MIT license.
6

3.3 EXPRESS JS:

Express JS is a small framework that works on top of Node web server functionality to
simplify its APIs and add helpful new features. It makes it easier to organize your application’s
functionality with middleware and routing. It adds helpful utilities to Node HTTP objects and
facilitates the rendering of dynamic HTTP objects.

Why Express?

Express makes the development of Node application very easy and it is very
simple to use. It provides a simple and efficient way to build web
applications and APIs using JavaScript. It helps Node to handling routes,
requests, and responses, making it easier for you to create robust and
scalable applications. As it very flexible, lightweight and easy to learn and
contains a ton of middleware option making it an excellent choice to learn
and use Express in your application.

3.4 MONGO DB:

MongoDB is a document-oriented NoSQL database system that provides high


scalability, flexibility, and performance. Unlike standard relational databases, MongoDB stores
data in a JSON document structure form. This makes it easy to operate with dynamic and
unstructured data and MongoDB is an open-source and cross-platform database System.

Database

• Database is a container for collections.


• Each database gets its own set of files.
• A single MongoDB server can have multiple databases.
7

Why MongoDB?

Document-Oriented Storage – Data is stored in the form o JSON documents.

• Index of any attribute:


o Indexing in MongoDB allows for faster data retrieval by creating a
searchable structure on selected attributes, optimizing query
performance.
• Replication and high availability:
o MongoDB’s multiple sets ensure data redundancy by maintaining
multiple copies of the data, providing fault tolerance and continuous
availability even in case of server failures.
• Auto-Sharding:
o Auto-sharding in MongoDB automatically distributes data across
multiple servers, enabling horizontal scaling and efficient handling
of large datasets.
• Rich queries:
o MongoDB supports complex queries with a variety of operators,
allowing you to retrieve, filter, and manipulate data in flexible and
powerful manner.
• Fast in-place updates:
o MongoDB efficiently updates documents directly in their place,
minimizing data movement and reducing write overhead.
• Professional support by MongoDB:
o Mongo offers expert technical support and resources to help users
with any issues or challenges they may encounter during their
database operations.
8

CHAPTER 4

SYSTEM ANALYSIS

4.1 LITERATURE SURVEY

Hiring is one of the important challenges in the context of online labour marketplace.
Unlike traditional hiring, where workers are hired either as a full- time employee or as a
contractor, hiring from online marketplace are done for individual jobs of short duration, Since
the time of Covid and the lockdown, there has been a severe crisis of employment opportunities
in local labour markets. In a three-month extensive field study undertaken by a research team
at the Centre for New Economics Studies, OP Jindal Global University, have documented the
stories of over 200 daily wage workers through a randomised survey in mazdoor mandis in
Lucknow and Pune. Getting work for even two days in a week is excruciating difficult for the
daily wage workers. Daily wages too, for any work possible, have dipped by half, there are lot
of websites like “[Link]”, “[Link]”, “[Link]”, etc for hiring
temporary workers or daily wage workers where the daily wage workers can be hired by
anyone. The social phenomenon of short-term hiring of freelancers in crowdsourcing platforms
in increasing very rapidly to achieve flexibility and cost savings. One of the Survey found that
amount of time spent by a worker for selecting a task is comparable with the time spent on
working on the task.

Another firm conducted a survey to understand the kind of recommendation workers prefer
while performing tasks on a micro-task matching. In supply driven marketplaces each
freelancer advertises his/her skills and capabilities with confidence, add details of his
experience, etc, as services to attract clients and compete with other professional in the pool.
Clients will search and choose their favourite one from the services.
9

4.2 EXISTING SYSTEMS

In most of the scenarios, an idea like this implemented through agencies where the quotes
a higher price to the person hiring and pay the worker a lesser amount. This makes it and
advantage to the agency alone and makes it a disadvantage to both the person hiring and
the person getting hired. All these below websites use the concept of agencies where
the admin of the enterprise get to interview the worker and quote the price:

1) [Link] - In this website, the complete control of the worker is


in the hands of the agency. They have the policy that says that the employer can pa the
money only if they are satisfied with the performance of the workers.
2) [Link] - In this website, although they are not providing the
option of maid replacement or full payment only if they are satisfied with the worker,
the user has to pay a minimum amount of Rs. 499/- to make use of the website. This
website usage is restricted to the cities Mumbai, Delhi, Gurgaon, Noida, Pune and
Bangalore.
3) [Link] - This website only provides the option to hiring a
maid and does not provide an option to hire the workers for other roles such as
carpenters, plumbers, electricians, etc…
10

4.3 PROPOSED SYSTEM

It is going to be a complete website that can be used by the daily wage workers to find
a job and the employers (The customer or the user who is looking for an assist) who can hire
the worker. The website primarily gives two options:

1) To login as a worker.
2) To login as an employer.

All the daily wage worker has to do is to create an account by using their email ID and password
and undergo an Verification process for security reasons, provide their details such as Name,
Location, Age, Phone number, Religion, Photo, Gender, comfortable languages, experience etc.
The employer can create an account using their email ID and password and undergo and
captcha verification process. Once the employer is logged in, he/she can filter the available
workers based on their requirement of Roles (Such as carpenter, electrician, and plumber etc.),
Language, Location, Age, Gender, Experience, etc, Once the worker is chosen, the user gets an
option to communicate with the worker either through the website or through their contact
number and make the negotiations. Based on their understandings and preferences the worker
can be either hired for a temporary period or as a fulltime employee.
11

CHAPTER 5

PROJECT FEASIBILITY STUDY

5.1 TECHNICAL FEASIBILITY


Technical feasibility study is concerned with specifying equipment and software
that will successfully satisfy the user requirement; the technical needs of the system
may vary considerably. The facility to produce outputs in a given time. Our project is a
web-based application which is based on client-server-based application. In this
application every page as output is render from server to client so it is necessary that
the page should be rendered in time. For this I have avoided more and more code in the
page- load event.

5.2 ECONOMICAL FEASIBILITY

Economical-feasibility is the measure to determine the cost and benefit of the


proposed system. A project is economical feasible which is under the estimated cost for
its development. These benefits and costs may be tangible or intangible. Job Portal is
the cost-effective project in which there is less possibility of intangible cost so there is
no difficulty to determine the cost of the project.

5.3 OPERATIONAL FEASIBILITY

Operation feasibility is used to check whether the project is operationally feasible


or not. Our project is mainly different from the other system because of its web-support
feature. The measure for operational feasibility is something different from other system.
The operational feasibility is related to organization aspects. The change determination is
as such that early product were either a man or group of men or the jobs based manual but
now a day with the advent of Internet technology.
12
5. 4 PROJECT TIMELINE CHART
13

5.5 ANALYSIS MODEL

The model that is basically being followed is the WATER FALL MODEL, which
states that the phases are organized in a linear order. First all the feasibility study is done. Once
that part is over the requirement analysis and project planning begins. If system exists one and
modification and addition of new module is needed, analysis of present system can be used as
basic model.

The design starts after the requirement analysis is complete and the coding begins after
the design is complete, Once the programming is completed, the testing is done. In this model
the sequence of activities performed in a software development project are: -

• Requirement Analysis
• Project Planning
• System design
• Coding
• Unit testing
• System integration & testing

Here the linear ordering of these activities is critical. End of the phase and the output of one
phase is the input of the other phase. The output of each phase is to be consistent with the
overall requirement of the system. Some of the qualities of spiral model are also incorporated
like after the people concerned with the project review completion of each of the phase the
work done.

WATER FALL MODEL was being chosen because all requirements were known
beforehand and the objective of our software development is the computerization/automation
of an already existing manual working system.
14

Figure 1- Water Fall Model


15

CHAPTER 6
SYSTEM DESIGN
6.1 GRAPHICAL USER INTERFACE
In the flexibility of the uses, the interface has been developed a graphics concept in mind,
associated through a browsers interface. The GUI’S at the top level have been categorized as
1. Administrative user interface
2. The operational or generic user interface
The administrative user interface concentrates on the consistent information that is practically,
part of the organizational activities and which needs proper authentication for the data
collection. The interfaces help the administrations with all the transactional states like Data
insertion, Data deletion and Date update along with extensive data search capabilities.
The Operational or generic user interface helps the users upon the system in transactions
through the existing data and required services. The operational user interface also helps the
ordinary users in managing their own information helps the ordinary users in managing their
own information in a customized manner as per the assisted flexibilities.
16

6.3 DATA FLOW DIAGRAMS


One tool for analysing and describing the flow of data across a system is a data flow diagram.
These serve as the main instrument and the foundation for all other system components. The
term "logical data flow diagrams" refers to them. The real tools and data flow across
individuals, departments, and workstations are depicted in the physical data flow diagrams.
Actually, a collection of data flow diagrams is all that is needed to fully describe a system. The
data flow diagrams are developed using two widely used notations: Yourdon, Gane, and Sarson
notation. Every element in a DFD has a label with a meaningful name. An additional number
that will be used for identification further identifies the process. There are various stages
involved in the development of DFDs.
The top-lever diagram is often called as context diagram. It consists a single process bit, which
plays vital role in studying the current system. The process in the context level diagram is
exploded into other process at the first level DFD.

The idea behind the explosion of a process into more process is that understanding
at one level of detail is exploded into greater detail at the next level. This is done until further
explosion is necessary and an adequate amount of detail is described for analyst to understand
the process.

Larry Constantine first developed the DFD as a way of expressing system


requirements in a graphical form, this leads to the modular design.

A DFD is also known as a “bubble Chart” has the purpose of clarifying system
requirements and identifying major transformations that will become programs in system
design.
17

6.4 DFD SYMBOLS:


In the Data Flow Diagram, there are four Symbols
1. A Rectangle defines a source(originator) or destination of system data.
2. An Arrow identifies data flow. It is the pipeline through which the information flows.
3. A Circle or a bubble represents a process that transforms incoming data flow into
outgoing data flows.

Process that transforms data flow.

a
Source or Destination of data

Data flow
18

6.5 0th Level Data flow Diagram’s

Worker Provider

Post
Search

Job Portal
19

1st Level Data flow Diagram’s

Worker Provider
Application
Search

Post
Accept

Job Portal
status Deny
20

6.6 CLASS DIAGRAM

Figure 4 – Class Diagram


21

6.7 Entity Relationship


model

Portal

Figure 5 – Entity Relationship model


22

6.7 MODULE DESCRIPTION WITH ALL FUNCTIONALITIES


The system after careful analysis has been identified to be presented with the following
modules:
The modules involved are:
• Job Seeker
• Job Provider
• Search
• Authentication

JOB SEEKER
In this module Job Seeker register himself and upload his credentials and fill the
profile given by the admin and after login he/she would search for the appropriate jobs and
they could contact the job provider through email or phone calls.

JOB PROVIDER
In this module job Provider register himself and after login he/she could add new
job and he/she could search for the job seekers on various category and they can offer job to
job seeker according to their profile and they can also see the response from job seekers through
mail or by phone call.

SEARCH
This module allows job seekers to search for jobs by keyword and other criteria.

AUTHENTICATION
This module plays a crucial role in ensuring the security and privacy of both job
seekers and employers. This portal should have a flexible verification process that allows users
to authenticate their identity using alternative methods, such as temporary accommodation
details, references from previous employers
23

CHAPTER 7
SYSTEM DEVELOPMENT

1. Development tools:
• Integrated Development Environment (IDE): Visual Studio Code for writing
and debugging code.
• Git: Version control system for tracking changes in codebase, collaboration,
and managing source code.
• [Link]: JavaScript runtime environment for executing server-side code.
• NPM (Node Package Manager): Package manager for installing and managing
project dependencies.
• MongoDB Compass: GUI tool for interacting with MongoDB databases during
development.
2. Backend Requirements:
• [Link]: JavaScript runtime environment for building the backend server.
• [Link]: Web application framework for [Link] to create RESTful APIs and
handle HTTP requests.
• MongoDB: NoSQL database for storing product data, user information, and
session management.
• Mongoose: MongoDB object modelling tool for [Link] to interact with
MongoDB databases.
3. Frontend Requirements:
• [Link]: JavaScript library for building user interfaces and frontend
components.
• React Router: Library for handling client-side routing in React applications.
• Axios: HTTP client for making API requests from the frontend to the backend
server.
• Redux (optional): State management library for managing application state in
large-scale React applications.
4. Authentication and Authorization:
• JSON Web Tokens (JWT): Secure token-based authentication mechanism for
verifying user identity and authorizing access to protected resources.
24

5. Deployment Tools:
• AWS: Cloud hosting platforms for deploying and scaling the application in
production environments.
6. Testing and Quality Assurance:
• React Testing Library or Enzyme: Libraries for testing React components and
user interfaces.
7. Other Tools and Libraries:
• dotenv: Library for loading environment variables from .env files into [Link]
applications.
• bcrypt: Library for hashing passwords securely before storing them in the
database.
• nodemon: Utility for automatically restarting the [Link] server when changes
are detected in the codebase during development.
These software requirements provide the necessary tools and libraries for developing the
Library Management System, covering both backend and frontend development,
authentication, payment integration, deployment, testing, and quality assurance.
25

CHAPTER 8
SYSTEM TESTING AND IMPLEMENTATION

8.1 SYSTEM TESTING


1. Requirements Verification: Ensure that all functional and non-functional
requirements specified for the system are met.
2. Unit Testing: Test individual components of the system, including backend APIs,
frontend components, and database interactions, using tools like Jest, Mocha, or React
Testing Library.
3. Integration Testing: Test the integration between different modules and components
of the system to ensure they work together as expected.
4. End-to-End Testing: Perform end-to-end tests to simulate real user scenarios and
verify that all system components function correctly together. Tools like Cypress or
Selenium can be used for automated end-to-end testing.

8.2 SYSTEM IMPLEMENTATION


1. Deployment Planning: Plan the deployment strategy, including server setup, database
configuration, and environment variables.

2. Environment Setup: Set up production and staging environments for deploying and
testing the system.

3. Database Migration: Migrate the database schema and seed initial data if necessary.
4. Backend Deployment: Deploy backend services, including [Link] server and
[Link] APIs, on the selected hosting platform (AWS) using Docker containers or
traditional server setup.

5. Frontend Deployment: Build the frontend [Link] application and deploy static files
to a web server or CDN (Content Delivery Network) for serving to users.

6. Configuration: Configure environment variables, API endpoints, and other settings for
the deployed environments.
26

CHAPTER 9
9.1 CONCLUSION
It has been a great pleasure for me to work on this exciting and challenging project. This project
proved good for me as its practical knowledge in MERN (MongoDB, [Link], [Link] and
[Link]), and also about all handling procedure with “WORKERS JOB PORTAL”. It also
provides knowledge about the latest technology used in developing web enables application
and client server technology that will be great demand in today’s web Development
Environment. This will provide better opportunities and guidance in future in developing
projects independently.

9.2 FUTURE WORK


This System being web-based and an undertaking of Cyber Security Division, needs to be
thoroughly tested to find out any security gaps.
A console for the data centre may be made available to allow the personnel to monitor on the
sites which were cleared for hosting during a particular period.
Moreover, it’s just a beginning, further the system may be utilized in various types of auditing
operation viz. Network auditing or similar process / workflow-based applications.
27

SOURCE CODE
SIGN UP PAGE
import React, { useState } from "react";
import { useForm } from "react-hook-form";
import CreatableSelect from "react-select/creatable";

const Signup = () => {


const [selectedOptions, setSelectedOptions] = useState(null);
const {register,reset,handleSubmit,formState: { errors },
} = useForm();
const onSubmit = (data) => {
fetch("[Link] {
method: "POST",
headers: { "content-type": "application/json" },
body: [Link](data),
})
.then((res) => [Link]())
.then((result) => {
[Link](result);
if ([Link] === true) {
alert("User Registered Successfully"); }
reset();
});
};
28

<form onSubmit={handleSubmit(onSubmit)}>
{/* row 1 first name and last name */}
<div className="flex -mx-3">
<div className="w-1/2 px-3 mb-5">
<label for="" className="text-xs font-semibold px-1">
First name
</label>
<div className="flex">
<div className="w-10 z-10 pl-1 text-center pointer-events-none flex items-
center justify-center">
{/* <i class="mdi mdi-account-outline text-gray-400 text-lg"></i> */}
</div>
<input
type="text"
className="w-full -ml-10 pl-10 pr-3 py-2 rounded-lg border-2 border-gray-200
outline-none focus:border-indigo-500"
placeholder="Ex: Sivarajan"
{...register("firstName")}
/>
</div>
</div>
<div className="w-1/2 px-3 mb-5">
<label for="" className="text-xs font-semibold px-1">
Last name
</label>
<div className="flex">
<div className="w-10 z-10 pl-1 text-center pointer-events-none flex items-
center justify-center">
29

{/* <i class="mdi mdi-account-outline text-gray-400 text-lg"></i> */}


</div>
<input
type="text"
{...register("lastName")}
className="w-full -ml-10 pl-10 pr-3 py-2 rounded-lg border-2 border-gray-200
outline-none focus:border-indigo-500"
placeholder="Ex: Rathinavel"
/>
</div>
</div>
</div>
{/* row 2 age and pno*/}
<div className="flex -mx-3">
<div className="w-1/2 px-3 mb-5">
<label for="" className="text-xs font-semibold px-1">
Age
</label>
<div className="flex">
<div className="w-10 z-10 pl-1 text-center pointer-events-none flex items-
center justify-center">
<i class="mdi mdi-account-outline text-gray-400 text-lg"></i>
</div>
<input
type="text"
{...register("age")}
className="w-full -ml-10 pl-10 pr-3 py-2 rounded-lg border-2 border-gray-200
outline-none focus:border-indigo-500"
30

placeholder="Ex:22"
/>
</div>
</div>
<div className="w-1/2 px-3 mb-5">
<label for="" className="text-xs font-semibold px-1">
Phone No
</label>
<div className="flex">
<div className="w-10 z-10 pl-1 text-center pointer-events-none flex items-
center justify-center">
<i class="mdi mdi-account-outline text-gray-400 text-lg"></i>
</div>
<input
type="text"
{...register("phoneNumber")}
className="w-full -ml-10 pl-10 pr-3 py-2 rounded-lg border-2 border-gray-200
outline-none focus:border-indigo-500"
placeholder="Ex: 93xxxxxx04"
/>
</div>
</div>
</div>
{/* row 3 user role */}
<div className="flex -mx-3">
<div className="w-full px-3 mb-12">
<label for="" className="text-xs font-semibold px-1">
User role
31

</label>
<div className="flex">
<div className="w-10 z-10 pl-1 text-center pointer-events-none flex items-
center justify-center">
<i class="mdi mdi-lock-outline text-gray-400 text-lg"></i>
</div>
<select
{...register("jobRole")}
className="w-full -ml-10 pl-10 py-2 rounded-lg border-2 border-gray-200
outline-none focus:border-indigo-500"
>
<option value="">Select your role</option>
<option value="provider">Job Provider</option>
<option value="seeker">Job Seeker</option>
</select>
</div>
</div>
</div>
{/* row 4 skill and experience level */}
<div className="flex -mx-3">
<div className="w-1/2 px-3 mb-5">
<label for="" className="text-xs font-semibold px-1">
Skill
</label>
<div className="flex">
<div className="w-10 z-10 pl-1 text-center pointer-events-none flex items-
center justify-center">
<i class="mdi mdi-account-outline text-gray-400 text-lg"></i>
32

</div>
<input
type="text"
{...register("skill")}
className="w-full -ml-10 pl-10 pr-3 py-2 rounded-lg border-2 border-gray-200
outline-none focus:border-indigo-500"
placeholder="Ex:Carpenter"
/>
</div>
</div>
<div className="w-1/2 px-3 mb-5">
<label for="" className="text-xs font-semibold px-1">
Experience Level
</label>
<div className="flex">
<div className="w-10 z-10 pl-1 text-center pointer-events-none flex items-
center justify-center">
<i class="mdi mdi-account-outline text-gray-400 text-lg"></i>
</div>
<select
{...register("experienceLevel")}
className="w-full -ml-10 pl-10 py-2 rounded-lg border-2 border-gray-200
outline-none focus:border-indigo-500"
>
<option value="">Select your Level</option>
<option value="fresher">Fresher</option>
<option value="intermediate">Intermediate</option>
<option
value="experienced">Experienced</option></select></div></div></div>
33

<div className="w-full px-3 mb-5">


<label for="" className="text-xs font-semibold px-1">
Email
</label>
<div className="flex">
<div className="w-10 z-10 pl-1 text-center pointer-events-none flex items-
center justify-center">
<i class="mdi mdi-email-outline text-gray-400 text-lg"></i>
</div>
<input
{...register("email")}
type="email"
className="w-full -ml-10 pl-10 pr-3 py-2 rounded-lg border-2 border-gray-200
outline-none focus:border-indigo-500"
placeholder="Ex:user@[Link]"
/>
</div>
</div>
</div>
{/* row 7 Password*/}
<div className="flex -mx-3">
<div className="w-full px-3 mb-12">
<label for="" className="text-xs font-semibold px-1">
Password
</label>
<div className="flex">
<div className="w-10 z-10 pl-1 text-center pointer-events-none flex items-
center justify-center">
34

<i class="mdi mdi-lock-outline text-gray-400 text-lg"></i>


</div>
<input
{...register("password")}
type="password"
className="w-full -ml-10 pl-10 pr-3 py-2 rounded-lg border-2 border-gray-200
outline-none focus:border-indigo-500"
placeholder="************"
/>
</div>
</div>
</div>
{/* row 8 Button */}
<div className="flex -mx-3">
<div className="w-full px-3 mb-5">
<button className="block w-full max-w-xs mx-auto bg-blue hover:bg-indigo-
700 focus:bg-indigo-700 text-white rounded-lg px-3 py-3 font-semibold">
REGISTER NOW
</button> </div> </div> </form>
35

LOGIN PAGE
import React, { useState } from "react";
import { useForm } from "react-hook-form";
import CreatableSelect from "react-select/creatable";
<div>
<form action="">
<div className="flex -mx-3">
<div className="w-full px-3 mb-5">
<label for="" className="text-xs font-semibold px-1">
Email
</label>
<div className="flex">
<div className="w-10 z-10 pl-1 text-center pointer-events-none flex items-
center justify-center">
<i class="mdi mdi-email-outline text-gray-400 text-lg"></i>
</div>
<input
type="email"
className="w-full -ml-10 pl-10 pr-3 py-2 rounded-lg border-2 border-gray-200
outline-none focus:border-indigo-500"
placeholder="username@[Link]"
/>
</div>
</div>
</div>
<div className="flex -mx-3">
<div className="w-full px-3 mb-12">
<label for="" className="text-xs font-semibold px-1">
36

Password
</label>
<div className="flex">
<div className="w-10 z-10 pl-1 text-center pointer-events-none flex items-
center justify-center">
<i class="mdi mdi-lock-outline text-gray-400 text-lg"></i>
</div>
<input
type="password"
className="w-full -ml-10 pl-10 pr-3 py-2 rounded-lg border-2 border-gray-200
outline-none focus:border-indigo-500"
placeholder="************"
/>
</div>
</div>
</div>
<div className="flex -mx-3">
<div className="w-full px-3 mb-5">
<button className="block w-full max-w-xs mx-auto bg-blue hover:bg-indigo-
700 focus:bg-indigo-700 text-white rounded-lg px-3 py-3 font-semibold">
LOGIN
</button>
</div>
</div>
37

HOME PAGE
import React, { useEffect, useState } from "react";
import Banner from "../Components/Banner";
import Card from "../Components/Card";
import Jobs from "../Pages/Jobs";
import Sidebar from "../sidebar/Sidebar";
import NewsLetter from "../Components/NewsLetter";

const Home = () => {


const [selectedCategory, setSelectedCategory] = useState(null);
const [jobs, setJobs] = useState([]);
const [isLoading, setIsLoading] = useState(true);
const [currentPage, setCurrentPage] = useState(1);
const itemsPerPage = 6;

// Fetching data from json file


useEffect(() => {
setIsLoading(true);
fetch("[Link]
.then((res) => [Link]())
.then((data) => {
// [Link](data)
setJobs(data);
setIsLoading(false);
});
}, []);
38

//category filtering
if (selected) {
filteredJobs = [Link](
({
jobLocation,
maxPrice,
experienceLevel,
salaryType,
employmentType,
postingData,
}) =>
[Link]() === [Link]() ||
parseInt(maxPrice) <= parseInt(selected) ||
postingData >= selected ||
[Link]() === [Link]() ||
[Link]() === [Link]() ||
[Link]() === [Link]()
);
// [Link](filteredJobs);
}
//slice the data based on current page
const { startIndex, endIndex } = calculatePageRange();
//-------------------slicing the no of the items would displaying on the screen------
-----------------------
filteredJobs = [Link](startIndex, endIndex);
return [Link]((data, i) => <Card key={i} data={data} />);
}; const result = filteredData(jobs, selectedCategory, query, newQuery);
39

SAMPLE SCREEN SHOTS


REGISTRATION PAGE

Figure-6 Registration page

LOGIN PAGE

Figure-7 Login page


40

JOB POSTING BY PROVIDER

Figure 8: job posting by a provider

VIEWING JOB POSTED BY THE PROVIDER

Figure-9: Job provider’s job viewing page after job registration.


41

WORKER JOB APPLY SECTION

Figure -10: In this section seeker can find job by searching according to their
skills.
42

REFERENCES
Book
• VASAN SUBRAMANIAN - Pro MERN Stack (Full Stack Web
App Development with Mongo Express, React, and Node) Second
Edition

Websites
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]

You might also like