Blood Bank Project
Blood Bank Project
PROJECT REPORT
On
Human Resource
Management System (HRMS)
of
1
PREFACE
“Necessity is Mother of All Inventions”
Summer training is an important part of the engineering curriculum. The
Diploma course summer training helps a student in getting acquainted
with the manner in which his/her knowledge is being practically used
outside his/her institute and this is normally different from what he/she
has learnt from books. Hence, when the student switches from the
process of learning to that of implementing his/her knowledge, he/she
finds an abrupt change. This is exactly why summer training session
during the B.E curriculum becomes all the more important. Summer
training is prescribed for the student of Technical College as a part of the
four-year degree course of engineering by the AICET. We are required to
undergo summer training for a period of 45 days after the completion of
the 2nd year.
This training report describes in detail the training after the 3rd year
session, which I completed at the Softpro India Computer Technology
(P) Ltd. . This report also gives the information about the organization
and it’s working along with the project undertaken in the training period.
The fundamental step used in SDLC process is based on the ISO 9001
guidelines. My aim was to follow the ISO guidelines and develop a
perfect system.
2
ACKNOWLEDGEMENT
(P) Ltd.), who gave me his full support and encouraged me to work in an
knowledge and logical thinking gave me right direction all the time.
provided at every step of the project. Last but not the least, I thank to all
Pallavi Pandey
Saloni Singh
SOFTPRO INDIA
COMPUTER TECHNOLOGIES PVT.LTD.
(AN ISO 9001 : 2015 CERTIFIED COMPANY)
3
SPI/VT/
2023/.339……....
COMPLETION CERTIFICATE
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.
Regards,
CEO
Lucknow (U.P.)
4
SOFTPRO INDIA
COMPUTER TECHNOLOGIES PVT.LTD.
(AN ISO 9001 : 2015 CERTIFIED COMPANY)
SPI/VT/
2023/.166……....
COMPLETION CERTIFICATE
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.
Regards,
CEO
Lucknow (U.P.)
DECLARATION
5
This is to certify that the project report entitled “HRMS” is done by me is
The matter embodied in this project work has not been submitted earlier
belief.
Pallavi Pandey
Saloni Singh
INDEX
1. introduction……………………………………………………………………
…
6
1.1 Overview of Organization
1.2 Objectives
1.3 Existing System Description
1.4 Proposed System
1.5 Tools Used
2. System
Analysis…………………………………………………………………
2.1 Objective
2.2 SDLC Phases
2.2.1 Feasibility Study
2.2.2 Report Approval
2.2.3 System Analysis
2.2.4 System Design
2.2.5 Coding
2.2.6 Testing
2.2.7 Implementation
2.2.8 Maintenance
2.3 Process Description
2.4 Project Model Used
2.5 ER-Diagram
2.6 Data Flow Diagram
3. Software Requirement Specification………….
………………………………
3.1 Hardware Requirement
3.2 Software Requirement
3.3 Support Maintenance
4. System Design
Approach…………………………………………………………
4.1 Top-Down Designing
4.2 Bottom –Up Designing
4.3 Following Approach
5. Low Level
Design…………………………………………………………………………
7
7. Testing……………………………………………………………………………
…
8. Input-Output
Forms………………………………………………………………
8.1 Modularization Details
8.2 User Screenshots
8.3 Admin Screenshots
9. Future
Scope………………………………………………………………………
10. Conclusion…………………………………………………………………
…….
8
INTRODUCTION
This project is made for the ElectrotechEngg Solutions, Roorkie 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 other institute.
9
Reduces the time improve the functionality of organization.
Softpro India Computer Technologies (P) Limited was founded in 2004 with the
mission of “Bridging the Technology gap”.
Provides programming services, Application Development and Integration Services,
Web Design and Development Services, Search Engine Optimization Services (SEO)
and Back-office services.
10
Requirements specification
11
DFD LEVEL 0
DFD LEVEL 1
12
13
Entity Relationship Diagram
14
Feasibility Study
Software Specification
15
Technical Feasibility
System is given more importance than the actual make 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:
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.
16
· Database design – SQLite (Preferred) or any other DBMS.
· Coding – Pycharm
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.
17
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.
18
System Design
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
Software Development Process moves throughout these four phase until the Software is not
implemented .In the last phase (Customer Evaluation), End User evaluates the product, and
19
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.
20
5. The construction and release task – to construct, test, install and provide user
support (e.g., documentation and training).
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 centre 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
21
System Designing Approaches
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.
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
22
approach (e.g. the WebPages) and the some components in bottom – up designing approach
(e.g. the middle tier classes).
Database Design
23
Table Name:
Table Name- joinus
Primary key-id
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)
24
Component Level Design
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
25
Modules And Their Description:
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
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.
26
Snap Shots
Index Page:-
Enquiry Page:-
27
Job Seeker Registration Page:-
28
Admin Home Page:-
29
Update Employee Page:-
30
Manage Enquiry Page:-
31
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
32
{
width:1000px;
height:150px;
}
#logo
{
width:150px;
height:150px;
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;
}
33
#menu ul li a
{
padding:20px;
font-size:20px;
text-decoration:none;
color:black;
}
#menu ul li a:hover
{
color:red;
}
#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;
}
34
#footer
{
width:1000px;
height:80px;
margin-top:5px;
}
#lfooter
{
width:500px;
height:80px;
background-color:black;
float:left;
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)
35
{
i=0;
}
document.getElementById("slide").src=baseurl+im
gnames[i];
i++;
window.setTimeout("moveslider()",2000);
}
</script>
</head>
<body bgcolor="green" onload="moveslider()">
<div id="outer">
<div id="header">
<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>
36
</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">
{% block body %}
{% endblock body %}
</div>
</div>
<div id="footer">
<div id="lfooter">
Copyright © to HRMS
</div>
<div id="rfooter">
Developed By:- Brijesh Mishra
</div>
</div>
</div>
</body>
</html>
37
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>
<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>
38
<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>
</tr>
<tr>
<td>Key Skills</td>
<td>
<textarea
name="keyskills"></textarea>
</td>
</tr>
<tr>
<td>Enter Date Of Birth</td>
<td>
39
<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 %}
<form action="{% url 'validateuser' %}"
method="post">
{% csrf_token %}
<table style="width:50%;margin:0 auto;">
<tr>
<td>Enter User Id</td>
40
<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%;">
41
<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>
42
<td>Enter Enquiry Text</td>
<td>
<textarea
name="enquirytext"></textarea>
</td>
</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
43
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']
address=request.POST['address']
contactno=request.POST['contactno']
emailaddress=request.POST['emailaddress']
enquirytext=request.POST['enquirytext']
enq=Enquiry(name=name,gender=gender,address=add
ress,contactno=contactno,emailaddress=emailaddr
ess,enquirytext=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']
44
regdate=datetime.datetime.today()
js=JobSeeker(name=name,gender=gender,address=ad
dress,contactno=contactno,emailaddress=emailadd
ress,qualification=qualification,experience=exp
erience,keyskills=keyskills,dob=dob,aadharno=aa
dharno,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,passwo
rd=password)
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
45
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,pr
imary_key=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_k
ey=True)
password=models.CharField(max_length=20)
hrapp.hrappurls.py code:-
urlpatterns=[
path('',views.index,name='index'),
path('aboutus/',views.aboutus,name='aboutus'),
path('registration/',views.registration,name='r
egistration'),
path('login/',views.login,name='login'),
path('contactus/',views.contactus,name='contact
46
us'),
path('saveenq/',views.saveenq,name='saveenq'),
path('savejobseeker/',views.savejobseeker,name=
'savejobseeker'),
path('validateuser/',views.validateuser,name='v
alidateuser'),
]
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;
}
#header
{
width:1000px;
height:150px;
}
#logo
{
width:150px;
height:150px;
background-color:pink;
47
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;
}
#menu ul li a
{
font-size:20px;
padding:20px;
text-decoration:none;
color:black;
}
#main
{
48
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;
font-size:35px;
text-align:center;
line-height:85px;
}
</style>
</head>
<body bgcolor="green">
49
<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">
<div id="lfooter">
Copyright © to HRMS
</div>
<div id="rfooter">
50
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%;"
51
border="1">
<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%;">
52
<tr>
<td>Enter Old Password</td>
<td>
<input type="password"
name="oldpassword"/>
</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;">
53
Employee Information System
</h1>
<form action="{% url
'adminzone:saveemployee' %}" method="post">
{% csrf_token %}
<table style="margin:0
auto;width:50%;">
<tr>
<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>
54
<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 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"
55
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"
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>
56
<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>
<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>
57
{% 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>
</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 %}
58
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>
<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>
59
<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>
<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>
60
<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>
<td>Date Of Joining</td>
<td>
<input type="text"
name="doj" value="{{emp.doj}}"
readonly="true"/>
</td>
</tr>
<tr>
61
<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>
</tr>
<tr>
<td></td>
<td>
62
<input type="submit"
value="Update"/>
</td>
</tr>
</table>
</form>
{% endblock body %}
adminzone.views.py code:-
63
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=notificationte
xt,notificationdate=notificationdate)
nf.save()
return redirect('adminzone:adminhome')
def deletenotification(request,id):
64
nf=Notification.objects.get(id=id)
nf.delete()
return redirect('adminzone:adminhome')
def deleteenquiry(request,id):
enq=Enquiry.objects.get(id=id)
enq.delete()
return redirect('adminzone:enquiry')
def deletejobseeker(request,emailaddress):
js=JobSeeker.objects.get(emailaddress=emailaddr
ess)
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,ema
iladdress=emailaddress,doj=doj,department=depar
tment,designation=designation,panno=panno,aadha
rno=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):
65
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",
{'msg':msg})
user=AdminLogin.objects.get(userid=userid,passw
ord=oldpassword)
if user is not None:
ad=AdminLogin(userid=userid,password=newpasswor
d)
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']
66
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,ema
iladdress=emailaddress,doj=doj,department=depar
tment,designation=designation,panno=panno,aadha
rno=aadharno,salary=salary)
emp.save()
return redirect('adminzone:employee')
adminzone.models.py code:-
67
aadharno=models.CharField(max_length=12)
salary=models.IntegerField()
adminzoneurls.py code:-
urlpatterns=[
path('adminhome/',views.adminhome,name='adminho
me'),
path('enquiry/',views.enquiry,name='enquiry'),
path('jobseeker/',views.jobseeker,name='jobseek
er'),
path('employee/',views.employee,name='employee'
),
path('changepassword/',views.changepassword,nam
e='changepassword'),
path('logout/',views.logout,name='logout'),
path('addnotification/',views.addnotification,n
ame='addnotification'),
path('deletenotification/?P<id>\
d+',views.deletenotification,name='deletenotifi
cation'),
path('deleteenquiry/?P<id>\
d+',views.deleteenquiry,name='deleteenquiry'),
path('deletejobseeker/?P<emailaddress>\
s+',views.deletejobseeker,name='deletejobseeker
'),
path('saveemployee/',views.saveemployee,name='s
aveemployee'),
path('deleteemployee/?P<empid>\
d+',views.deleteemployee,name='deleteemployee')
68
,
path('changepwd/',views.changepwd,name='changep
wd'),
path('updateemployee/?P<empid>\
d+',views.updateemployee,name='updateemployee')
,
path('updateemp/',views.updateemp,name='updatee
mp'),
FUTURE SCOPE
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.
69