OOSE - Manual - Bookbank

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 15

REG NO : 311521205008

PROGRAM :

index.php
<?php
session_start();
if(isset($_SESSION['admin'])){
header('location:home.php');
}
?>
<?php include 'includes/header.php'; ?>
<body class="hold-transition login-page">
<div class="login-box">
<div class="login-logo">
<b>Library System in PHP</b>
</div>
<div class="login-box-body">
<p class="login-box-msg">Sign in to start your session</p>
<form action="login.php" method="POST">
<div class="form-group has-feedback">
<input type="text" class="form-control" name="username" placeholder="input Username"
required autofocus>
<span class="glyphicon glyphicon-user form-control-feedback"></span>
</div>
<div class="form-group has-feedback">
<input type="password" class="form-control" name="password" placeholder="input
Password" required>
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
</div>
<div class="row">
<div class="col-xs-4">
<button type="submit" class="btn btn-primary btn-block btn-flat" name="login"><i class="fa
fa-sign-in"></i> Sign In</button>
</div>
</div>
</form>
</div>
<?php
if(isset($_SESSION['error'])){
echo "
<div class='callout callout-danger text-center mt20'>
<p>".$_SESSION['error']."</p>
</div>
";
unset($_SESSION['error']);
}
?>
</div>

<?php include 'includes/scripts.php' ?>


</body>
REG NO : 311521205008

</html>

Bookadd.php
<?php
session_start();
if(isset($_SESSION['admin'])){
header('location:home.php');
}
?>
<?php include 'includes/header.php'; ?>
<body class="hold-transition login-page">
<div class="login-box">
<div class="login-logo">
<b>Library System in PHP</b>
</div>
<div class="login-box-body">
<p class="login-box-msg">Sign in to start your session</p>
<form action="login.php" method="POST">
<div class="form-group has-feedback">
<input type="text" class="form-control" name="username" placeholder="input Username"
required autofocus>
<span class="glyphicon glyphicon-user form-control-feedback"></span>
</div>
<div class="form-group has-feedback">
<input type="password" class="form-control" name="password" placeholder="input
Password" required>
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
</div>
<div class="row">
<div class="col-xs-4">
<button type="submit" class="btn btn-primary btn-block btn-flat" name="login"><i class="fa
fa-sign-in"></i> Sign In</button>
</div>
</div>
</form>
</div>
<?php
if(isset($_SESSION['error'])){
echo "
<div class='callout callout-danger text-center mt20'>
<p>".$_SESSION['error']."</p>
</div>
";
unset($_SESSION['error']);
}
?>
</div>
<?php include 'includes/scripts.php' ?>
</body>
</html>
REG NO : 311521205008

Bookdelete.php
<?php
include 'includes/session.php';

if(isset($_POST['delete'])){
$id = $_POST['id'];
$sql = "DELETE FROM books WHERE id = '$id'";
if($conn->query($sql)){
$_SESSION['success'] = 'Book deleted successfully';
}
else{
$_SESSION['error'] = $conn->error;
}}
else{
$_SESSION['error'] = 'Select item to delete first';
}
header('location: book.php');
?>
borrow.php
<?php
include 'includes/session.php';
if(isset($_POST['add'])){
$student = $_POST['student'];
$sql = "SELECT * FROM students WHERE student_id = '$student'";
$query = $conn->query($sql);
if($query->num_rows < 1){
if(!isset($_SESSION['error'])){
$_SESSION['error'] = array();
}
$_SESSION['error'][] = 'Student not found';
}
else{
$row = $query->fetch_assoc();
$student_id = $row['id'];
$added = 0;
foreach($_POST['isbn'] as $isbn){
if(!empty($isbn)){
$sql = "SELECT * FROM books WHERE isbn = '$isbn' AND
status != 1";
$query = $conn->query($sql);
if($query->num_rows > 0){
$brow = $query->fetch_assoc();
$bid = $brow['id'];
$sql = "INSERT INTO borrow (student_id,
book_id, date_borrow) VALUES ('$student_id', '$bid', NOW())";
if($conn->query($sql)){
$added++;
$sql = "UPDATE books SET status = 1
WHERE id = '$bid'";
$conn->query($sql);
REG NO : 311521205008

}
else{
if(!isset($_SESSION['error'])){
$_SESSION['error'] = array();
}
$_SESSION['error'][] = $conn->error;
}}
else{
if(!isset($_SESSION['error'])){
$_SESSION['error'] = array();
}
$_SESSION['error'][] = 'Book with ISBN - '.
$isbn.' unavailable';
}
}
}
if($added > 0){
$book = ($added == 1) ? 'Book' : 'Books';
$_SESSION['success'] = $added.' '.$book.' successfully
borrowed';
} }
}
else{
$_SESSION['error'] = 'Fill up add form first';
}

header('location: borrow.php');

?>
Project database
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
CREATE TABLE `admin` (
`id` int(11) NOT NULL,
`username` varchar(30) NOT NULL,
`password` varchar(60) NOT NULL,
`firstname` varchar(30) NOT NULL,
`lastname` varchar(30) NOT NULL,
`photo` varchar(200) NOT NULL,
`created_on` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
REG NO : 311521205008

INSERT INTO `admin` (`id`, `username`, `password`, `firstname`, `lastname`, `photo`,


`created_on`) VALUES
(1, 'serbermz',
'$2y$10$1VmOehdw8EfSiTn.wRR2EOmRviX23G6G/8KrbTRkAatc4dRTBLB2q', 'Lyndon',
'Bermoy', 'profile_youtube.jpg', '2018-05-03');

CREATE TABLE `books` (


`id` int(11) NOT NULL,
`isbn` varchar(20) NOT NULL,
`category_id` int(11) NOT NULL,
`title` text NOT NULL,
`author` varchar(150) NOT NULL,
`publisher` varchar(150) NOT NULL,
`publish_date` date NOT NULL,
`status` int(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `books` (`id`, `isbn`, `category_id`, `title`, `author`, `publisher`,
`publish_date`, `status`) VALUES
(2, 'bookisbntest', 2, 'Calculus Made Easy', 'Author Me', 'Self Publish Inc', '2018-05-02', 0),
(13, '159420229X', 3, 'Moonwalking with Einstein: The Art and Science of Remembering
Everything ', 'Joshua Foer ', 'Penguin Press HC', '2020-05-11', 0);
CREATE TABLE `borrow` (
`id` int(11) NOT NULL,
`student_id` int(11) NOT NULL,
`book_id` int(11) NOT NULL,
`date_borrow` date NOT NULL,
`status` int(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `category` (
`id` int(11) NOT NULL,
`name` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `category` (`id`, `name`) VALUES
(1, 'Engineering'),
REG NO : 311521205008

(2, 'Mathematics'),
(3, 'Science and Technology'),
(4, 'History');
CREATE TABLE `course` (
`id` int(11) NOT NULL,
`title` text NOT NULL,
`code` varchar(15) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `course` (`id`, `title`, `code`) VALUES
(1, 'Bachelor of Science in Information Systems', 'BSIS'),
(2, 'Bachelor of Science in Computer Science', 'BSCS');
CREATE TABLE `returns` (
`id` int(11) NOT NULL,
`student_id` int(11) NOT NULL,
`book_id` int(11) NOT NULL,
`date_return` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
OUTPUT :
Dashboard
REG NO : 311521205008

Books available

Course List

Return books

Borrow books
REG NO : 311521205008

Database

RESULT :
REG NO : 311521205008

PROGRAM :

addBook.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Add Book</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Add Book</h1>
<div id="addBookForm">
<input type="text" id="title" placeholder="Title">
<input type="text" id="author" placeholder="Author">
<input type="number" id="year" placeholder="Year">
<button onclick="addBook()">Add Book</button>
</div>

<script src="script.js"></script>
</body>
</html>

searchBook.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Search Book</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Search Book</h1>
<div id="searchForm">
<input type="text" id="searchInput" placeholder="Search...">
<button onclick="searchBook()">Search</button>
<div id="searchResults"></div>
</div>

<script src="script.js"></script>
</body>
</html>
script.js
// Define book class
class Book {
constructor(title, author, year) {
this.title = title;
REG NO : 311521205008

this.author = author;
this.year = year;
this.available = true;
}
}

// Array to store books


let books = [];

// Function to add a book


function addBook() {
let title = document.getElementById('title').value;
let author = document.getElementById('author').value;
let year = parseInt(document.getElementById('year').value);

if (title && author && year) {


let book = new Book(title, author, year);
books.push(book);
alert('Book added successfully!');

// Redirect to searchBook.html after adding book


window.location.href = "searchBook.html";
} else {
alert('Please fill in all fields.');
}
}

// Function to search for a book


function searchBook() {
let searchTerm = document.getElementById('searchInput').value.toLowerCase();
let searchResults = document.getElementById('searchResults');
searchResults.innerHTML = '';

let foundBooks = books.filter(book => {


return book.title.toLowerCase().includes(searchTerm) ||
book.author.toLowerCase().includes(searchTerm) ||
book.year.toString().includes(searchTerm);
});

if (foundBooks.length > 0) {
foundBooks.forEach(book => {
let bookInfo = document.createElement('div');
bookInfo.classList.add('bookInfo');

let title = document.createElement('p');


title.textContent = `Title: ${book.title}`;
bookInfo.appendChild(title);

let author = document.createElement('p');


author.textContent = `Author: ${book.author}`;
REG NO : 311521205008

bookInfo.appendChild(author);

let year = document.createElement('p');


year.textContent = `Year: ${book.year}`;
bookInfo.appendChild(year);

let availability = document.createElement('p');


availability.textContent = `Availability: ${book.available ? 'Available' : 'Not
Available'}`;
bookInfo.appendChild(availability);

searchResults.appendChild(bookInfo);
});
} else {
let noResults = document.createElement('p');
noResults.textContent = 'No books found.';
searchResults.appendChild(noResults);
}
}

OUTPUT :
REG NO : 311521205008

RESULT :
REG NO : 311521205008

TEST CODE AND OUTPUT:

SIGN IN/LOGIN: (ADMIN)


<?php
// Start session to store admin login status
session_start();

// Check if admin is already logged in, if yes, redirect to admin panel


if(isset($_SESSION["admin_loggedin"]) && $_SESSION["admin_loggedin"] === true){
header("location: admin_panel.php");
exit;
}

// Include config file


require_once "config.php";

// Define variables and initialize with empty values


$username = $password = "";
$username_err = $password_err = $login_err = "";

// Processing form data when form is submitted


if($_SERVER["REQUEST_METHOD"] == "POST"){

// Check if username is empty


if(empty(trim($_POST["username"]))){
$username_err = "Please enter username.";
} else{
$username = trim($_POST["username"]);
}

// Check if password is empty


if(empty(trim($_POST["password"]))){
$password_err = "Please enter your password.";
} else{
$password = trim($_POST["password"]);
}

// Validate credentials
if(empty($username_err) && empty($password_err)){
// Prepare a select statement
$sql = "SELECT id, username, password FROM admin WHERE username = ?";

if($stmt = mysqli_prepare($link, $sql)){


// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, "s", $param_username);

// Set parameters
$param_username = $username;

// Attempt to execute the prepared statement


REG NO : 311521205008

if(mysqli_stmt_execute($stmt)){
// Store result
mysqli_stmt_store_result($stmt);

// Check if username exists, if yes then verify password


if(mysqli_stmt_num_rows($stmt) == 1){
// Bind result variables
mysqli_stmt_bind_result($stmt, $id, $username, $hashed_password);
if(mysqli_stmt_fetch($stmt)){
if(password_verify($password, $hashed_password)){
// Password is correct, so start a new session
session_start();

// Store data in session variables


$_SESSION["admin_loggedin"] = true;
$_SESSION["admin_id"] = $id;
$_SESSION["admin_username"] = $username;

// Redirect admin to admin panel


header("location: admin_panel.php");
} else{
// Display an error message if password is not valid
$login_err = "Invalid username or password.";
}
}
} else{
// Display an error message if username doesn't exist
$login_err = "Invalid username or password.";
}
} else{
echo "Oops! Something went wrong. Please try again later.";
}

// Close statement
mysqli_stmt_close($stmt);
}
}

// Close connection
mysqli_close($link);
}
REG NO : 311521205008

OUTPUT :

RESULT :

You might also like