You are on page 1of 27

MICRO PROJECT

Academic year
2021-22

Address Book

Program: Computer Engineering Program code:CO6IA

Course: Web based Application Development using PHP Course code: 22619
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION

Certificate

This is to certify that Mr. /Ms. Pranav Mhatre Roll No. 31 of Sixth Semester of Diploma in

Computer Engineering of Institute, VES POLYTECHNIC (Code: 0004) has completed the Micro

Project satisfactorily in Subject – Web based Application Development using PHP (22619) for the

academic year 2021- 2022 as prescribed in the curriculum.

Place: Chembur, Mumbai Enrollment No: 1900040064

Date: ……………………… Exam Seat No: 102475

Subject Teacher Head of the Department Principal

Seal of
Institution
INDEX

Academic year: 2021-22 Name of the faculty: Mr. Dashrath Kale

Program code: CO6I-A Course & course code: WBP (22619)

Name of the candidate: Pranav Mhatre

Roll No. 31 Enrollment No. 1900040064

Sr.No Content Page No.

1 Project Proposal 01

2 Action plan 02

3 Resource required 02

4 Introduction 03

5 Actual Procedure 05

6 Output 12

7 Skill developed 16

8 Evaluation sheet 18
Annexure – I
Micro-Project Proposal

Address Book

1.0 Aim/Benefits of the Micro-Project


This Micro-Project aims at
● To develop a website that maintains names, addresses and other contact information of the
users.
● To develop a user-friendly interface to maintain the records.
● Allows easy access to the user's friends, family, business associates and others by maintaining
their email and other contact details on their computer.

2.0 Course Outcomes Addressed


• Develop programs using Control statement. [✓]
• Perform operations based on arrays and graphics. [✓]
• Develop programs by applying various object-oriented concepts. [ ]
• Use form controls with validation to collect user’s input. [✓]
• Perform database operations in PHP. [✓]

3.0 Proposed Methodology


• Discussion about topic with guide and among group members
• Literature Survey
• Submission of project proposal
• Information collection
• Analysis of Data
• Compilation of the content
• Discussion about the code
• Representation
• Implementing the code
• Editing and revising the content
1
4.0 Action Plan
SR. Details of activity Planned Planned Name of Responsible
No. Start date Finish date Team Members

1 Finalization of project Title and Scope 17/2/22 3/3/22 All Members

2 Project Definition 4/3/22 6/4/22 All Members

3 Information Collection and Analysis of Data 13/4/22 27/4/22 All Members

4 Algorithm and Flowchart 4/5/22 11/5/22 All Members

5 Coding 11/5/22 11/5/22 All Members

6 Output 11/5/22 18/5/22 All Members

7 Report writing 18/5/22 20/5/22 All Members

8 Demonstration of project & final submission 23/5/22 23/5/22 All Members

5.0 Resources Required

Sr.No. Equipment Name with Broad Specification Remark if any

1 Desktop / Laptop – Windows 10 -

2 XAMPP, VS CODE -

Name of Team Members with Roll Nos.


Pranav Mhatre - 31

Mr. Dashrath Kale


Name and Signature of Course Teacher
2
Annexure – II

Micro-Project Report

Address Book
1.0 Rationale

PHP is a server-side scripting language that is embedded in HTML. It is used to manage dynamic
content, databases, session tracking, even build entire data management sites. It is integrated with a
number of popular databases, including MySQL, PostgreSQL, Oracle, Sybase, Informix, and
Microsoft SQL Server. A server-side dynamic web page is a web page whose construction is controlled
by an application server processing server-side script in the back end. A dynamic web page is a web
page that displays different content each time it is viewed while retaining the same layout and design.
To understand and implement PHP for practical purposes, we chose Employee Record Management
System website using PHP as our project.
Address book software enables you to save contact information secure in one place. Various address
book systems store data in multiple formats. Maintaining contact records in one place indicates that
you will always have access to reliable data and be able to share it over your business areas.
2.0 Aim/Benefits of the Micro-Project
This Micro-Project aims at
● To develop a website that maintains names, addresses and other contact information of the
users.
● To develop a user-friendly interface to maintain the records.
● Allows easy access to the user's friends, family, business associates and others by maintaining
their email and other contact details on their computer.

3.0 Course Outcomes Addressed


• Develop programs using Control statement. [ ]
• Perform operations based on arrays and graphics. [✓]
• Develop programs by applying various object-oriented concepts. [ ]
• Use form controls with validation to collect user’s input. [✓]
• Perform database operations in PHP. [✓]

3
4.0 Literature Review
About PHP:
PHP is a server-side scripting language that is embedded in HTML. It is used to manage dynamic
content, databases, session tracking, even build entire e-commerce sites. It is integrated with a number
of popular databases, including MySQL, PostgreSQL, Oracle, Sybase, Informix, and Microsoft SQL
Server
About MySQL:
MySQL is an open-source relational database management system. As with other relational databases,
MySQL stores data in tables made up of rows and columns. Users can define, manipulate, control, and
query data using Structured Query Language, more commonly known as SQL.
About databases:
A database is an organized collection of structured information, or data, typically stored electronically
in a computer system. A database is usually controlled by a database management system (DBMS).
We have used a database to store user’s credentials and tasks for our project.
About xampp:
XAMPP is a free and open-source cross-platform web server solution stack package developed by
Apache Friends, consisting mainly of the Apache HTTP Server, MariaDB database, and interpreters
for scripts written in the PHP and Perl programming languages.
About functions in PHP:
PHP function is a piece of code that can be reused many times. It can take input as argument list and
return value. There are thousands of built-in functions in PHP. In PHP, we can define Conditional
function, Function within Function and Recursive function also. In our project, we have used functions
to increase our productivity and reduce redundancy and increase the reusability of the code by putting
the piece of code inside the function instead of typing it again and again.
About sessions and session variable in PHP:
A session creates a file in a temporary directory on the server where registered session variables and
their values are stored. This data will be available to all pages on the site during that visit. It is a special
type of variable whose value is maintained across subsequent web pages. With session variables, user-
specific data can be preserved from page to page delivering customized content as the user interacts
with the web application. In our project, we have used to authenticate user on every page after he/she
logs in.
The gadget store management system helps the user in maintaining the user and the device information
in a systematic manner. The records can be retrieve efficiently from the database. The user can also
see the records of the customer with their previous purchases along with the time. The user can change
the information of a product or it’s category with the help of the user-friendly UI.

4
5.0 Actual Procedure Followed
Algorithm
Step 1: Start
Step 2: Display the index page.
Step 3: Information of added users is displayed in the Home page.
Step 3.1: Information includes id, name
Step 3.2: Add new, update and delete buttons are displayed alongside.
Step 4: If the user navigates to Add-New user screen
Step 4.1: Accept all the necessary details.
Step 4.2: Check whether the details are validated or not.
Step 4.3: Show the new user’s data with a toast message.
Step 5: If the user navigates to Update
Step 5.1: Accept all the updated details
Step 5.2: Show the updated user’s information with its respective toast message.
Step 6: If the user clicks on Delete
Step 6.1: Show a confirm box which will recheck if the user wants to delete
Step 6.2: Delete the user
Step 7: Stop
Flowchart

5
Code
index.php:
<?php <div class="nav-wrapper">
require('./includes/functions.inc.php'); <a href="#!" class="brand-logo
?> center">Contact Info</a>
<!DOCTYPE html> <ul class="right hide-on-med-and-
<html> down">

<head> <!-- Dropdown Trigger -->


<!--Import Google Icon Font--> <li><a class="dropdown-
<link trigger" href="#!" data-
href="https://fonts.googleapis.com/icon?famil target="dropdown1"><i
y=Material+Icons" rel="stylesheet"> class="material-icons
<!--Import materialize.css--> right">more_vert</i></a></li>
<link type="text/css" rel="stylesheet" </ul>
href="css/materialize.min.css" </div>
media="screen,projection" /> </nav>
<a href="#" data-target="nav-mobile"
<!--Import Csutom CSS--> class="sidenav-trigger"><i class="material-
<link rel="stylesheet" href="css/style.css" icons">menu</i></a>
type="text/css"> </div>
<!--Let browser know website is optimized </nav>
for mobile--> <!--/NAVIGATION BAR-->
<meta name="viewport"
content="width=device-width, initial- <!-- Add a New Contact Link-->
scale=1.0" /> <div class="row mt50">
</head> <div class="col s12 right-align">
<a class="btn waves-effect waves-light
<body> blue lighten-2" href="add-contact.php"><i
<!--NAVIGATION BAR--> class="material-icons
<nav> left">add</i> Add
<div class="nav-wrapper"> New</a>
<!-- Dropdown Structure --> </div>
<ul id="dropdown1" class="dropdown- </div>
content"> <!-- /Add a New Contact Link-->
<li><a href="#!">Profile</a></li>
<li><a href="#!">Signout</a></li> <!-- Table of Contacts -->
</ul> <div class="row">
<nav> <div class="col s12">
<table class="highlight centered"> $query = "SELECT * FROM
<thead> contacts LIMIT $start,
<tr> $num_of_records_per_page";
<th>Image</th> $rows = db_select($query);
<th>Name</th> if($rows !== false):
<th>Email ID</th> foreach($rows as $row):
<th>Date Of Birth</th> ?>
<th>Phone Number</th> <tr>
<th>Address</th> <td><img class="circle"
<th></th> src="images/users/<?=$row['image_name'];
<th></th> ?>" alt="" height="60%"></td>
</tr>
</thead> <td><?=$row['first_name']. " ".
$row['last_name']; ?></td>
<tbody> <td><?=$row['email'];
<?php ?></td>
<td><?=$row['birthdate'];
$page = 1; ?></td>
if(isset($_GET['page'])) { <td><?=$row['telephone'];
$page = $_GET['page']; ?></td>
} <td><?=$row['address'];
?></td>
$num_of_records_per_page = 5; <?php
$start = ($page-1) * // dd($row['id']);
$num_of_records_per_page; ?>
<td><a class="btn btn-
$query = "SELECT count(*) as floating green lighten-2"
total_records FROM contacts"; href="update.php?id=<?=$row['id'];?>"><i
$rows = db_select($query); class="material-icons">edit</i></a></td>
$total_records = <td><a class="btn btn-
$rows[0]['total_records']; floating red lighten-2 modal-trigger delete-
$total_pages = contact" href="#deleteModal" data-id="<?=
ceil($total_records/$num_of_records_per_pag $row['id']; ?>"><i class="material-
e); icons">delete_forever</i></a>
</td>
$prev_page_num = $page == 1 ? </tr>
$page : $page-1; <?php
$next_page_num = $page == endforeach;
$total_pages ? $total_pages : $page + 1; endif;
?>
</tbody> </div>
</table> </div>
</div> </footer>
</div> <!-- /Footer -->
<!-- /Table of Contacts --> <!-- Delete Modal Structure -->
<!-- Pagination --> <div id="deleteModal" class="modal">
<div class="row"> <div class="modal-content">
<div class="col s12"> <h4>Delete Contact?</h4>
<ul class="pagination"> <p>Are you sure you want to delete the
<li class="<?= $page == 1 ? record?</p>
'disabled' : 'waves-effect'; ?>"><a </div>
href="?page=<?=$prev_page_num;?>"><i <div class="modal-footer">
class="material- <a href="#!" class="modal-close btn
icons">chevron_left</i></a></li> blue-grey lighten-2 waves-effect">Cancel</a>
<?php <a href="delete.php"
for($i = 1; $i <= $total_pages; $i++): id="deleteModalAgreeButton" class="modal-
?> close btn waves-effect red lighten-
<li class="<?= $i==$page ? 2">Agree</a>
'active' : 'waves-effect';?>"><a </div>
href="?page=<?=$i;?>"><?= $i; ?></a></li> </div>
<?php <!-- /Delete Modal Structure -->
endfor; <!--JQuery Library-->
?> <script src="js/jquery.min.js"
<li class="<?= $page == type="text/javascript"></script>
$total_pages ? 'disabled' : 'waves-effect'; <!--JavaScript at end of body for optimized
?>"><a loading-->
href="?page=<?=$next_page_num;?>"><i <script type="text/javascript"
class="material- src="js/materialize.min.js"></script>
icons">chevron_right</i></a></li> <!--Include Page Level Scripts-->
</ul> <script src="js/pages/home.js"></script>
</div> <!--Custom JS-->
</div> <script src="js/custom.js"
<!-- /Pagination --> type="text/javascript"></script>
<!-- Footer -->
<footer class="page-footer p0"> </body>
<div class="footer-copyright ">
<div class="container"> </html>
<p class="center-align">CO6IA-
Group11</p> 8
add-contact.php '$birthdate', '$telephone', '$address',
'$image_name')";
<?php
require_once('./includes/functions.inc.php'); $result = db_query($query);
$error_flag = false; if(! $result) {
$error_flag = true;
if(isset($_POST['action'])) { $error_msg = "Something went
$first_name = $_POST['first_name']; wrong with Database!";
$last_name = $_POST['last_name']; } else {
$email = $_POST['email']; $last_id = db_last_id();
$image_name =
$birthdate = "$last_id.$image_name";
myDate($_POST['birthdate']); $source =
$_FILES['pic']['tmp_name'];
$telephone = $_POST['telephone']; $destination =
$address = $_POST['address']; "./images/users/$image_name";
move_uploaded_file($source,
$image_name = ""; $destination);
// File Handling // header('Location:
if($_FILES['pic']) { index.php?op=add&status=success');
$file_name = $_FILES['pic']['name'];
redirect("index.php?op=add&status=success")
// Extracting the extension ;
$data = explode('.', $file_name); }
$ext = strtolower(end($data)); }
}
$image_name = "$ext"; ?>
<!DOCTYPE html>
} else { <html>
$error_flag = true;
$error_msg = "Image is Compulsory"; <head>
} <!--Import Google Icon Font-->
<link
if(! $error_flag) { href="https://fonts.googleapis.com/icon?famil
// $image_name = $first_name . "_" . y=Material+Icons" rel="stylesheet">
$last_name . "./jpg"; <!--Import materialize.css-->
$query = "INSERT INTO contacts <link type="text/css" rel="stylesheet"
(first_name, last_name, email, birthdate, href="css/materialize.min.css"
telephone, address, image_name) VALUES media="screen,projection" />
('$first_name', '$last_name' ,'$email',
<!--Import Csutom CSS--> <a href="#" data-target="nav-mobile"
<link rel="stylesheet" href="css/style.css" class="sidenav-trigger"><i class="material-
type="text/css"> icons">menu</i></a>
<!--Let browser know website is optimized </div>
for mobile--> </nav>
<meta name="viewport" <!--/NAVIGATION BAR-->
content="width=device-width, initial- <div class="container">
scale=1.0" /> <div class="row mt50">
<h2>Add New Contact</h2>
<title>Add Contact</title> </div>
</head> <?php
if($error_flag):
<body> ?>
<!--NAVIGATION BAR--> <div class="row">
<nav> <div class="materialert error">
<div class="nav-wrapper"> <div class="material-
<!-- Dropdown Structure --> icons">error_outline</div>
<ul id="dropdown1" class="dropdown- <?= $error_msg; ?>
content"> <button type="button"
<li><a href="#!">Profile</a></li> class="close-alert">×</button>
<li><a href="#!">Signout</a></li> </div>
</ul> </div>
<nav> <?php
<div class="nav-wrapper"> endif;
<a href="#!" class="brand-logo ?>
center">Contact Info</a> <div class="row">
<ul class="right hide-on-med-and- <form class="col s12 formValidate"
down"> action="" id="add-contact-form"
method="POST" enctype="multipart/form-
<!-- Dropdown Trigger --> data">
<li><a class="dropdown- <div class="row mb10">
trigger" href="#!" data- <div class="input-field col s6">
target="dropdown1"><i <input id="first_name"
class="material-icons name="first_name" type="text"
right">more_vert</i></a></li> class="validate" data-
</ul> error=".first_name_error" value="<?=
</div> getOldValue($_POST, 'first_name'); ?>">
</nav> <label for="first_name">First
Name</label>
<div class="first_name_error <input id="telephone"
"></div> name="telephone" type="tel" class="validate"
</div> data-error=".telephone_error" value="<?=
<div class="input-field col s6"> getOldValue($_POST, 'telephone'); ?>">
<input id="last_name" <label
name="last_name" type="text" for="telephone">Telephone</label>
class="validate" data-error=".last_name_error" <div class="telephone_error
value="<?= getOldValue($_POST, "></div>
'last_name'); ?>"> </div>
<label for="last_name">Last </div>
Name</label> <div class="row mb10">
<div class="last_name_error <div class="input-field col s12">
"></div> <textarea id="address"
</div> name="address" class="materialize-textarea"
</div> data-error=".address_error"><?=
<div class="row mb10"> getOldValue($_POST, 'first_name');
<div class="input-field col s6"> ?></textarea>
<input id="email" <label
name="email" type="email" class="validate" for="address">Addess</label>
data-error=".email_error" value="<?= <div class="address_error
getOldValue($_POST, 'email'); ?>"> "></div>
<label </div>
for="email">Email</label> </div>
<div class="email_error <div class="row mb10">
"></div> <div class="file-field input-field
</div> col s12">
<div class="input-field col s6"> <div class="btn">
<input id="birthdate" <span>Image</span>
name="birthdate" type="text" <input type="file"
class="datepicker" data- name="pic" id="pic" data-error=".pic_error">
error=".birthday_error" value="<?= </div>
getOldValue($_POST, 'birthdate'); ?>"> <div class="file-path-
<label wrapper">
for="birthdate">Birthdate</label> <input class="file-path
<div class="birthday_error validate" type="text" placeholder="Upload
"></div> Your Image">
</div> </div>
</div> <div class="pic_error "></div>
<div class="row mb10"> </div>
<div class="input-field col s12"> </div>
<button class="btn waves-effect update.php
waves-light right" type="submit" <?php
name="action">Submit require_once('./includes/functions.inc.php');
<i class="material-icons $error_flag=false;
right">send</i>
</button> if(!isset($_GET['id'])){
</form> echo"How the hell did you come here???";
</div> die();
</div> }
<footer class="page-footer p0"> $id=$_GET['id'];
<div class="footer-copyright "> $query= "SELECT * FROM contacts WHERE
<div class="container"> id=$id";
<p class="center-align">CO6IA- $rows=db_select($query);
Group11</p> $row=$rows[0];
</div>
</div>
</footer> if(isset($_POST['action'])){
<!--JQuery Library--> $new_first_name=$_POST['first_name'];
<script src="js/jquery.min.js" $new_last_name=$_POST['last_name'];
type="text/javascript"></script> $new_email=$_POST['email'];
<!--JavaScript at end of body for optimized
loading--> $new_birthdate=myDate(($_POST['birthdate']
<script type="text/javascript" ));
src="js/materialize.min.js"></script> $new_telephone=$_POST['telephone'];
<!--JQuery Validation Plugin--> $new_address=$_POST['address'];
<script src="vendors/jquery- if(!empty($_FILES['pic']['name'])){
validation/validation.min.js" $file_name=$_FILES['pic']['name'];
type="text/javascript"></script>
<script src="vendors/jquery- //Extracting the Extension
validation/additional-methods.min.js" $data=explode('.',$file_name);
type="text/javascript"></script> $ext=strtolower(end($data));
<!--Include Page Level Scripts-->
<script src="js/pages/add-
contact.js"></script> $new_first_name_lower=strtolower($new_firs
<!--Custom JS--> t_name);
<script src="js/custom.js"
type="text/javascript"></script> $new_last_name_lower=strtolower($new_last
</body> _name);

</html>
$error_msg="Something went
$new_image_name="{$row['id']}.$ext"; wrong with the Database";
$image_name=$row['image_name']; }else{
//header('Location
unlink("./images/users/$image_name"); :idex.php?op=add&status=success');
$source=$_FILES['pic']['tmp_name'];
redirect("index.php?op=update&status=succes
$destination="./images/users/$new_image_na s");
me"; }
}
move_uploaded_file($source,$destination); ?>
} <!DOCTYPE html>
// else{ <html>
// //Extracting the Extension
// $image_name=$row['image_name']; <head>
// $data=explode('.',$image_name); <!--Import Google Icon Font-->
// $ext=strtolower(end($data)); <link
// href="https://fonts.googleapis.com/icon?famil
$new_first_name_lower=strtolower($new_firs y=Material+Icons" rel="stylesheet">
t_name); <!--Import materialize.css-->
// <link type="text/css" rel="stylesheet"
$new_last_name_lower=strtolower($new_last href="css/materialize.min.css"
_name); media="screen,projection" />
//
$new_image_name="$new_first_name_lower <!--Import Csutom CSS-->
-$new_last_name_lower.$ext"; <link rel="stylesheet" href="css/style.css"
// type="text/css">
rename("./images/users/$image_name","./ima <!--Let browser know website is optimized
ges/users/$new_image_name"); for mobile-->
// } <meta name="viewport"
$query="UPDATE contacts SET content="width=device-width, initial-
first_name='$new_first_name',last_name='$ne scale=1.0" />
w_last_name',email='$new_email',birthdate='
$new_birthdate',telephone='$new_telephone',a <title>Update Contact</title>
ddress='$new_address',image_name='$new_i </head>
mage_name' WHERE id=$id";
$result=db_query($query); <body>
if(!$result){ <!--NAVIGATION BAR-->
$error_flag=true; <nav>
<div class="nav-wrapper">
<!-- Dropdown Structure --> <input id="first_name"
<ul id="dropdown1" class="dropdown- name="first_name" type="text"
content"> class="validate" data-
<li><a href="#!">Profile</a></li> error=".first_name_error"
<li><a href="#!">Signout</a></li> value="<?=getOldValue($row,"first_name");?
</ul> >">
<nav> <label for="first_name">First
<div class="nav-wrapper"> Name</label>
<a href="#!" class="brand-logo <div class="first_name_error
center">Contact Info</a> "></div>
<ul class="right hide-on-med-and- </div>
down"> <div class="input-field col s6">
<input id="last_name"
<!-- Dropdown Trigger --> name="last_name" type="text"
<li><a class="dropdown- class="validate" data-
trigger" href="#!" data- error=".last_name_error"value="<?=getOldVa
target="dropdown1"><i lue($row,"last_name");?>">
class="material-icons <label for="last_name">Last
right">more_vert</i></a></li> Name</label>
</ul> <div class="last_name_error
</div> "></div>
</nav> </div>
<a href="#" data-target="nav-mobile" </div>
class="sidenav-trigger"><i class="material- <div class="row mb10">
icons">menu</i></a> <div class="input-field col s6">
</div> <input id="email"
</nav> name="email" type="email" class="validate"
<!--/NAVIGATION BAR--> data-
<div class="container"> error=".email_error"value="<?=getOldValue(
<div class="row mt50"> $row,"email");?>">
<h2>Update Contact</h2> <label
</div> for="email">Email</label>
<div class="row"> <div class="email_error
<form class="col s12 formValidate" "></div>
action="" id="update-contact-form" </div>
method="POST" enctype="multipart/form- <div class="input-field col s6">
data"> <input id="birthdate"
<div class="row mb10"> name="birthdate" type="text"
<div class="input-field col s6"> class="datepicker" data-
error=".birthday_error"value="<?=myDate(ge <div class="file-field input-field
tOldValue($row,"birthdate"),"M d, Y") ;?>"> col s9">
<label <div class="btn">
for="birthdate">Birthdate</label> <span>Image</span>
<div class="birthday_error <input type="file"
"></div> name="pic" id="pic" data-error=".pic_error">
</div> </div>
</div> <div class="file-path-
<div class="row mb10"> wrapper">
<div class="input-field col s12"> <input class="file-path
<input id="telephone" validate" type="text" placeholder="Upload
name="telephone" type="tel" class="validate" Your Image">
data- </div>
error=".telephone_error"value="<?=getOldVa <div class="pic_error "></div>
lue($row,"telephone");?>"> </div>
<label </div>
for="telephone">Telephone</label> <button class="btn waves-effect
<div class="telephone_error waves-light right" type="submit"
"></div> name="action">Submit
</div> <i class="material-icons
</div> right">send</i>
<div class="row mb10"> </button>
<div class="input-field col s12"> </form>
<textarea id="address" </div>
name="address" class="materialize-textarea" </div>
data- <footer class="page-footer p0">
error=".address_error"><?=getOldValue($row <div class="footer-copyright ">
,"email");?></textarea> <div class="container">
<label <p class="center-align">CO6IA-
for="address">Addess</label> Group11</p>
<div class="address_error </div>
"></div> </div>
</div> </footer>
</div> <!--JQuery Library-->
<div class="row mb10"> <script src="js/jquery.min.js"
<div class="col s3"> type="text/javascript"></script>
<img <!--JavaScript at end of body for optimized
src="images/users/<?=$row['image_name']; loading-->
?>" alt="" id="temp_image" width="100%"> <script type="text/javascript"
</div> src="js/materialize.min.js"></script>
<!--JQuery Validation Plugin-->
<script src="vendors/jquery- if($result) {
validation/validation.min.js" unlink("images/users/$image_name");
type="text/javascript"></script>
<script src="vendors/jquery- redirect('index.php?op=delete&status=success'
validation/additional-methods.min.js" );
type="text/javascript"></script> } else {
<!--Include Page Level Scripts-->
<script src="js/pages/update- redirect('index.php?op=delete&status=error');
contact.js"></script> }
<!--Custom JS--> ?>
<script src="js/custom.js"
type="text/javascript"></script>
</body>
</html>
delete.php
<?php
require_once('./includes/functions.inc.php');

if(!isset($_GET['id'])) {
echo " How the hell you came here????";
die();
}

$id = $_GET['id'];

$query = "SELECT * FROM contacts WHERE


id = $id";
$rows = db_select($query);
if($rows === false) {
$error = db_error();
dd($error);
} else if(empty($rows)) {
dd("How the hell you got this id??");
}

$image_name = $rows[0]['image_name'];
$query = "DELETE FROM contacts WHERE
id = $id";
$result = db_query($query);
11
6.0 Actual Resources Used
Sr.No. Equipment Name with Broad Specification Remark if any

1 Laptop – Windows 10

2 Xampp, VS Code

7.0 Outputs of the Micro-Projects


12
13

15
8.0 Skill Developed / learning out of this Micro-Project
• We learnt how to use PHP for client side scripting.
• We learnt how to use functions in PHP.
• We learnt how to use sessions and session vaiables for practical usage in python.
• We learnt how to design a database using MySQL.
• We understood and implemented the connection of database with webpages via PHP.
• We understood the importance of working in team and listening to each other's ideas and views
to further improve our project and our knowledge.
• We have also learnt to coordinate with the team members and support each other for successful
completion of the project.
• We learnt to follow the deadlines and complete our work within specified time frame.

9.0 Application of this Micro-Project


The developed microproject has the following applications:
⚫ It can help the users to manage and view their data systematically.
⚫ This website has a user-friendly UI.
⚫ It uses a validation for the fields as well
⚫ The employees can add, update and delete the data.

16
Annexure – III

Suggested Rubric for Assessment of Micro-Project


S. Characteristic to Poor Average Good Excellent
No. be assessed ( Marks 1 - 3 ) ( Marks 4 - 5 ) ( Marks 6 - 8 ) ( Marks 9- 10 )
Relevance to the Relate to very Related to Take care of at-least Take care of more
1
course few LOs some LOs one CO than one CO
Not more than At-least 5
Literature review About 10 relevant
two sources relevant At –least 7 relevant
2 /information sources, most
very old sources, at least sources, most latest
collection latest
reference 2 latest
Completion of the
Completed Completed 50 Completed 60 to Completed more
3 Target as per
less than 50% to 60% 80% than 80 %
project proposal
Sufficient and
appropriate Sufficient and
Data neither Enough data
enough data appropriate enough
Analysis of Data organized nor collected and
4 generated but data generated
and representation presented well sufficient and
not organized which is organized
presenting data.
and not and but not used.
presented well.
Well assembled
Just assembled Well assembled and
with proper
Quality of Incomplete and some functioning parts.
functioning parts..
5 Prototype/Model Programming codeis not But no creativity in
Creativity in
code functioning design and use of
design and use of
well. graphics function
graphics function
Nearly
Very short,
sufficient and Detailed, correct and
Details about Very detailed,
correct details clear description of
methods, and correct, clear
Report about methods, methods and
6 conclusions description of
Preparation and conclusion. Conclusions.
omitted, some methods, and
but clarity is Sufficient Graphic
details are conclusions.
not there in Description.
wrong
presentation.
Major Includes major
information is information but Includes major Well organized,
Presentation of
not included, not well information and includes major
7 the micro
information is organized and well organized but information ,well
project
not well not presented not presented well presented
organized. well
Replied to
Could not
considerable
reply to Replied properly to Replied most of
number of
8 Defense considerable considerable number the questions
questions but
number of of question. properly
not very
question.
properly

17
Annexure – IV

Micro Project Evaluation Sheet


Name of Student: Pranav Mhatre
Enrollment No: 1900040064
Name of Program: Computer Engineering Semester: Sixth
Course Title: Web based Application Development using PHP Course Code: 22619

Title of the Micro-Project: Address Book


Cos addressed by Micro Project:

• Develop programs using Control statement. [✓]


• Perform operations based on arrays and graphics. [✓]
• Develop programs by applying various object-oriented concepts. [ ]
• Use form controls with validation to collect user’s input. [✓]
• Perform database operations in PHP. [✓]

Poor
Sr. Characteristic to be Average Good Excellent
( Marks1-3 Sub Total
No assessed ) (Marks 4-5 ) (Marks 6-8) ( Marks9-10)

(A) Process and Product Assessment (Convert Above Total marks out of 6 Marks)

1 Relevance to the course


Literature review/
2
Information Collection
Completion of the Target
3
as per project proposal

Analysis of Data and


4
representation

Quality of
5
Prototype/Model

6 Report Preparation

(B) Individual Presentation / Viva (Convert above total marks out of 4 marks)

7 Presentation

8 Defense/Viva
Process and Product Assessment (6 Individual Presentation / Viva (4 Total Marks 18
Roll No.
Marks) Marks) 10
31

Name and designation of the Teacher: Mr. Dashrath Kale (Lecturer)

Dated Signature:

19

You might also like