Group 15 CSE-2 Final Year Project Report
Group 15 CSE-2 Final Year Project Report
ON
PLACEMENT
MANAGEMENT SYSTEM
submitted
in partial fulfillment for the degree of
B.TECH
IN
COMPUTER SCIENCE & ENGINEERING
(KCS-851)
by
NIKHIL KUMAR(1900270100119)
MAYANK GANDHI(1900270100104)
PRASHANT PANWAR (1900270100132)
NIKHIL KUMAR SINGH(1900270100118)
UNDER THE GUIDANCE OF
DR. CHARU AGARWAL
ii
DECLARATION
Mayank Gandhi(1900270100104)
Prashant Panwar(1900270100132)
iii
ACKNOWLEDGMENTS
We take this opportunity to thank Dr. Charu Agarwal and
other faculty members who helped in preparing the guidelines.
Nikhil Kumar(1900270100119)
Mayank Gandhi(1900270100104)
Prashant Panwar(1900270100132)
iv
ABSTRACT
v
LIST OF FIGURES
FIGURE TITLE PAGE NUMBER
vi
ABBREVIATIONS/ NOTATIONS/
NOMENCLATURE
This section provides the definitions of all terms, acronyms, and abbreviations
required to interpret this report.
vii
TABLE OF CONTENTS
CERTIFICATE ii
DECLARATION iii
ACKNOWLEDGEMENTS iv
ABSTRACT v
LIST OF FIGURES vi
1. Introduction 1
Preface 1
Theoretical Background 3
Problem Definition 4
2. Overall Description 7
Project Perspective 7
Product Functions 7
Operating Environment 9
User Documentation 10
External Interface 11
Communications Interfaces 12
viii
System Features 12
Performance Requirements 13
Safety Requirements 13
Security Requirements 14
4. Requirements Modeling 15
ER Diagram 19
Class Diagrams 20
Sequence Diagrams 21
Gantt Chart 28
Activity Diagram 29
5. Experimental Analysis/Testing 30
7. Future Scope 65
8. Conclusion 66
References 67
Resumes 69
ix
CHAPTER 1
INTRODUCTION
1.1 Preface
As a final year student it is very crucial and important phase to get placed
at a particular company. Thus, colleges play a vital role for students to
get a job. Thus our project aims to do the same. It helps students to login
3
into the system and apply for the companies which have job vacancies.
At the same time admin will approve the student and help in throughout
the recruitment and placement procedure.
Placement Management System provides online help to the users all over
the world. Using web recruitment systems like recruitment websites or
jobsites also play a role in simplifying the recruitment process. Such
websites have facilities where prospective candidates can upload their
CV’s and apply for jobs suited to them. Such sites also make it possible
for recruiters and companies to post their staffing requirements and view
profiles of interested candidates.
Earlier recruitment was done manually and it was all at a time consuming
work. Now it is all possible in a fraction of second. It is all done online
without much time consuming. Today’s recruitment applications are
designed to do a whole lot more than just reduce paperwork. They can
make a significant contribution to a company’s marketing and sales
activity. Recruitment websites and software make possible for managers
to access information that is crucial to managing their staff, which they
can use for promotion decisions, payroll considerations and succession
planning.
Proposed System
The project has a wide scope. Our project mainly helps in improving
productivity and makes use of utilization of resources. There is no
duplication of work as this was not the case when done manually. Thus it
reduces labor and increases morale. The system intends user friendly
operations which may resolve ambiguity. The project is a total
management and informative system, which provides the up- to-date
information of all the students in the college.
Our system also helps the college to overcome the difficulty in keeping
records of hundreds of students and searching for a student eligible for
recruitment criteria from the whole thing. It helps in effective and timely
utilization of resources. The project facilitates a user friendly, reliable
and fast management system.
The placement officer itself can carry out operations in a smooth and
effective manner. They need not concentrate on record keeping. The
college can maintain computerized records thus reducing paper work,
time and money.
The System would store all the academic as well as personal details of
the students who wish to be placed and the Companies who offer jobs to
the students. The details of the Companies as well as the students may be
updated or modified or deleted to keep the information up to date.
Also notifications would be sent to the students about the Companies i.e.
5
details like the Company profile, eligibility criteria for the job profile etc.
Also the information regarding the Placement activities or procedure for
a particular Company i.e. the selection rounds or procedure. means that
block chain can provide a secure platform for transactions, where
customers can trust that their personal and financial information is safe
and transactions are secure.
Features:
6
Chapter 2
Overall Description
The System would also be able to search the eligible students and
company with respect to their specification and requirement.
7
2.3 User Classes and Characteristics
● Student
○ New student needs to Sign Up or Register giving complete details.
○ They can submit resume and update profile information.
○ They can register for Particular Company.
● Administrator
● Company
Design Constraints:
9
2.6 User Documentation
● We are assuming that the user should have some basic knowledge of
Computer.
● Jobseeker should be from any fields.
10
Chapter 3
SOFTWARE REQUIREMENTS
SPECIFICATIONS
On Client Side:
On Server Side:
11
Hardware Requirements:
The product will host a local Apache web server where the user interface
will be displayed via the Google Chrome web browser. The scripting
language will define image placement, size and overall set-up. Javascript
will also be used to create background colors, border colors and text
display. JavaScript will be used to control client-side interactions (i.e.
sound output when image is clicked). The MySQL database will store the
images and sounds to be displayed at the output. All images are in jpeg
format.
● Student
○ New student needs to Sign Up or Register giving complete details.
○ They can submit resume and update profile information.
○ They can register for Particular Company.
12
● Administrator
● Company
Security systems need database storage just like many other applications.
However, the special requirements of the security market mean that
vendors must choose their database partner carefully.
14
CHAPTER 4
REQUIREMENTS MODELING
Actors:
15
Figure 4.1. Use case diagram for Student.
16
Figure 4.2. Use case diagram for Admin.
17
Figure 4.3. Use case diagram for Company.
18
4.2 ER Diagram
There are various entities like user, buyer, cart, seller, order and product
who have different attributes and they are engaging with various
processes like register, login. adding items to cart, checkout, etc.
19
4.3 Class Diagram
Class diagrams are the blueprints of your system or subsystem. You can
use class diagrams to model the objects that make up the system, to
display the relationships between the objects, and to describe what those
objects do and the services that they provide. In the analysis stage, a
class diagram can help you to understand the requirements of your
problem domain and to identify its components. In an object-oriented
software project, the class diagrams that you create during the early
stages of the project contain classes that often translate into actual
software classes and objects when you write code.
Here, we have divided the whole project into various classes so that it
would be really helpful for us to divide the code into various segments.
We will develop classes one by one and do the unit testing of all the
classes.
20
4.4 Sequence Diagram
1)- the interaction that takes place in a collaboration that either realizes a
use case or an operation (instance diagrams or generic diagrams).
2)- high-level interactions between user of the system and the system,
between the system and other systems, or between subsystems
(sometimes known as system sequence diagrams).
21
Figure.4.6. Sequence Diagram for Student.
22
Figure.4.7. Sequence Diagram for Admin.
23
Figure.4.8. Sequence Diagram for Company.
24
4.5 Data Flow Diagrams
Level 1 DFD's aim is to give an overview of the full system. They look at
the system in more detail. Major processes are broken down into sub-
processes. Level 1 DFD also identifies data stores that are used by the
major processes.
27
4.6 Gantt Chart
28
4.7 Activity Diagram
29
CHAPTER 5
Experimental Analysis/Testing
30
31
32
CHAPTER 6
IMPLEMENTATION OF INTEGRATED SYSTEM
//Including Database Connection From db.php file to avoid rewriting in all files
require_once("db.php");
?>
<!DOCTYPE html>
<html lang="en">
<title>Home</title>
<head>
<?php
include 'php/head.php'
?>
</head>
<body>
include 'php/header.php'
?>
<!-- header ends -->
33
</div>
</div>
</section>
<main id="main">
</div>
</div>
</section><!-- End Featured Services Section -->
</div>
</div>
</section><!-- End Call To Action Section -->
35
</div>
</section><!-- End Clients Section -->
<div class="tab-content">
</ul>
</div>
<div class="col-lg-4 order-1 order-lg-2 text-center" data-aos="fade-up" data-aos-
delay="200">
<img src="assets/img/features-1.svg" alt="" class="img-fluid">
</div>
</div>
</div>
<!-- End Tab Content -->
<p>Total Drives</p>
</div>
<div class="icon">
<i class="ion ion-ios-paper"></i>
</div>
</div>
</div>
<!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-green">
<div class="inner">
<?php
$sql = "SELECT * FROM company WHERE active='1'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$totalno = $result->num_rows;
} else {
$totalno = 0;
}
?>
<h3>
<?php echo $totalno; ?>
</h3>
<p>Job Offers</p>
</div>
<div class="icon">
<i class="ion ion-briefcase"></i>
</div>
</div>
</div>
<!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-yellow">
37
<div class="inner">
<?php
$sql = "SELECT * FROM users WHERE resume!=''";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$totalno = $result->num_rows;
} else {
$totalno = 0;
}
?>
<h3>
<?php echo $totalno; ?>
</h3>
<p>CV'S/Resume</p>
</div>
<div class="icon">
<i class="ion ion-ios-list"></i>
</div>
</div>
</div>
<!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-red">
<div class="inner">
<?php
$sql = "SELECT * FROM users WHERE active='1'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$totalno = $result->num_rows;
} else {
$totalno = 0;
}
?>
<h3>
<?php echo $totalno; ?>
</h3>
<p>Daily Users</p>
</div>
<div class="icon">
<i class="ion ion-person-stalker"></i>
</div>
</div>
</div>
<!-- ./col -->
</div>
</div>
</section>
<!-- ======= F.A.Q Section ======= -->
<?php
include 'php/footer.php';
?>
</div>
</style>
<script>
// ===== Scroll to Top ====
$(window).scroll(function() {
if ($(this).scrollTop() >= 50) { // If page is scrolled more than 50px
$('#return-to-top').fadeIn(200); // Fade in the arrow
} else {
$('#return-to-top').fadeOut(200); // Else fade out the arrow
}
});
$('#return-to-top').click(function() { // When arrow is clicked
$('body,html').animate({
scrollTop: 0 // Scroll to top of body
}, 500);
39
});
function openForm() {
document.getElementById("myForm").style.display = "block";
}
function closeForm() {
document.getElementById("myForm").style.display = "none";
}
$("#button").click(function() {
$('html, body').animate({
scrollTop: $("#about").offset().top
}, 1000);
});
$("#button1").click(function() {
$('html, body').animate({
scrollTop: $("#events").offset().top
}, 1000);
});
</script>
<script src="assets/js/main1.js"></script>
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
<script src="assets/js/counter.js"></script>
</body>
</html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Andada+Pro:ital@1&display=swap"
rel="stylesheet">
<!-- Favicons -->
<link href="img/logo1.png" rel="icon">
<link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">
<!-- Google Fonts -->
40
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?
family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&fa
mily=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&family
=Source+Sans+Pro:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400;1,600;1,700&display=swap"
rel="stylesheet">
<!-- Variables CSS Files. Uncomment your preferred color scheme -->
<link href="assets/css/variables.css" rel="stylesheet">
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
<link rel="stylesheet" href="css/AdminLTE.min.css">
<link rel="stylesheet" href="css/_all-skins.min.css">
<link rel="stylesheet" href="assets/css/chat.css">
<title>Login</title>
</head>
<body>
<?php
include 'php/header.php'
?>
<section class="text-gray-600 body-font">
<div class="container px-5 py-24">
<div class="flex flex-wrap -m-4">
<div class="p-4 md:w-1/3">
<div class="h-full border-2 border-gray-200 border-opacity-60 rounded-lg overflow-
hidden">
<img class="lg:h-48 md:h-36 w-full object-cover object-center"
src="assets/img/login/login-2.jpg" alt="blog">
<div class="p-6">
41
<h2 class="tracking-widest text-xs title-font font-medium text-gray-400 mb-
1">Are you a </h2>
<h1 class="title-font text-lg font-medium text-gray-900 mb-3">Student?</h1>
<p class="leading-relaxed mb-3">Students can login using their credentials.
New students can register.</p>
<div class="flex items-center flex-wrap ">
<a href="login-candidates.php" class="text-indigo-500 inline-flex items-
center md:mb-2 lg:mb-0">Login/Register
<svg class="w-4 h-4 ml-2" viewBox="0 0 24 24" stroke="currentColor"
stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path d="M5 12h14"></path>
<path d="M12 5l7 7-7 7"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
<div class="p-4 md:w-1/3 ">
<div class="h-full border-2 border-gray-200 border-opacity-60 rounded-lg overflow-
hidden">
<img class="lg:h-48 md:h-36 w-full object-cover object-center"
src="assets/img/login/login-1.jpg" alt="blog">
<div class="p-6">
<h2 class="tracking-widest text-xs title-font font-medium text-gray-400 mb-
1">Are you from the</h2>
<h1 class="title-font text-lg font-medium text-gray-900 mb-3">Placement
Cell ?</h1>
<p class="leading-relaxed mb-3">The placement coordinators can log into their
account from here.</p>
<div class="flex items-center flex-wrap">
<a href="login-company.php" class="text-indigo-500 inline-flex items-center
md:mb-2 lg:mb-0">Login/Register
<svg class="w-4 h-4 ml-2" viewBox="0 0 24 24" stroke="currentColor"
stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path d="M5 12h14"></path>
<path d="M12 5l7 7-7 7"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
<div class="p-4 md:w-1/3 bg-gray-700" style="font-family: 'Andada Pro', serif;
color:#d1b8c6">
<ol list-style:upper-roman>
42
<li>Placement is a decisive factor of successful completion of any coursework at
the graduate or postgraduate level.</li>
<br>
<li>It is a dream of every student to get placed in top MNCs to achieve their set
goals and objectives.</li>
<br>
<li> The private universities are also levelling up their game by equipping and
upgrading their training and placement cells.</li>
<br>
<li> Contrary to popular belief, the role of the placement cell is not limited to
organisingrecruitment drive at the campus.</li>
<br>
<li> They play a much broader role in placing a student in a reputed organisation.
Let’s find out how!</li>
<br>
<li style="text-align:right">- Training and Placement Officer</li>
</ol>
</div>
</div>
</div>
<div>
</div>
</section>
<?php
include 'php/footer.php'
?>
</body>
</html>
session_start();
if (isset($_SESSION['id_user']) || isset($_SESSION['id_company'])) {
header("Location: index.php");
exit();
}
?>
<!DOCTYPE html>
43
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Placement Portal</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
name="viewport">
<!-- Bootstrap 3.3.7 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/
bootstrap.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-
awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="css/AdminLTE.min.css">
<link rel="stylesheet" href="css/_all-skins.min.css">
<!-- Custom -->
<link rel="stylesheet" href="css/custom.css">
<?php
include 'uploads/register_page_header.php';
?>
<!-- Content Wrapper. Contains page content -->
<div class="wrapper">
<div class=" content-wrapper" style="margin-left: 0px;">
<section class="content-header">
<div class="container">
<div class="row latest-job margin-top-50 margin-bottom-20 bg-white">
<h3 class="text-center margin-bottom-20">Create Your Profile</h3>
<form method="post" id="registerCandidates" action="adduser.php"
enctype="multipart/form-data">
<div class="col-md-6 latest-job ">
<div class="form-group">
<input class="form-control input-lg" type="text" id="fname" name="fname"
placeholder="First Name *" required>
</div>
<div class="form-group">
44
<input class="form-control input-lg" type="text" id="lname" name="lname"
placeholder="Last Name *" required>
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" id="email" name="email"
placeholder="Email *" required>
</div>
<div class="form-group">
<textarea class="form-control input-lg" rows="4" id="aboutme" name="aboutme"
placeholder="Brief intro about yourself *" required></textarea>
</div>
<div class="form-group">
<label>Date Of Birth</label>
<input class="form-control input-lg" type="date" id="dob" min="1960-01-01"
max="1999-01-31" name="dob" placeholder="Date Of Birth">
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" id="age" name="age"
placeholder="Age" readonly>
</div>
<div class="form-group">
<label>Passing Year</label>
<input class="form-control input-lg" type="date" id="passingyear"
name="passingyear" placeholder="Passing Year">
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" id="qualification"
name="qualification" placeholder="Highest Qualification">
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" id="stream" name="stream"
placeholder="Stream">
</div>
<div class="form-group checkbox">
<label><input type="checkbox"> I accept terms & conditions</label>
</div>
<div class="form-group">
<button class="btn btn-flat btn-success">Register</button>
</div>
<?php
//If User already registered with this email then show error message.
if (isset($_SESSION['registerError'])) {
?>
<div class="form-group">
<label style="color: red;">Email Already Exists! Choose A Different Email!</label>
</div>
<?php
unset($_SESSION['registerError']);
}
?>
45
<?php if (isset($_SESSION['uploadError'])) { ?>
<div class="form-group">
<label style="color: red;"><?php echo $_SESSION['uploadError']; ?></label>
</div>
<?php unset($_SESSION['uploadError']);
} ?>
</div>
<div class="col-md-6 latest-job ">
<div class="form-group">
<input class="form-control input-lg" type="password" id="password"
name="password" placeholder="Password *" required>
</div>
<div class="form-group">
<input class="form-control input-lg" type="password" id="cpassword"
name="cpassword" placeholder="Confirm Password *" required>
</div>
<div id="passwordError" class="btn btn-flat btn-danger hide-me">
Password Mismatch!!
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" id="contactno" name="contactno"
minlength="10" maxlength="10" onkeypress="return validatePhone(event);" placeholder="Phone
Number">
</div>
<div class="form-group">
<textarea class="form-control input-lg" rows="4" id="address" name="address"
placeholder="Address"></textarea>
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" id="city" name="city"
placeholder="City">
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" id="state" name="state"
placeholder="State">
</div>
<div class="form-group">
<textarea class="form-control input-lg" rows="4" id="skills" name="skills"
placeholder="Enter Skills"></textarea>
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" id="designation"
name="designation" placeholder="Designation">
</div>
<div class="form-group">
<label style="color: red;">File Format PDF Only!</label>
<input type="file" name="resume" class="btn btn-flat btn-danger" required>
46
</div>
</div>
</form>
</div>
</div>
</section>
</div>
<!-- /.content-wrapper -->
</div>
<!-- ./wrapper -->
<script type="text/javascript">
function validatePhone(event) {
//event.keycode will return unicode for characters and numbers like a, b, c, 5 etc.
//event.which will return key for mouse events and other events like ctrl alt etc.
var key = window.event ? event.keyCode : event.which;
<script type="text/javascript">
$('#dob').on('change', function() {
var today = new Date();
var birthDate = new Date($(this).val());
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
$('#age').val(age);
});
</script>
<script>
$("#registerCandidates").on("submit", function(e) {
e.preventDefault();
if ($('#password').val() != $('#cpassword').val()) {
$('#passwordError').show();
} else {
$(this).unbind('submit').submit();
}
});
</script>
</body>
</html>
if (isset($_SESSION['id_user']) || isset($_SESSION['id_company'])) {
header("Location: index.php");
exit();
}
require_once("db.php");
?>
<!DOCTYPE html>
<html>
48
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Placement Portal</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
name="viewport">
<!-- Bootstrap 3.3.7 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/
bootstrap.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-
awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="css/AdminLTE.min.css">
<link rel="stylesheet" href="css/_all-skins.min.css">
<!-- Custom -->
<link rel="stylesheet" href="css/custom.css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<?php
include 'uploads/register_page_header.php';
?>
<div class="wrapper">
<section class="content-header">
<div class="container">
<div class="row latest-job margin-top-50 margin-bottom-20 bg-white">
<h3 class="text-center margin-bottom-20">Placement Cell Profile</h3>
<form method="post" id="registerCompanies" action="addcompany.php"
49
enctype="multipart/form-data">
<div class="col-md-6 latest-job ">
<div class="form-group">
<input class="form-control input-lg" type="text" name="name" placeholder="Full
Name" required>
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" name="companyname"
placeholder="Designation">
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" name="website"
placeholder="Website">
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" name="email" placeholder="Email"
required>
</div>
<div class="form-group">
<textarea class="form-control input-lg" rows="4" name="aboutme"
placeholder="Roles & Responsibility"></textarea>
</div>
<div class="form-group checkbox">
<label><input type="checkbox" required> I accept terms & conditions</label>
</div>
<div class="form-group">
<button type="submit" class="btn btn-flat btn-success">Register</button>
</div>
<?php
//If Company already registered with this email then show error message.
if (isset($_SESSION['registerError'])) {
?>
<div>
<p class="text-center" style="color: red;">Email Already Exists! Choose A Different
Email!</p>
</div>
<?php
unset($_SESSION['registerError']);
}
?>
<?php
if (isset($_SESSION['uploadError'])) {
?>
<div>
<p class="text-center" style="color: red;"><?php echo $_SESSION['uploadError']; ?
></p>
</div>
<?php
unset($_SESSION['uploadError']);
}
50
?>
</div>
<div class="col-md-6 latest-job ">
<div class="form-group">
<input class="form-control input-lg" type="password" name="password"
placeholder="Password" required>
</div>
<div class="form-group">
<input class="form-control input-lg" type="password" name="cpassword"
placeholder="Confirm Password" required>
</div>
<div id="passwordError" class="btn btn-flat btn-danger hide-me">
Password Mismatch!!
</div>
<div class="form-group">
<input class="form-control input-lg" type="text" name="contactno"
placeholder="Phone Number" minlength="10" maxlength="10" autocomplete="off"
onkeypress="return validatePhone(event);" required>
</div>
<div class="form-group">
<select class="form-control input-lg" id="country" name="country">
<option selected="" value="">Select Country</option>
<?php
$sql = "SELECT * FROM countries";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<option value='" . $row['name'] . "' data-id='" . $row['id'] . "'>" .
$row['name'] . "</option>";
}
}
?>
</select>
</div>
<div id="stateDiv" class="form-group" style="display: none;">
<select class="form-control input-lg" id="state" name="state">
<option value="" selected="">Select State</option>
</select>
</div>
<div id="cityDiv" class="form-group" style="display: none;">
<select class="form-control input-lg" id="city" name="city">
<option selected="">Select City</option>
</select>
</div>
<div class="form-group">
<label>Upload your profile picture</label>
<input type="file" name="image" class="form-control input-lg">
</div>
51
</div>
</form>
</div>
</div>
</section>
</div>
<!-- /.content-wrapper -->
</div>
<!-- ./wrapper -->
<script type="text/javascript">
function validatePhone(event) {
//event.keycode will return unicode for characters and numbers like a, b, c, 5 etc.
//event.which will return key for mouse events and other events like ctrl alt etc.
var key = window.event ? event.keyCode : event.which;
<script>
$("#country").on("change", function() {
var id = $(this).find(':selected').attr("data-id");
$("#state").find('option:not(:first)').remove();
if (id != '') {
$.post("state.php", {
id: id
}).done(function(data) {
$("#state").append(data);
});
$('#stateDiv').show();
} else {
$('#stateDiv').hide();
$('#cityDiv').hide();
}
});
</script>
<script>
$("#state").on("change", function() {
var id = $(this).find(':selected').attr("data-id");
$("#city").find('option:not(:first)').remove();
if (id != '') {
$.post("city.php", {
id: id
}).done(function(data) {
$("#city").append(data);
});
$('#cityDiv').show();
} else {
$('#cityDiv').hide();
}
});
</script>
<script>
$("#registerCompanies").on("submit", function(e) {
e.preventDefault();
if ($('#password').val() != $('#cpassword').val()) {
$('#passwordError').show();
} else {
$(this).unbind('submit').submit();
}
});
53
</script>
</body>
</html>
<head>
<meta charset="UTF-8">
<title>Placement Portal</title>
<meta content="" name="description">
<meta content="" name="keywords">
<!-- Favicons -->
<link href="img/logo1.png" rel="icon">
<link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">
<!-- Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?
family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&fa
mily=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&family
=Source+Sans+Pro:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400;1,600;1,700&display=swap"
rel="stylesheet">
<!-- Variables CSS Files. Uncomment your preferred color scheme -->
<link href="assets/css/variables.css" rel="stylesheet">
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
<link rel="stylesheet" href="css/AdminLTE.min.css">
<link rel="stylesheet" href="css/_all-skins.min.css">
<link rel="stylesheet" href="assets/css/chat.css">
54
</head>
<body>
<?php
include 'php/header.php'
?>
<div class="section-header">
<h2><strong>Contact Us</strong></h2>
<p>School of Computer Science and Engineering, AKGEC, Ghaziabad.</p>
</div>
</div>
<div class="map">
<iframe src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!
1d14001.868028856697!2d77.5020041!3d28.6756736!3m2!1i1024!2i768!4f13.1!3m3!1m2!
1s0x390cf30885b1e2a5%3A0x9983675e24c6638b!2sAKGEC%3A%20Ajay%20Kumar
%20Garg%20Engineering%20College%2C%20Ghaziabad!5e0!3m2!1sen!2sin!
4v1685082693002!5m2!1sen!2sin" frameborder="0" allowfullscreen></iframe>
</div><!-- End Google Maps -->
<div class="container">
<div class="col-lg-4">
<div class="info">
<h3>Get in touch</h3>
<p>PlACEMENT CELL</p>
</div>
</div>
<div class="col-lg-8">
<form action="forms/contact.php" method="post" role="form" class="php-email-
form">
<div class="row">
<div class="col-md-6 form-group">
<input type="text" name="name" class="form-control" id="name"
placeholder="Your Name" required>
</div>
<div class="col-md-6 form-group mt-3 mt-md-0">
<input type="email" class="form-control" name="email" id="email"
placeholder="Your Email" required>
</div>
</div>
<div class="form-group mt-3">
<input type="text" class="form-control" name="subject" id="subject"
placeholder="Subject" required>
</div>
<div class="form-group mt-3">
<textarea class="form-control" name="message" placeholder="Message"
required></textarea>
</div>
<div class="my-3">
<div class="loading">Loading</div>
<div class="error-message"></div>
<div class="sent-message">Your message has been sent. Thank you!</div>
56
</div>
<div class="text-center"><button type="submit">Send Message</button></div>
</form>
</div><!-- End Contact Form -->
</div>
</div>
</section><!-- End Contact Section -->
<?php
include 'php/footer.php';
?>
<!-- footer ends -->
</body>
</html>
//Including Database Connection From db.php file to avoid rewriting in all files
require_once("db.php");
//Encrypt Password
$password = base64_encode(strrev(md5($password)));
if($row['active'] == '0') {
$_SESSION['loginActiveError'] = "Your Account Is Not Active.
Check Your Email.";
header("Location: login-candidates.php");
exit();
} else if($row['active'] == '1') {
if(isset($_SESSION['callFrom'])) {
$location = $_SESSION['callFrom'];
unset($_SESSION['callFrom']);
}
} else {
//if no matching record found in user table then redirect them back to login page
$_SESSION['loginError'] = $conn->error;
header("Location: login-candidates.php");
exit();
}
} else {
//redirect them back to login page if they didn't click login button
header("Location: login-candidates.php");
58
exit();
}
//Including Database Connection From db.php file to avoid rewriting in all files
require_once("db.php");
//Encrypt Password
$password = base64_encode(strrev(md5($password)));
if ($row['active'] == '2') {
$_SESSION['companyLoginError'] = "Your Account Is Still
Pending Approval.";
header("Location: login-company.php");
exit();
} else if ($row['active'] == '0') {
$_SESSION['companyLoginError'] = "Your Account Is Rejected.
Please Contact For More Info.";
header("Location: login-company.php");
exit();
} else if ($row['active'] == '1') {
// active 1 means admin has approved account.
//Set some session variables for easy reference
$_SESSION['name'] = $row['companyname'];
$_SESSION['id_company'] = $row['id_company'];
59
//Redirect them to company dashboard once logged in successfully
header("Location: company/index.php");
exit();
} else if ($row['active'] == '3') {
$_SESSION['companyLoginError'] = "Your Account Is
Deactivated. Contact Admin For Reactivation.";
header("Location: login-company.php");
exit();
}
}
} else {
//if no matching record found in user table then redirect them back to login page
$_SESSION['loginError'] = $conn->error;
header("Location: login-company.php");
exit();
}
60
6.2 Screenshots and examples to showcase the project
(Screenshots of Placement Management System Website)
61
Figure 6.3. Login Page for students on PMS Website.
62
Figure 6.5. Dashboard of Student on PMS Website.
63
Figure 6.7 .Register Student page of PMS Website.
64
CHAPTER 7
FUTURE SCOPE
7.1 Possible enhancements or features to add to the
Website
65
CHAPTER 8
CONCLUSION
In the existing system most of the work will be done manually, as it takes
more time for any changes in the system. The major problem with this
existing system is notification method available is not available for
giving information about student expect the notice board or circulars.
The proposed system is online training and placement management
system gives the automation in all the process of campus recruitment,
searching student details individually. This system in future could be
joined to SMS server so that it can notify the message to students via
SMS for upcoming companies.
66
REFERENCES
4. www.php.net
5. SlideShare: https//www.slideshare.com
6. wikipedia: https//www.wikipedia.com
7. Sql: https//www.mysql.com
8. www.guru99.com
15. http://www.nirmauni.ac.in
17.www.javatpoint.com
18. www.geeksforgeeks.org
19. www.stackoverflow.com
20. www.tutoralspoint.com
68
69
70
71
72