College Notes Gallery
College Notes Gallery
Belagavi-590018
A
Mini Project Report
On
College Notes Gallery
Submitted by
Prof. Pakruddin B
Assistant Professor
Department of Computer Science & Engineering
2020-21
Certificate
Certified that the Mini Project entitled “College Notes Gallery”, carried out by
Sheikh Junaid Nazir (1HK16CS143) and Muntazir Hussain Bhat(1HK16CS104)
are bonafide students of HKBK COLLEGE of ENGINEERING, in partial
fulfillment for the award of Bachelor of Engineering in Computer Science and
Engineering of the Visvesvaraya Technological University, Belagavi, during the
year 2020–21. It is certified that all corrections/suggestions indicated for Internal
Assessment have been incorporated in the report deposited in the departmental library.
The project report has been approved as it satisfies the academic requirements in
respect of 15CSL77–Web Technology Laboratory with Mini Project prescribed for
the said Degree.
External Viva
Name of the Examiners Signature with Date
1.
2.
ACKNOWLEDGEMENT
First of all, I would take this opportunity to express my heartfelt gratitude to the
personalities of HKBK College of Engineering, the Chairman Mr. C M Ibrahim, and the
Director Mr. C M Faiz Mohammed, for providing facilities and untiring Zeal,
throughout the course.
I express my sincere gratitude to the principal Dr. M.S. Bhagyashekar, for his support and
which inspired me towards the attainment of knowledge.
I consider it as great privilege to convey my sincere regards to Professor and Head Dr.
Loganathan. R., Department of CSE, HKBKCE, Bangalore for his constant
encouragement throughout the course of the project.
I would specially like to thank my guide, Prof. Pakruddin. B, for his vigilant supervision
and his constant encouragement. He spent his precious time in reviewing the project work
and provided many insightful comments and constructive criticism.
Finally, I thank Almighty, all the staff members of CSE Department, my family members
and friends for their constant support and encouragement in carrying out the project work.
i
HKBK College of Engineering
No. 22/1, Nagawara, AC Post, Bengaluru-560045 Department of
Computer Science & Engineering
ABSTRACT
College Notes Gallery is a web-based notes sharing and management system which helps
students and teachers to share their notes online effectively. It reduces the wasting of time in
manually distributing notes to each individual. It greatly overcomes the lack of availability and
converts the manual old school paperwork to a fully automated and managed online system.
College Notes Gallery allows its users to securely register and log in to their individual
accounts and create, read, update, delete notes according to their needs. It provides notes to
everyone in a very secure manner. Multiple users can work in this system at the same time under
Colleges, Schools and other Institutes to manage and share their notes in a secure, efficient and
effective manner.
ii
TABLE OF CONTENTS
Acknowledgment i
Abstract ii
CHAPTER 1. INTRODUCTION
1.1 Introduction 1
1.2 Problem Statement 1
1.3 Proposed system 1
1.4 Objectives 2
1.5 Outcomes of the Project 2
CHAPTER 5. IMPLEMENTATION
5.1 Tools and Languages Used 16
REFERENCES
`
CHAPTER -1
INTRODUCTION
Chapter 1
INTRODUCTION
1.1 Introduction
College Notes Gallery is a web-based notes sharing and management system which helps
students and teachers to share their notes online effectively. It reduces the wasting of time
in manually distributing notes to each individual. It greatly overcomes the lack of
availability and converts the manual old school paperwork to a fully automated and
managed online system. College Notes Gallery allows its users to securely register and log
in to their individual accounts and create, read, update, delete notes according to their
needs. It provides notes to everyone in a very secure manner. Multiple users can work in
this system at the same time under centralized supervision by administrator. It is very
useful notes management system for Colleges, Schools and other Institutes to manage and
share their notes in a secure, efficient and effective manner.
College Notes Gallery A notes management system which helps users to upload,
download and manage notes of their particular course. The whole system is coded in core
PHP and MySQL. Requirements: PHP 5.3 or higher recommended MySQL DB Ability to
write hatches file for apache mod rewrite Installation: Upload College-Notes-Gallery to
the directory of your choice. Import MySQL Db file to your database software (E.g. :
phpMyAdmin ) Configure connection to your database and server by modifying
connection file Navigate to the installation in your browser Done :) Login Details: Admin:
username: root password: admin root User: username: user password: user pass Main
Features: Multiple user access: Allows multiple type of users(teacher/student/admin) to
login Functional Admin panel: Allows admins to manage the whole system CRUD
functionalities: Allows all users to create,read,update and delete their notes in a managed
format Profile update option: Allows users to update their profile/account details Secure
registration and login option for users Allows students and teachers to download/upload
their course notes easily Allows users to recover their password using forgot password
option.
Students and Teachers can create their accounts and start viewing notes shared by other
users as well as upload their own notes. Administrator is must be an authorized user who
will keep track of all the uploaded notes and manage users as well through the admin
panel. New features can be added to the system as per requirements
1.4 Objective
Chat zone provide a user-friendly platform for voice call and video call. We can text on
this platform.
Present State:
• No Software present at all.
• Time consumed in distributing notes to everyone individually.
• Manual Paperwork.
• Students are informed by sending mail to them manually about the notes.
• Lack of accessibility.
2.1 Tools
❖ LAMP: - LAMP is an archetypal model of web service stacks, named as an acronym of the names
of its original four open-source components: the Linux Operating System, the Apache HTTP
Server, the MYSQL relational database management (RDBMS), and the PHP Programming
Language. The LAMP components are largely interchangeable and not limited to the original
selection. As a solution stack, LAMP is suitable for building dynamic web sites and web
applications.
Since its creation, the LAMP model has been adapted to other componentry, though
typically consisting of free and open-source software. For example, an equivalent installation on
the Microsoft Windows family of operating systems is known as WAMP and an equivalent
installation on macOS is known as MAMP.
❖ PhpMyAdmin: - phpMyAdmin is a free and open-source administration tool for MYSQL and
MariaDB. As a portable web application written primarily in PHP, it has become one of the most
popular MySQL administration tools, especially for web hosting services.
2.1.1 Technology:
❖ PHP: - PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open-source
general-purpose scripting language that is especially suited for web development and can be
embedded into HTML.
❖ SQL: - SQL is a structured query language used for querying database.
❖ HTML: - It is used for giving eye catching look to the website. And also providing easy
to use GUI.
❖ CSS: - CSS is cascading style sheet which is used to give designer look to HTML using
the external file.
❖ Java script: - Java script is used for client-side scripting which can help in using validation on the
website and many more other functions.
2.2 Feasibility study.
The feasibility study is an evaluation and analysis of the potential of a proposed project
which is based on extensive investigation and research to support the process of decision
making. Depending on the results of the initial investigation the survey is now expanded
to a more detailed feasibility study.
1. Technical Feasibility: In technical feasibility, we study all technical issues regarding
the proposed system. It is mainly concerned with the specifications of the equipment’s and
the software, which successfully satisfies the end-user’s requirement. The technical needs
of the system may vary accordingly but include:
• The feasibility to produce outputs in a given time.
• Response time under certain conditions.
• Ability to process a certain volume of the transaction at a particular speed.
• Facility to communicate data
2. Operational Feasibility: In the existing manual system it is very difficult to maintain
and update huge amount of information. This system, will handles the request in a better
way and make the process easier thus, it is sure that the system developed is operationally
feasible.
3. Economic Feasibility: The application can be developed within budget.
2.3 Existing system
The existing communication system is not built as a software application. Everybody can
download the notes form the internet but it takes time to search the notes and find the appropriate
one. To make this complex job simple and allows the users to participate in simple
communication and save unproductive time it is to be built as a software application. This type of
communication channel fails in providing effective user-friendly communication between the
users. The Notes gallery application is built to make the students time worth and use that time in
some productive activities and ease of access for the students.
The college notes gallery is designed to make ease of access for the students and the teachers also
in order to keep the notes at one place and make their work hassle free. The application is
developed by using the PHP for the back-end programing and CSS & JavaScript for the front end
developing.
The architecture is based on the single side server which includes the teacher and the student
interface in the same menu. Both the students and the teacher can upload the notes and also view or
download them
➢ It can be thought to find a time that works for all necessary participants searching
the notes through random internet sites.
➢ Notes gallery is much more flexible.
➢ Participants can access from work, School or home.
➢ It also makes it easy to exchange the notes in Realtime and make much easier to
access the material.
CHAPTER -3
SYSTEM REQUIREMENTS
Chapter 3
SYSTEM REQUIREMENT SPECIFICATION
• Any kind of the text viewer is needed according to the format of the document.
• No other hassle
Hardware Requirements:
Software Requirements:
SYSTEM DESIGN
4.1 System Architecture
User Sing In
Check User
Yes
No
Register Validate
Upload
Access Download
Profile Update
Start
Home
Login Register
Validate
User Invalid
Role Authentication
Profile
Upload Download
Update
END
Software Tools
• Operating System: Advanced OS.
• Platform: Visual studio code, browser.
• Front End: HTML, CSS and BOOTSTRAP.
• Back End: JavaScript, PHP.
• Web Server: XAMPP Server/Apache Server
5.2 Modules.
<br><br>
<link rel="stylesheet" type="text/css" href="styles.css" media="all" />
<link rel="stylesheet" type="text/css" href="demo.css" media="all" />
<!-- jQuery -->
<script type="text/javascript" src="js/jquery.min.js"></script>
<!-- FlexSlider -->
<script type="text/javascript" src="js/jquery.flexslider-
min.js"></script>
<script type="text/javascript" charset="utf-8">
var $ = jQuery.noConflict();
$(window).load(function() {
$('.flexslider').flexslider({
animation: "fade"
});
$(function() {
$('.show_menu').click(function(){
$('.menu').fadeIn();
$('.show_menu').fadeOut();
$('.hide_menu').fadeIn();
});
$('.hide_menu').click(function(){
$('.menu').fadeOut();
$('.show_menu').fadeIn();
$('.hide_menu').fadeOut();
});
});
});
</script>
<div class="slider_container">
<div class="flexslider">
<ul class="slides">
<li>
<a href="#"><img src="images/slider/slide1.jpg" alt=""
title=""/></a>
<div class="flex-caption">
<div class="caption_title_line"><h2>Easy Notes
Management</h2><p>Now easily manage all kind of notes by uploading them
here.</p></div>
</div>
</li>
<li>
<a href="#"><img src="images/slider/slide2.jpg" alt=""
title=""/></a>
<div class="flex-caption">
<div class="caption_title_line"><h2>Upload Various
Files</h2><p>User can upload various types of files like PDF, PPT, DOC
etc..</p></div>
</div>
</li>
<li>
<a href="#"><img src="images/slider/slide3.jpg" alt=""
title=""/></a>
<div class="flex-caption">
<div class="caption_title_line"><h2>Controled By
Admin</h2><p>Everying is managed and controled by administrator</p></div>
</div>
</li>
<li>
<a href="#"><img src="images/slider/slide4.jpg" alt=""
title=""/></a>
<div class="flex-caption">
<div class="caption_title_line"><h2>Login For Both
Teacher and Student</h2><p>Both teacher and student can login and upload
notes </p></div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</body>
</html>
<?php include 'includes/footer.php';?>
5.2.2 Home Page
<?php
session_start();
if (isset($_POST['login'])) {
$username = $_POST['user'];
$password = $_POST['pass'];
mysqli_real_escape_string($conn, $username);
mysqli_real_escape_string($conn, $password);
$query = "SELECT * FROM users WHERE username = '$username'";
$result = mysqli_query($conn , $query) or die (mysqli_error($conn));
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result)) {
$id = $row['id'];
$user = $row['username'];
$pass = $row['password'];
$name = $row['name'];
$email = $row['email'];
$role= $row['role'];
$course = $row['course'];
if (password_verify($password, $pass )) {
$_SESSION['id'] = $id;
$_SESSION['username'] = $username;
$_SESSION['name'] = $name;
$_SESSION['email'] = $email;
$_SESSION['role'] = $role;
$_SESSION['course'] = $course;
header('location: dashboard/');
}
else {
echo "<script>alert('invalid username/password');
window.location.href= 'login.php';</script>";
}
}
}
else {
echo "<script>alert('invalid username/password');
window.location.href= 'login.php';</script>";
}
}
?>
<div class="login-card">
<h1>Log-in</h1><br>
<form method="POST">
<input type="text" name="user" placeholder="Username" required="">
<input type="password" name="pass" placeholder="Password" required="">
<input type="submit" name="login" class="login login-submit"
value="login">
</form>
<div class="login-help">
<a href="signup.php">Register</a> • <a
href="recoverpassword.php">Forgot Password</a>
</div>
</div>
<script src='css/jquery.min.js'></script>
<script src='css/jquery-ui.min.js'></script>
</body>
</html>
Recover Password
<?php include 'includes/connection.php';?>
<?php include 'includes/header.php';?>
<?php include 'includes/navbar.php';?>
<?php
if (isset($_POST['recover'])) {
$email = mysqli_real_escape_string($conn , $_POST['email']);
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$query = "SELECT email FROM users WHERE email = '$email'";
$run = mysqli_query($conn , $query) or die (mysqli_error($conn)
);
if (mysqli_num_rows($run) > 0) {
function generateRandomString($length = 5) {
return
substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFG
HIJKLMNOPQRSTUVWXYZ"), 0, $length);
}
$token_tmp = generateRandomString();
$token = md5($token_tmp);
$url = $_SERVER['REQUEST_URI'];
$parts = explode('/',$url);
$dir = $_SERVER['SERVER_NAME'];
for ($i = 0; $i < count($parts) - 1; $i++) {
$dir .= $parts[$i] . "/";
}
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP(); // Set mailer to
use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and
backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP
authentication
$mail->Username = '[email protected]'; //
SMTP username
$mail->Password = 'collegegallery'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS
encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to
connect to
$mail->setFrom('[email protected]', 'Admin');
$mail->addReplyTo('[email protected]', 'Admin');
$mail->addAddress($email);
$mail->isHTML(true); // Set email format to HTML
$bodyContent = '<h1>Recover Password Link: </h1>';
$bodyContent .= 'http://' . $dir .
'verifytoken.php?token='.$token;
$mail->Subject = 'Email from collegenotesgallery ';
$mail->Body = $bodyContent;
$query2 = "UPDATE users set token = '$token' WHERE email =
'$email'";
$run = mysqli_query($conn , $query2) or
die(mysqli_error($conn));
$count = mysqli_affected_rows($conn);
if($mail->send() && ($count > 0)) {
echo "<center> <font color = 'green' >Email with recover
password link has been sent </font><center> " ;
} else {
echo "<center> <font color = 'red' >'Message could not be
sent.'</font><center> ";
echo "<center> <font color = 'red' >'Mailer Error: ' .
$mail->ErrorInfo </font><center> ";
}
}
else {
echo "<center> <font color = 'red' > Entered email does not
match to any record </font><center> ";
}
}
else {
echo "<center> <font color = 'red' > Invalid email type
</font><center> ";
}
}
?>
<div class="login-card">
<h1>Recover Password</h1><br>
<form action = "" method="POST">
<input type="text" name="email" placeholder="Enter your
Email" required="">
<input type="submit" name="recover" class="login login-
submit" value="send">
</form>
<div class="login-help">
<a href="signup.php">Register</a> • <a
href="login.php">Login</a>
</div>
</div>
<script
src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.
min.js'></script>
<script
src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquer
y-ui.min.js'></script>
</body>
</html>
5.2.3 Signup
<?php
if (isset($_POST['signup'])) {
require "gump.class.php";
$gump = new GUMP();
$_POST = $gump->sanitize($_POST);
$gump->validation_rules(array(
'username' => 'required|alpha_numeric|max_len,20|min_len,4',
'name' => 'required|alpha_space|max_len,30|min_len,5',
'email' => 'required|valid_email',
'password' => 'required|max_len,50|min_len,6',
));
$gump->filter_rules(array(
'username' => 'trim|sanitize_string',
'name' => 'trim|sanitize_string',
'password' => 'trim',
'email' => 'trim|sanitize_email',
));
$validated_data = $gump->run($_POST);
else {
$name = $validated_data['name'];
$email = $validated_data['email'];
$pass = $validated_data['password'];
$password = password_hash("$pass" , PASSWORD_DEFAULT);
$role = $_POST['role'];
$course = $_POST['course'];
$gender = $_POST['gender'];
$joindate = date("F j, Y");
$query = "INSERT INTO
users(username,name,email,password,role,course,gender,joindate,token) VALUES
('$username' , '$name' , '$email', '$password' , '$role', '$course',
'$gender' , '$joindate' , '' )";
$result = mysqli_query($conn , $query) or die(mysqli_error($conn));
if (mysqli_affected_rows($conn) > 0) {
echo "<script>alert('SUCCESSFULLY REGISTERED');
window.location.href='login.php';</script>";
}
else {
echo "<script>alert('Error Occured');</script>";
}
}
}
}
?>
<br>
<div class="container">
<div class="form">
<form id="contactform" method="POST">
<p class="contact"><label for="name">Name</label></p>
<input id="name" name="name" placeholder="First and last name"
required="" tabindex="1" type="text" value="<?php if(isset($_POST['signup']))
{ echo $_POST['name']; } ?>">
</body>
</html>
As an output we expect that every Student and the teacher can save their time and make a
hassle-free transfer of study material between each other. There is a lot of stuff on the
internet to be searched and downloaded but we provide a single interface for both students
and the teacher to make a specified category for the notes for the students to save their
time and make their time utilize in studying and not finding the appropriate notes and
other study material.
Future Work:
We Assure the improvements in the existing system by making it more secure and reliable
and much more useful.
In the future upgrades there might be the more specified categories and more secure and
classified interface.
REFERENCES
[1] Alan Forbes, The joy of php programming, 5th edition
[2] Tom Butler and Kevin Yank, Php and MySql, Novice to ninja, 6th edition
[3] Laura Thompson and Luke Welling, Php and MySql web development, 5th edition
Websites:
[1] https://www.phpmyadmin.net/
[2] https://www.apachefriends.org/download.html
[3] https://www.w3schools.com/html/
[4] https://www.w3schools.com/bootstrap/
[5] https://www.w3schools.com/jquery/
[6] https://www.w3schools.com/php/default.asp
[7] https://www.w3schools.com/js/default.asp