Workers Job Portal Final
Workers Job Portal Final
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.
CERTIFICATE
ACKNOWLEDGEMENT
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
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.
CHAPTER 2
SYSTEM REQUIREMENTS
CHAPTER 3
TECHNOLOGY PLATFORMS
This project is going to be implemented using the technologies:
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
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
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.
Database
Why MongoDB?
CHAPTER 4
SYSTEM ANALYSIS
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
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:
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
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
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
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.
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
a
Source or Destination of data
Data flow
18
Worker Provider
Post
Search
Job Portal
19
Worker Provider
Application
Search
Post
Accept
Job Portal
status Deny
20
Portal
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
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.
SOURCE CODE
SIGN UP PAGE
import React, { useState } from "react";
import { useForm } from "react-hook-form";
import CreatableSelect from "react-select/creatable";
<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
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
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";
//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
LOGIN PAGE
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]