0% found this document useful (0 votes)
19 views62 pages

Hrms Project Report

hrms project

Uploaded by

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

Hrms Project Report

hrms project

Uploaded by

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

GOVERNMENT GIRLS’ POLYTECHNIC

VARANASI

Session: 2023-2024

A Minor Project on

Human Resource Management System


(HRMS)

Submitted By: -
Submitted To: -

1
Pallavi Pandey Mrs.
Ritima Tripathi
Saloni Singh

2
ACKNOWLEDGEMENT

I would like to express my deep and sincere gratitude to my supervisor Mrs. Ritima

Tripathi ma’am, who gave us her full support and encouraged me to work in an

innovative and challenging project for educational field. Her wide knowledge and

logical thinking gave me right direction all the time.

I am deeply grateful my project coordinator for her help and support provided at

every step of the project. Last but not the least, I thank to everyone for their support

and co-operation.

Pallavi Pandey
Saloni Singh

SOFTPRO INDIA
COMPUTER TECHNOLOGIES PVT.LTD.
(AN ISO 9001 : 2015 CERTIFIED COMPANY)

3
SPI/VT/2023/.339……....

COMPLETION CERTIFICATE

This is to certify that Ms. Pallavi Pandey of Diploma in IT from Government


Girls Polytechnic, Varanasi was working on the project entitled “HRMS” in Softpro
India Computer Technologies Pvt. Ltd. She was engaged for a period of 45 days.

She has done an excellent job during her engagement with the Software
Development & Testing Division of the company. She has completed her project
during the training tenure. Her performance has been good and satisfactory.

I would like to take this opportunity to express my appreciation to Ms. Pallavi


Pandey for her work and wish her all the very best for her future endeavors.

Regards,

Ms. Yashi Asthana

CEO

Softpro India Computer Technologies Pvt. Ltd.

Lucknow (U.P.)

4
SOFTPRO INDIA
COMPUTER TECHNOLOGIES PVT.LTD.
(AN ISO 9001 : 2015 CERTIFIED COMPANY)

SPI/VT/2023/.166……....

COMPLETION CERTIFICATE

This is to certify that Ms. Saloni Singh of Diploma in IT from Government Girls
Polytechnic, Varanasi was working on the project entitled “HRMS” in Softpro India
Computer Technologies Pvt. Ltd. She was engaged for a period of 45 days.

She has done an excellent job during her engagement with the Software
Development & Testing Division of the company. She has completed her project
during the training tenure. Her performance has been good and satisfactory.

I would like to take this opportunity to express my appreciation to Ms. Saloni Singh
for her work and wish her all the very best for her future endeavors.

Regards,

Ms. Yashi Asthana

CEO

Softpro India Computer Technologies Pvt. Ltd.

Lucknow (U.P.)

DECLARATION

5
This is to certify that the project report entitled “HRMS” is done by me is an

authentic work carried out for the partial fulfillment of the requirements for the

award of the Diploma in “Information Technology” under the guidance of Mrs.

Ritima Tripathi. The matter embodied in this project work has not been submitted

earlier for award of any degree or diploma to the best of my knowledge and belief.

Pallavi Pandey
Saloni Singh

INDEX
1. Introduction………………………………………………………………………
1.1. Overview of Organization
1.2. Literature survey
1.3. Objectives & Scope

2. Requirements Specification……………………………………………………
2.1. Data Flow Diagram

6
2.1.1. DFD level 0
2.1.2. DFD level 1
2.1.3. ER-Diagram

3. Feasibility Study…………………….………….………………………………
3.1. Software Technology Used
3.2. Hardware Technology Used
3.2.1. For Client Side
3.2.2. For Server Side
3.3. Technical Feasibility
3.4. Economical Feasibility
3.5. Operational Feasibility

4. System Design…….…………………………………………………………
4.1. Spiral Model
4.2. System Designing Approaches
4.2.1. Top-Down designing
4.2.2. Bottom-Up designing
4.3. Following Approach

5. Database Design…………………………………………………………………………
6. Component Level Design………………………………………………………
6.1. Name and Description of modules
6.2. Modules and their description

7. Snapshots…………………………………………………………………………
8. Coding………………….…………………………………………………………
9. Future Scope………………………………………………………………………
10. Conclusion……………………………………………………………………….

7
8
INTRODUCTION

This project is made for the ElectrotechEngg Solutions, Roorkee who want to make implement
‘PAPERLESS OFFICE’ in field of Human Resource Management. The purpose of the project in
organizational perspective is to generate a fully computerized human resource system. All Data of the
related share is needed to be present on the system so that whenever there is a need to view process or
extract any information it can be done. It saves time and avoids losses.

Literature survey:

For preparing of this literature survey, I have taken a lot of steps for collecting the articles about the HRMS.
First Sir/madam, told us about what is literature survey? and what are the steps involved for preparing it. He
had given me the topic – “HRMS” for the survey. We used a combination of surveys, focus groups, and one-
on-one interviews to gather information from faculty, and from key personnel at another institute.

Objectives & Scope:

We have the following aims and objectives of HRMS System:

 To ease the functioning of the company.


 To avoid delays as postal delays.
 To increase the existing systems efficiency and reliability as a whole by many times
 To reduce effort involved in processing the data.
 It’s developed for smooth functioning.
 To ease the interaction between candidate and company.
 To provide transparent system to all the employees of the company.
 Improved Productivity of the HR Department of the Company
 Optimal Utilization of Resources.
 Reduction in time taken in execution of activities.
 Better Information sharing among different department.
 Cost cutting in maintaining employee’s data.
 Reduces the man power.
 Reduces the time improve the functionality of organization.

9
Requirements specification

Data Flow Diagrams

DFD LEVEL 0

DFD LEVEL 1

10
Entity Relationship Diagram

11
Feasibility Study

Software Specification

Software Technology Used:

 Operating system windows 7 and 8


 PyCharm Community Edition
 Python
 Internet Explorer 8.0 and above, Chrome or Any Supported Browser
 HTML & CSS
 Java Script
 SQLite Database
 Visio for DFD and ER
 Paint and MS Picture Manager.

Hardware Technology Used:

For Client Side:

 System type: 32-bit Operating System


 Processor: Intel® Pentium® dual CPU e2220 2.20 GHZ
 RAM 256 GB
 Monitor 16 Color Monitor
 Hard Disk 1 GB
 Keyboard
 Mouse

For Server Side:

 Server Xeon Based or Higher End Server


 Ram 4 GB

12
 Hard Disk 200 GB Disk Space

Technical Feasibility

The assessment is based on an outline design of system requirements in terms of Input, Processes, Output,
Fields, Programs, and Procedures. This can be quantified in terms of volumes of data, trends, frequency of
updating, etc. in order to estimate whether the new system will perform adequately or not. Technological
feasibility is carried out to determine whether the company has the capability, in terms of software,
hardware, personnel and expertise, to handle the completion of the project when writing a feasibility report,
the following should be taken to consideration:

 A brief description of the business


 The part of the business being examined
 The human and economic factor
 The possible solutions to the problems

System is given more importance than the actual makes of hardware. The configuration should as we know
the technical feasibility is concerned with specifying equipment and software that will successfully satisfy
the user requirement. The technical needs of the system may vary considerably, but might include:

 The facility to produce outputs in a given time.


 Response time under certain conditions is minimal.
 Ability to process a certain volume of transaction at a particular
speed.
 Facility to communicate data to distinct location.

In examining the technical feasibility, configuration of the given the complete picture about the system’s
requirement, how these units are interconnected so that they could operate and communicate smoothly. -
For the design and development of the system, several software products have been accommodated.
· Database design – SQLite (Preferred) or any other DBMS.
· Coding – PyCharm

13
This technology (Python with Django framework) has enough efficiency in producing the system.
Therefore, the project is technically feasible.

Economical Feasibility

Economic analysis is the most frequently used technique for evaluating the effectiveness of the proposed
system. More commonly known as cost/benefit analysis, the procedure is to determine the benefit and
saving that are expected from the purposed system and compare with costs. If benefits outweigh cost, a
decision is taken to design and implement the system. Otherwise, further justification or alternative of the
proposed system will have to be made if it has a chance of being approved. This is a going effort that
improves in accuracy at each phase of the system life cycle. The analysis part also clears the doubt of
economic problem, which could be possible in developing the system. As already mentioned, that the
company has to just pay developed software cost and not other investment is needed at the time of
implementation of the new system as the preliminary requirements already exist in company. According to
the resources available and the project scheduling process it is estimated that the expenses allocated for the
web application to be developed, by the client is sufficient enough. Hence the economical factor has been
considered feasible.

Operational Feasibility

Proposed projects are beneficial only if they can be turned into information system that will meet the
operating requirements of the organization. These tests of feasibility ask if the system will work when it
developed and installed. Are there major barriers to implementation? Some of the important question that is
useful to test the operational feasibility of a project is given below:

 Is there sufficient support for the project from the implementation? From user? If present system is
well liked and use to the extent that person will not be able to see reason for change, there may be
resistance.

 Are current business methods acceptable to the user? They are not, user may welcome a change that
will bring about a more operational and useful system.

 Have the user been involved at the earliest stage of project development; the chance of resistance can
be possibly reduced.

14
System Design

Software Process Model Followed:

SPIRAL MODEL:

The Spiral Model is one that couples the iterative nature of prototyping with controlled and systematic
aspect of linear sequential or waterfall model. It provides the potential for rapid development of incremental
versions of the system. Here it is used for successful development of Sales and Product Management
System.
Spiral Model consists of four phases:

 Planning
 Risk Analysis
 Engineering
 Customer Evolution
Risk Analysis
Planning PLANNING RISK ANALYSIS Based on
based on initial
customer requirement
evaluation

Towards a
completed
system

Customer
Evaluation
Initial
software
CUSTOMER prototype
EVOLUTION
ENGINEERING

15
Software Development Process moves throughout these four phases until the Software is not implemented.
In the last phase (Customer Evaluation), End User evaluates the product, and gives the comments according
to requirement. On basis Software either goes forward in the phases or for implementation process.

In this software project the spiral modal is used for development. The spiral model, combines the iterative
nature of prototyping with the controlled and systematic aspects of the waterfall model, there in
providing the potential for rapid development of incremental versions of the software. In this model the
software is developed in a series of incremental releases with the early stages being either paper models
or prototypes. Later iterations become increasingly more complete versions of the product.

The model is divided into a number of task regions. These regions are:
1. The customer communication task – to establish effective communication between developer and
customer.
2. The planning task – to define resources, time lines and other project related information.
3. The risk analysis task – to assess both technical and management risks.
4. The engineering task – to build one or more representations of the application.
5. The construction and release task – to construct, test, install and provide user support (e.g.,
documentation and training).

16
6. The customer evaluation task – to obtain customer feedback based on the evaluation of the software
representation created during the engineering stage and implemented during the install stage.

The evolutionary process begins at the center position and moves in a clockwise direction. Each traversal of
the spiral typically results in a deliverable. For example, the first and second spiral traversals may result in
the production of a product specification and a prototype, respectively. Subsequent traversals may then
produce more sophisticated versions of the software.

An important distinction between the spiral model and other software models is the explicit consideration of
risk. There are no fixed phases such as specification or design phases in the model and it encompasses other
process models. For example, prototyping may be used in one spiral to resolve requirement uncertainties and
hence reduce risks. This may then be followed by a conventional waterfall development.
Each of the regions is populated by a set of work tasks called a task set that are adapted to characteristics of
the project to be undertaken. For small projects the number of tasks and their formality is low. Conversely,
for large projects the reverse is true.
Advantages of the Spiral Model

 The spiral model is a realistic approach to the development of large-scale software products because
the software evolves as the process progresses. In addition, the developer and the client better
understand and react to risks at each evolutionary level.
 The model uses prototyping as a risk reduction mechanism and allows for the development of
prototypes at any stage of the evolutionary development.
 It maintains a systematic stepwise approach, like the classic life cycle model, but incorporates it into
an iterative framework that more reflect the real world.
 If employed correctly, this model should reduce risks before they become problematic, as
consideration of technical risks are considered at all stages.

17
System Designing Approaches

Top – Down designing:

The top - down designing approach started with major components of the system. It is a stepwise refinement
which starts from an abstract design, in each steps the design is refined two or more concrete levels until we
reach a level where no – more refinement is possible or not needed.

Bottom – Up designing:

In bottom – up designing the most basic and primitive components are designed first, and we proceed to
higher level components. We work with layers of abstractions and abstraction are implemented until the
stage is reached where the operations supported by the layer is complete.

Approach we are following:

18
In this project we are following Mixed Approach i.e. A combination of top – down and bottom – up. We
are developing some of the components using top – down designing approach (e.g. the Webpages) and some
components in bottom – up designing approach (e.g. the middle tier classes).

Database Design

Table Name: empinfo


Primary Key: empid
Column name datatype
Empid int
Empname varchar(50)
Gender varchar(50)
Fathersname varchar(50)
address1 varchar(MAX)
address2 varchar(MAX)
Contactno varchar(20)
Emailaddress varchar(50)
Department varchar(50)
Designation varchar(50)
Salary int

Table Name: login


Primary key –userid

Column Name Data Type


Userid varchar(50)
Passwd varchar(50)

Table Name- notification


Primary key: id

Column Name DateTime


Id int
Notificationmsg varchar(MAX)
19
Notificationdate date

Table Name:
Table Name- joinus
Primary key-id

Column Name DataType


Id Int
Emailid Varchar(50)
Passwd Varchar(50)
Name Varchar(50)
Gender Vrchar(50)
Address1 Varchar(MAX)
Address2 Varchar(MAX)
ContactNo Varchar(50)
Message Varchar(MAX)

Table Name: jobseeker


Primary key-emailid

Column Name DataType

Emailed Varchar(50)
Passwd Varchar(20)
Name Varchar(50)
Gender Varchar(20)
Address Varchar(MAX)
Contactno Varchar(20)
City Varchar(MAX)
Qualification Varchar(50)
Experience Varchar(10)
Keyskill Varchar(MAX)

20
Component Level Design

Name and Description of Modules

1.
Employee Authentication and Login Management

2.
Employee Registration

3.
Job Seekers Management

4.
Dynamic Updated Events Management

5.
Feedback Management

6.
Enquiry Management

7.
Recruitment Management

8.
Credential Management

Modules And Their Description:

 Employee Authentication and Login Management:

In this module authenticate employees can login using password. It includes:


21
Employee Login ID, Password.

 Employee Registration:

In the Employee Registration Module New employees can register here for login id and password.

In the Employee Registration Module New Jobseeker can register here for login id and password

 Job Seekers Management:

In the Job Seeker management Module Those users which are interested for a good and competitive
carrier finding the jobs in the different areas. For this, first user will register here and then after login
he can search the job and also apply the job.

 Dynamic Updated Events Management:

It includes the various events of the company organized by HR and Admin. Employees can
participate in the events.

22
Snap Shots

Home Page:-

23
About Page:-

24
25
Services Page:-

Contact Us Page: -

26
Admin Page: -

27
28
Coding

parent.html code:-
<!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="UTF-8">
<title>HRMS</title>
<style>
#outer
{
width:1000px;
height:1200px;
//border:1px solid white;
margin:auto;
}
#header
{
width:1000px;
height:150px;
}
#logo
{
width:150px;
height:150px;

29
background-color: pink;
float:left;
}
#banner
{
width:850px;
height:150px;
background-color:navy;
float:right;
font-size:50px;
color:white;
text-align:center;
line-height:150px;
}
#menu
{
width:1000px;
height:50px;
background-color:white;
margin-top:5px;
border:1px solid white;
}
#menu ul
{
list-style-type:none;
}
#menu ul li
{
display:inline;
}
#menu ul li a
{
padding:20px;
font-size:20px;
text-decoration:none;
color:black;
}
#menu ul li a:hover
{
color:red;
30
}
#slider
{
width:1000px;
height:200px;
background-color:grey;
margin-top:5px;
}
#parent
{
width:1000px;
height:700px;
margin-top:5px;
}
#left
{
width:300px;
height:700px;
background-color:aqua;
float:left;
}
#main
{
width:700px;
height:700px;
background-color:white;
float:right;
}
#footer
{
width:1000px;
height:80px;
margin-top:5px;
}
#lfooter
{
width:500px;
height:80px;
background-color:black;
float:left;
31
color:white;
font-size:30px;
text-align:center;
line-height:80px;
}
#rfooter
{
width:500px;
height:80px;
background-color:navy;
float:right;
color:white;
font-size:30px;
text-align:center;
line-height:80px;
}
</style>
<script>
var
imgnames=["slider_1.jpg","slider_2.gif","slider_3.jpg"
,"slider_4.jpg"];
var i=0;
baseurl="{% static 'images/' %}";
function moveslider()
{
if(i==imgnames.length)
{
i=0;
}
document.getElementById("slide").src=baseurl+imgnames[
i];
i++;
window.setTimeout("moveslider()",2000);
}
</script>
</head>
<body bgcolor="green" onload="moveslider()">
<div id="outer">
<div id="header">
32
<div id="logo">
<img src="{% static 'images/logo.png'
%}" width="150" height="150"/>
</div>
<div id="banner">
Human Resource Management System
</div>
</div>
<div id="menu">
<ul>
<li><a href="{% url 'index'
%}">Home</a></li>
<li><a href="{% url 'aboutus'
%}">About Us</a></li>
<li><a href="{% url 'registration'
%}">Registration</a></li>
<li><a href="{% url 'login'
%}">Login</a></li>
<li><a href="{% url 'contactus'
%}">Contact Us</a></li>
</ul>
</div>
<div id="slider">
<img id="slide" width="1000"
height="200"/>
</div>
<div id="parent">
<div id="left">
<marquee direction="up" height="500"
behavior="alternate" onmouseover="stop()"
onmouseout="start()">
{% for n in nf %}
<p style="text-
align:center;color:red;">{{n.notificationtext}}</p>
<p style="text-
align:center;">{{n.notificationdate}}</p>
{% endfor %}
</marquee>
</div>
<div id="main">
33
{% block body %}

{% endblock body %}
</div>
</div>
<div id="footer">
<div id="lfooter">
Copyright &copy; to HRMS
</div>
<div id="rfooter">
Developed By:- Brijesh Mishra
</div>
</div>
</div>
</body>
</html>

registration.html code:-

{% extends "parent.html" %}
{% block body %}
<h1 style="color:blue;text-align:center;">
Job Seeker Registration
</h1>
{% if msg %}
<p style="text-align:center;">{{msg}}</p>
{% endif %}
<form action="{% url 'savejobseeker' %}"
method="post">
{% csrf_token %}
<table style="margin:0 auto;width:50%;">
<tr>
<td>Enter Name</td>
<td>
<input type="text" name="name"/>
</td>
</tr>
<tr>
34
<td>Select Gender</td>
<td>
<input type="radio" name="gender"
value="Male"/>Male
<input type="radio" name="gender"
value="Female"/>Female
</td>
</tr>
<tr>
<td>Enter Address</td>
<td>
<textarea name="address"></textarea>
</td>
</tr>
<tr>
<td>Enter Contact No.</td>
<td>
<input type="number"
name="contactno"/>
</td>
</tr>
<tr>
<td>Enter Email Address</td>
<td>
<input type="email"
name="emailaddress"/>
</td>
</tr>
<tr>
<td>Enter Qualification</td>
<td>
<input type="text"
name="qualification"/>
</td>
</tr>
<tr>
<td>Enter Experience</td>
<td>
<input type="text" name="experience"/>
</td>
35
</tr>
<tr>
<td>Key Skills</td>
<td>
<textarea name="keyskills"></textarea>
</td>
</tr>
<tr>
<td>Enter Date Of Birth</td>
<td>
<input type="date" name="dob"/>
</td>
</tr>
<tr>
<td>Enter Aadhar No</td>
<td>
<input type="number" name="aadharno"/>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Submit"/>
</td>
</tr>
</table>
</form>
{% endblock body %}

login.html code:-
{% extends "parent.html" %}
{% block body %}
<h1 style="color:blue;text-align:center;">
Admin Login
</h1>
{% if msg %}
<p style="text-align:center;">{{msg}}</p>
{% endif %}
36
<form action="{% url 'validateuser' %}" method="post">
{% csrf_token %}
<table style="width:50%;margin:0 auto;">
<tr>
<td>Enter User Id</td>
<td>
<input type="text" name="userid"/>
</td>
</tr>
<tr>
<td>Enter Password</td>
<td>
<input type="password"
name="password"/>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Login"/>
</td>
</tr>
</table>
</form>
{% endblock body %}

contactus.html code:-
{% extends "parent.html" %}
{% block body %}
<h1 style="color:blue;text-align:center;">
Enquiry Form
</h1>
{% if msg %}
<p style="text-align:center;">{{msg}}</p>
{% endif %}
<form action="{% url 'saveenq' %}" method="post">
{% csrf_token %}
<table style="margin:0 auto;width:50%;">
37
<tr>
<td>Enter Name</td>
<td>
<input type="text" name="name"/>
</td>
</tr>
<tr>
<td>Select Gender</td>
<td>
<input type="radio" name="gender"
value="Male"/>Male
<input type="radio" name="gender"
value="Female"/>Female
</td>
</tr>
<tr>
<td>Enter Address</td>
<td>
<textarea name="address"></textarea>
</td>
</tr>
<tr>
<td>Enter Contact No.</td>
<td>
<input type="text" name="contactno"/>
</td>
</tr>
<tr>
<td>Enter Email Address</td>
<td>
<input type="email"
name="emailaddress"/>
</td>
</tr>
<tr>
<td>Enter Enquiry Text</td>
<td>
<textarea
name="enquirytext"></textarea>
</td>
38
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Submit"/>
</td>
</tr>

</table>
</form>
{% endblock body %}

hrapp.views.py code:-
from django.shortcuts import render, redirect, reverse
from . models import Enquiry, JobSeeker, AdminLogin
import datetime
from django.core.exceptions import ObjectDoesNotExist
from adminzone.models import Notification

# Create your views here.


def index(request):
nf=Notification.objects.all()
return render(request,"index.html",{'nf':nf})
def aboutus(request):
nf=Notification.objects.all()
return render(request,"aboutus.html",{'nf':nf})
def registration(request):
nf=Notification.objects.all()
return render(request,"registration.html",
{'nf':nf})
def login(request):
nf=Notification.objects.all()
return render(request,"login.html",{'nf':nf})
def contactus(request):
nf=Notification.objects.all()
return render(request,"contactus.html",{'nf':nf})
def saveenq(request):
name=request.POST['name']
gender=request.POST['gender']
39
address=request.POST['address']
contactno=request.POST['contactno']
emailaddress=request.POST['emailaddress']
enquirytext=request.POST['enquirytext']
enq=Enquiry(name=name,gender=gender,address=address,co
ntactno=contactno,emailaddress=emailaddress,enquirytex
t=enquirytext)
enq.save()
msg='Enquiry is saved.'
return render(request,"contactus.html",
{'msg':msg})
def savejobseeker(request):
name=request.POST['name']
gender=request.POST['gender']
address=request.POST['address']
contactno=request.POST['contactno']
emailaddress=request.POST['emailaddress']
qualification=request.POST['qualification']
experience=request.POST['experience']
keyskills=request.POST['keyskills']
dob=request.POST['dob']
aadharno=request.POST['aadharno']
regdate=datetime.datetime.today()
js=JobSeeker(name=name,gender=gender,address=address,c
ontactno=contactno,emailaddress=emailaddress,qualifica
tion=qualification,experience=experience,keyskills=key
skills,dob=dob,aadharno=aadharno,regdate=regdate)
js.save()
msg='Registration is done.'
return render(request,"registration.html",
{'msg':msg})
def validateuser(request):
userid=request.POST['userid']
password=request.POST['password']
msg=''
try:
obj=AdminLogin.objects.get(userid=userid,password=pass
word)
40
if obj is not None:
request.session['userid']=userid
return
redirect(reverse('adminzone:adminhome'))
except ObjectDoesNotExist:
msg='Invalid User'
return render(request,"login.html",{'msg':msg})

hrapp.models.py code:-
from django.db import models

# Create your models here.


class Enquiry(models.Model):
name=models.CharField(max_length=50)
gender=models.CharField(max_length=6)
address=models.CharField(max_length=200)
contactno=models.CharField(max_length=15)
emailaddress=models.EmailField(max_length=50)
enquirytext=models.CharField(max_length=500)
class JobSeeker(models.Model):
name=models.CharField(max_length=50)
gender=models.CharField(max_length=6)
address=models.CharField(max_length=200)
contactno=models.CharField(max_length=15)
emailaddress=models.EmailField(max_length=50,primary_k
ey=True)
qualification=models.CharField(max_length=50)
experience=models.CharField(max_length=10)
keyskills=models.CharField(max_length=200)
dob=models.CharField(max_length=30)
aadharno=models.CharField(max_length=12)
regdate=models.CharField(max_length=30)
class AdminLogin(models.Model):
userid=models.CharField(max_length=50,primary_key=True
)
password=models.CharField(max_length=20)

41
hrapp.hrappurls.py code:-

from django.urls import path


from . import views

urlpatterns=[
path('',views.index,name='index'),
path('aboutus/',views.aboutus,name='aboutus'),
path('registration/',views.registration,name='registra
tion'),
path('login/',views.login,name='login'),
path('contactus/',views.contactus,name='contactus'),
path('saveenq/',views.saveenq,name='saveenq'),
path('savejobseeker/',views.savejobseeker,name='savejo
bseeker'),
path('validateuser/',views.validateuser,name='validate
user'),
]

adminparent.html code:-
<!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="UTF-8">
<title>Welcome To Admin Zone</title>
<style>
#outer
{
width:1000px;
height:auto;
min-height:1000px;
//border:1px solid white;
margin:0 auto;
42
}
#header
{
width:1000px;
height:150px;
}
#logo
{
width:150px;
height:150px;
background-color:pink;
float:left;
}
#banner
{
width:850px;
height:150px;
background-color:navy;
float:right;
color:white;
font-size:60px;
text-align:center;
line-height:150px;
}
#menu
{
width:1000px;
height:50px;
background-color:white;
margin-top:5px;
border:1px solid white;
}
#menu ul
{
list-style-type:none;
}
#menu ul li
{
display:inline;
}
43
#menu ul li a
{
font-size:20px;
padding:20px;
text-decoration:none;
color:black;
}
#main
{
width:1000px;
height:auto;
min-height:700px;
background-color:white;
margin-top:5px;
border:1px solid white;
}
#footer
{
width:1000px;
height:85px;
margin-top:5px;
}
#lfooter
{
width:500px;
height:85px;
background-color:black;
float:left;
color:white;
font-size:35px;
text-align:center;
line-height:85px;
}
#rfooter
{
width:500px;
height:85px;
background-color:navy;
float:right;
color:white;
44
font-size:35px;
text-align:center;
line-height:85px;
}
</style>
</head>
<body bgcolor="green">
<div id="outer">
<div id="header">
<div id="logo">
<img src="{% static 'images/logo.png'
%}" width="150" height="150"/>
</div>
<div id="banner">
Welcome To Admin Zone
</div>
</div>
<div id="menu">
<ul>
<li><a href="{% url
'adminzone:adminhome' %}">Home</a></li>
<li><a href="{% url
'adminzone:enquiry' %}">Enquiry</a></li>
<li><a href="{% url
'adminzone:jobseeker' %}">Job Seeker</a></li>
<li><a href="{% url
'adminzone:employee' %}">Employee</a></li>
<li><a href="{% url
'adminzone:changepassword' %}">Change
Password</a></li>
<li><a href="{% url 'adminzone:logout'
%}">Logout</a></li>
</ul>
</div>
<div id="main">
{% block body %}

{% endblock body %}
</div>
<div id="footer">
45
<div id="lfooter">
Copyright &copy; to HRMS
</div>
<div id="rfooter">
Developed By:- Brijesh Mishra
</div>
</div>
</div>
</body>
</html>

adminhome.html code:-
{% extends "adminparent.html" %}
{% block body %}
<h1 style="color:blue;text-align:center;">
Notification Management
</h1>
<form action="{% url 'adminzone:addnotification'
%}" method="post">
{% csrf_token %}
<table style="margin:0 auto; width:50%;">
<tr>
<td>Enter Notification Text</td>
<td>
<textarea
name="notificationtext"></textarea>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Add"/>
</td>
</tr>
</table>
</form>
<br/><br/>
<table style="margin:0 auto;width:60%;"
border="1">
46
<tr>
<th>Id</th>
<th>Notification Text</th>
<th>Notification Date</th>
<th>Delete</th>
</tr>
{% for n in nf %}
<tr>
<td>{{n.id}}</td>
<td>{{n.notificationtext}}</td>
<td>{{n.notificationdate}}</td>
<td>
<a href="{% url
'adminzone:deletenotification' n.id %}">Delete</a>
</td>
</tr>
{% endfor %}
</table>
{% endblock body %}

changepassword.html code:-
{% extends "adminparent.html" %}
{% block body %}
<h1 style="color:blue;text-align:center;">
Change Password
</h1>
{% if msg %}
<p style="color:red;text-
align:center;">{{msg}}</p>
{% endif %}
<form action="{% url 'adminzone:changepwd' %}"
method="post">
{% csrf_token %}
<table style="margin:0 auto;width:50%;">
<tr>
<td>Enter Old Password</td>
<td>
<input type="password"
name="oldpassword"/>
47
</td>
</tr>
<tr>
<td>Enter New Password</td>
<td>
<input type="password"
name="newpassword"/>
</td>
</tr>
<tr>
<td>Confirm Password</td>
<td>
<input type="password"
name="confirmpassword"/>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit"
value="Change"/>
</td>
</tr>
</table>
</form>
{% endblock body %}

employee.html code:-
{% extends "adminparent.html" %}
{% block body %}
<h1 style="color:blue;text-align:center;">
Employee Information System
</h1>
<form action="{% url 'adminzone:saveemployee' %}"
method="post">
{% csrf_token %}
<table style="margin:0 auto;width:50%;">
<tr>
48
<td>Enter Employee Id</td>
<td>
<input type="number"
name="empid"/>
</td>
</tr>
<tr>
<td>Enter Employee Name</td>
<td>
<input type="text"
name="empname"/>
</td>
</tr>
<tr>
<td>Select Gender</td>
<td>
<input type="radio" name="gender"
value="Male"/>Male
<input type="radio" name="gender"
value="Female"/>Female
</td>
</tr>
<tr>
<td>Enter Address</td>
<td>
<textarea
name="address"></textarea>
</td>
</tr>
<tr>
<td>Enter Contact No</td>
<td>
<input type="number"
name="contactno"/>
</td>
</tr>
<tr>
<td>Enter Email Address</td>
<td>
<input type="email"
49
name="emailaddress"/>
</td>
</tr>
<tr>
<td>Enter Date Of Joining</td>
<td>
<input type="date" name="doj"/>
</td>
</tr>
<tr>
<td>Enter Department</td>
<td>
<input type="text"
name="department"/>
</td>
</tr>
<tr>
<td>Enter Designation</td>
<td>
<input type="text"
name="designation"/>
</td>
</tr>
<tr>
<td>Enter Pan no.</td>
<td>
<input type="text" name="panno"/>
</td>
</tr>
<tr>
<td>Enter aadhar no.</td>
<td>
<input type="number"
name="aadharno"/>
</td>
</tr>
<tr>
<td>Enter Salary</td>
<td>
<input type="number"
50
name="salary"/>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit"
value="Save"/>
</td>
</tr>
</table>
</form>
<br/><br/>
<div style="width:1000px;height:auto;overflow-
x:auto;">
<table border="1" style="width:95%;margin:0
auto;">
<tr>
<th>Employee Id</th>
<th>Employee Name</th>
<th>Gender</th>
<th>Address</th>
<th>Contact No</th>
<th>Email Address</th>
<th>Date of Joining</th>
<th>Department</th>
<th>Designation</th>
<th>PAN No.</th>
<th>Aadhar No.</th>
<th>Salary</th>
<th>Delete</th>
<th>Update</th>
</tr>
{% for e in emp %}
<tr>
<td>{{e.empid}}</td>
<td>{{e.empname}}</td>
<td>{{e.gender}}</td>
<td>{{e.address}}</td>
<td>{{e.contactno}}</td>
51
<td>{{e.emailaddress}}</td>
<td>{{e.doj}}</td>
<td>{{e.department}}</td>
<td>{{e.designation}}</td>
<td>{{e.panno}}</td>
<td>{{e.aadharno}}</td>
<td>{{e.salary}}</td>
<td>
<a href="{% url
'adminzone:deleteemployee' e.empid %}">Delete</a>
</td>
<td>
<a href="{% url
'adminzone:updateemployee' e.empid %}">Update</a>
</td>
</tr>
{% endfor %}
</table>
</div>
{% endblock body %}

enquiry.html code:-

{% extends "adminparent.html" %}
{% block body %}
<h1 style="color:blue;text-align:center;">
Enquiry Management
</h1>
<table border="1" style="width:80%;margin:0
auto;">
<tr>
<th>Id</th>
<th>Name</th>
<th>Gender</th>
<th>Address</th>
<th>Contact No</th>
<th>Email Address</th>
<th>Enquiry Text</th>
<th>Delete</th>

52
</tr>
{% for e in enq %}
<tr>
<td>{{e.id}}</td>
<td>{{e.name}}</td>
<td>{{e.gender}}</td>
<td>{{e.address}}</td>
<td>{{e.contactno}}</td>
<td>{{e.emailaddress}}</td>
<td>{{e.enquirytext}}</td>
<td>
<a href="{% url
'adminzone:deleteenquiry' e.id %}">Delete</a>
</td>
</tr>
{% endfor %}
</table>
{% endblock body %}

jobseeker.html code:-
{% extends "adminparent.html" %}
{% block body %}
<h1 style="color:blue;text-align:center;">
Manage Jobseeker
</h1>
<table border="1" style="margin:0
auto;width:95%;">
<tr>
<th>Name</th>
<th>Gender</th>
<th>Address</th>
<th>Contact No</th>
<th>Email Address</th>
<th>Qualification</th>
<th>Experience</th>
<th>Key Skills</th>
<th>Date of Birth</th>
<th>Aadhar No</th>
<th>Reg Date</th>
53
<th>Delete</th>
</tr>
{% for j in js %}
<tr>
<td>{{j.name}}</td>
<td>{{j.gender}}</td>
<td>{{j.address}}</td>
<td>{{j.contactno}}</td>
<td>{{j.emailaddress}}</td>
<td>{{j.qualification}}</td>
<td>{{j.experience}}</td>
<td>{{j.keyskills}}</td>
<td>{{j.dob}}</td>
<td>{{j.aadharno}}</td>
<td>{{j.regdate}}</td>
<td>
<a href="{% url
'adminzone:deletejobseeker' j.emailaddress
%}">Delete</a>
</td>
</tr>
{% endfor %}
</table>
{% endblock body %}

updateemployee.html code:-

{% extends "adminparent.html" %}
{% block body %}
<h1 style="color:blue;text-align:center;">Update
Employee Information</h1>
<form action="{% url 'adminzone:updateemp' %}"
method="post">
{% csrf_token %}
<table style="width:50%;margin:0 auto;">
<tr>
<td>Employee Id</td>
<td>
54
<input type="text" name="empid"
readonly="true" value="{{emp.empid}}"/>
</td>
</tr>
<tr>
<td>Employee Name</td>
<td>
<input type="text" name="empname"
value="{{emp.empname}}"/>
</td>
</tr>
<tr>
<td>Gender</td>
<td>
<input type="text" name="gender"
value="{{emp.gender}}" readonly="true"/>
</td>
</tr>
<tr>
<td>Address</td>
<td>
<textarea
name="address">{{emp.address}}</textarea>
</td>
</tr>
<tr>
<td>Contact No</td>
<td>
<input type="number"
name="contactno" value="{{emp.contactno}}"/>
</td>
</tr>
<tr>
<td>Email Address</td>
<td>
<input type="email"
name="emailaddress" value="{{emp.emailaddress}}"/>
</td>
</tr>
<tr>
55
<td>Date Of Joining</td>
<td>
<input type="text" name="doj"
value="{{emp.doj}}" readonly="true"/>
</td>
</tr>
<tr>
<td>Department</td>
<td>
<input type="text"
name="department" value="{{emp.department}}"/>
</td>
</tr>
<tr>
<td>Designation</td>
<td>
<input type="text"
name="designation" value="{{emp.designation}}"/>
</td>
</tr>
<tr>
<td>PAN No.</td>
<td>
<input type="text" name="panno"
value="{{emp.panno}}"/>
</td>
</tr>
<tr>
<td>Aadhar No</td>
<td>
<input type="number"
name="aadharno" value="{{emp.aadharno}}"/>
</td>
</tr>
<tr>
<td>Salary</td>
<td>
<input type="number" name="salary"
value="{{emp.salary}}"/>
</td>
56
</tr>
<tr>
<td></td>
<td>
<input type="submit"
value="Update"/>
</td>
</tr>
</table>
</form>
{% endblock body %}

adminzone.views.py code:-

from django.shortcuts import render, redirect


from . models import Notification, Employee
import datetime
from hrapp.models import Enquiry, JobSeeker,
AdminLogin

# Create your views here.


def adminhome(request):
try:
if request.session['userid'] is not None:
nf=Notification.objects.all()
return render(request,"adminhome.html",
{'nf':nf})
except:
return render(request,"login.html")
def enquiry(request):
try:
if request.session['userid'] is not None:
enq=Enquiry.objects.all()
return render(request,"enquiry.html",
{'enq':enq})
except:
return render(request,"login.html")
def jobseeker(request):
57
try:
if request.session['userid'] is not None:
js=JobSeeker.objects.all()
return render(request,"jobseeker.html",
{'js':js})
except:
return render(request,"login.html")
def employee(request):
try:
if request.session['userid'] is not None:
emp=Employee.objects.all()
return render(request,"employee.html",
{'emp':emp})
except:
return render(request,"login.html")
def changepassword(request):
try:
if request.session['userid'] is not None:
return
render(request,"changepassword.html")
except:
return render(request,"login.html")
def logout(request):
request.session['userid']=None
return render(request,"login.html")
def addnotification(request):
notificationtext=request.POST['notificationtext']
notificationdate=datetime.datetime.today()
nf=Notification(notificationtext=notificationtext,noti
ficationdate=notificationdate)
nf.save()
return redirect('adminzone:adminhome')
def deletenotification(request,id):
nf=Notification.objects.get(id=id)
nf.delete()
return redirect('adminzone:adminhome')
def deleteenquiry(request,id):
enq=Enquiry.objects.get(id=id)
enq.delete()
58
return redirect('adminzone:enquiry')
def deletejobseeker(request,emailaddress):
js=JobSeeker.objects.get(emailaddress=emailaddress)
js.delete()
return redirect('adminzone:jobseeker')
def saveemployee(request):
empid=request.POST['empid']
empname=request.POST['empname']
gender=request.POST['gender']
address=request.POST['address']
contactno=request.POST['contactno']
emailaddress=request.POST['emailaddress']
doj=request.POST['doj']
department=request.POST['department']
designation=request.POST['designation']
panno=request.POST['panno']
aadharno=request.POST['aadharno']
salary=request.POST['salary']
emp=Employee(empid=empid,empname=empname,gender=gender
,address=address,contactno=contactno,emailaddress=emai
laddress,doj=doj,department=department,designation=des
ignation,panno=panno,aadharno=aadharno,salary=salary)
emp.save()
return redirect('adminzone:employee')
def deleteemployee(request,empid):
emp=Employee.objects.get(empid=empid)
emp.delete()
return redirect('adminzone:employee')
def changepwd(request):
userid=request.session['userid']
oldpassword=request.POST['oldpassword']
newpassword=request.POST['newpassword']
confirmpassword=request.POST['confirmpassword']
msg=''
if(newpassword!=confirmpassword):
msg='Newpassword and confirmpassword are not
matched.'
return render(request,"changepassword.html",

59
{'msg':msg})
user=AdminLogin.objects.get(userid=userid,password=old
password)
if user is not None:
ad=AdminLogin(userid=userid,password=newpassword)
ad.save()
return redirect('adminzone:logout')
else:
msg='Old password is not matched.'
return render(request,"changepassword.html",
{'msg':msg})
def updateemployee(request,empid):
emp=Employee.objects.get(empid=empid)
return render(request,"updateemployee.html",
{'emp':emp})
def updateemp(request):
empid=request.POST['empid']
empname=request.POST['empname']
gender=request.POST['gender']
address=request.POST['address']
contactno=request.POST['contactno']
emailaddress=request.POST['emailaddress']
doj=request.POST['doj']
department=request.POST['department']
designation=request.POST['designation']
panno=request.POST['panno']
aadharno= request.POST['aadharno']
salary=request.POST['salary']
emp=Employee(empid=empid,empname=empname,gender=gender
,address=address,contactno=contactno,emailaddress=emai
laddress,doj=doj,department=department,designation=des
ignation,panno=panno,aadharno=aadharno,salary=salary)
emp.save()
return redirect('adminzone:employee')

adminzone.models.py code:-
60
from django.db import models

# Create your models here.


class Notification(models.Model):
notificationtext=models.CharField(max_length=200)
notificationdate=models.CharField(max_length=30)
class Employee(models.Model):
empid=models.IntegerField(primary_key=True)
empname=models.CharField(max_length=50)
gender=models.CharField(max_length=6)
address=models.TextField()
contactno=models.CharField(max_length=15)
emailaddress=models.EmailField(max_length=50)
doj=models.CharField(max_length=30)
department=models.CharField(max_length=50)
designation=models.CharField(max_length=50)
panno=models.CharField(max_length=10)
aadharno=models.CharField(max_length=12)
salary=models.IntegerField()

adminzoneurls.py code:-

from django.urls import path


from . import views

urlpatterns=[
path('adminhome/',views.adminhome,name='adminhome'),
path('enquiry/',views.enquiry,name='enquiry'),
path('jobseeker/',views.jobseeker,name='jobseeker'),
path('employee/',views.employee,name='employee'),
path('changepassword/',views.changepassword,name='chan
gepassword'),
path('logout/',views.logout,name='logout'),
path('addnotification/',views.addnotification,name='ad
dnotification'),
path('deletenotification/?P<id>\

61
d+',views.deletenotification,name='deletenotification'
),
path('deleteenquiry/?P<id>\
d+',views.deleteenquiry,name='deleteenquiry'),
path('deletejobseeker/?P<emailaddress>\
s+',views.deletejobseeker,name='deletejobseeker'),
path('saveemployee/',views.saveemployee,name='saveempl
oyee'),
path('deleteemployee/?P<empid>\
d+',views.deleteemployee,name='deleteemployee'),
path('changepwd/',views.changepwd,name='changepwd'),
path('updateemployee/?P<empid>\
d+',views.updateemployee,name='updateemployee'),
path('updateemp/',views.updateemp,name='updateemp'),

FUTURE SCOPE

Following modification or upgrades can be done in system.


1. More than one company can be integrated through this software.
2. Web services can be used to know exact online shopping in e-commerce sites.
3. Client can check their online shopping status online.

CONCLUSION:
During extended interviews with employees, we found different processes leading to the successful
development and deployment of portals. The portal doesn’t have to be expensive. It should support multiple
campus goals. It is clear that the functionality of a portal develops over time.

62

You might also like