Project Report
Project Report
1
DECLARATION
I hereby that the project work entitled “COURSE MATERIAL DISTRIBUTION SYSTEM”
is the project report of the original work done by S.KRUTHIKA (Reg.No:1318128017) and
S.SUBASHINI (Reg.No:1318128034) during the project period December 2020 to March 2021.
This project work is submitted to Madurai Sivakasi Nadars Pioneer Meenakshi Women’s
College in partial fulfillment for the award of the degree of Bachelor of Computer Science
during the academic year 2020-2021.
I further declare that this project work has not been submitted to any Institution for any other
degree.
PLACE: S.KRUTHIKA
DATE : (Reg.No:1318128017)
&
S. SUBASHINI
(Reg.No:1318128034)
2
ACKNOWLEDGMENT
3
ACKNOWLEDGMENT
We feel very happy to express my thanks and gratitude to those who helped me directly
and indirectly bring this project to a fruitful final. First and foremost, I wish to express
my gratitude to the almighty god for the abundance of wisdom and presence throughout
the execution of my project.
We heartily express my thanks to our beloved principal Dr. RAJARAJESWARI
M.Sc., M.Phil., Ph.D, for having provided me the opportunity to do the project work of
the curriculum.
We extend my sincere thanks to Ms. K. SUDHARANI M.Sc., M.Phil., and head
of the Department of Computer Science.
We are extremely grateful and thanks to Ms.P.PRIYA M.C.A.,M.Phil., lecturer,
Department of Computer Science who guided me at every stage of our project to make it
a successful one. Finally, we would like to thank my parents and mentors for their
support that they have been giving us.
4
CONTENTS
5
CONTENTS
2. PROJECT PROFILE 9
3. SYSTEM ANALYSIS 11
3.1. EXISTING SYSTEM
3.2. PROPOSED SYSTEM
4. SYSTEM SPECIFICATION 14
4.1.HARDWARE REQUIREMENT
4.2.SOFTWARE REQUIREMENT
4.3.SOFTWARE DESCRIPTION
5. SYSTEM DESIGN 26
5.1. STRUCTURE CHART
5.2. DATABASE DESIGN
5.3. DATA FLOW DIAGRAM
5.4. DETAILED DESIGN
6. SYSTEM IMPLEMENTATION 32
7. SYSTEM TESTING 34
8. CONCLUSION 37
8.1.APPENDIX A -SAMPLE SCREEN
8.2.APPENDIX B -SAMPLE CODE
9. FUTURE ENHANCEMENT 44
10. BIBLOGRAPHY 46
6
INTRODUCTION
7
1.INTRODUCTION:
1.1.ABSTRACT:
Course material distribution system provides a simple interface for the students of
a university or a college to download the study material of a particular subject of
their course.
In the existing system, the material is provided by the teacher during class.
Therefore, a lot of time will be wasted and a lot of manual efforts are required.
Firstly, the students and faculty will be enrolled in the system by admin and are
provided with a username and want the password.
If the faculty wants to upload the file for a particular subject, he or she has to log
on to their system and select the course and the subject to which the file has to be
uploaded.
Then they can upload the file.
Similarly, if a student wants the material of a subject of his or her course, one has
to log on to the system and then can download the material that he or she wishes to
download.
As the material is provided online, it is easier for both students and teachers as it
reduces the manual effort.
8
PROJECT PROFILE
9
2.PROJECT PROFILE
Developing a project profile is one method for developing an understanding of the project
that will allow a systematic approach to developing an execution plan.
“COURSE MATERIAL DISTRIBUTION SYSTEM “has been divided into several
modules:
Admin module
Student module
Teacher module
1.ADMIN MODULE
Upload book
Delete book
View course
View book
Approve the notes uploaded by the staff
User accounts and information
Edit the user information
2.STUDENT MODULE
View course
View book
Download materials
3.TEACHER MODULE
Add course
Add book
Delete course
Delete book
View course
View book
10
SYSTEM ANALYSIS
11
3.SYSTEM ANALYSIS:
System analysis is the process of gathering and interpreting facts, diagnosing problems
and using the information to recommend improvements to the system. In short,
‘Analysis’ specifies what the system analysis job. Analysis can be defined as breaking up
of any whole so as to find out their nature, function and to sketch a Pattern outline or
plan.
12
3.1.EXISTING SYSTEM:
In the existing system, the material is provided by the teacher during class.
Therefore, a lot of time will be wasted and a lot of manual efforts are required.
3.2.PROPOSED SYSTEM:
It will provide an easy approach to share the documents for studying purposes.
Multiple users can work simultaneously on the system. It will be easy for the
teachers to circulate the notes to each and every student.
As the material is provided online, it is easier for both students and teachers as it
reduces the manual effort. It provides flexibility to the staff to transfer the large
amount of file through the network very easily.
13
SYSTEM REQUIREMENTS
14
4.SYSTEM REQUIREMENT
To be used efficiently, all computer software needs certain hardware components or the
other software resources to be present on a computer. These prerequisites are known
as(computer) system requirements and are often used as a guideline as opposed to an
absolute rule. Most software defines two sets of system requirements: minimum and
recommended. With increasing demand for higher processing power and resources in
newer versions of software, system requirements tend to increase over time. Industry
analysts suggest that this trend plays a bigger part in driving upgrades to existing
computer systems than technological advancements
4.1.HARDWARE REQUIREMENT:
The most common set of requirements defined by any operating system or software
application is the physical computer resources, also known as hardware. A hardware
requirements list is often accompanied by a hardware compatibility list (HCL), especially
in case of operating systems. An HCL lists tested, compatibility and sometimes
incompatible hardware devices for a particular operating system or application. The
following sub-sections discuss the various aspects of hardware requirements.
4.1.1.HARDWARE COMPONENTS:
15
4.2.SOFTWARE REQUIREMENTS:
4.2.1.SOFTWARE COMPONENTS:
Database : MySQL
4.3.SOFTWARE DESCRIPTION:
Front End:
18
Security
About 30% of all vulnerabilities listed on the National Vulnerability Database are linked
to PHP. These vulnerabilities are caused mostly by not following best practice
programming rules: technical security flaws of the language itself or of its core libraries
are not frequent (23 in 2008, about 1% of the total). Recognizing that programmers make
mistakes, some languages include taint checking to detect automatically the lack of input
validation which induces many issues. Such a feature is being developed for PHP, but its
inclusion in a release has been rejected several times in the past. There are advanced
protection patches such as Suhosin and Hardening-Patch, especially designed for Web
hosting environments.
PHPIDS adds security to any PHP application to defend against intrusions. PHPIDS
detects attacks based on cross-site scripting (XSS), SQL injection, header injection,
directory traversal, remote file execution, remote file inclusion, and denial-of-service
(DoS)
Syntax:
The PHP interpreter only executes PHP code within its delimiters. Anything outside its
delimiters is not processed by PHP (although non-PHP text is still subject to control
structures described in PHP code). The most common delimiters are <?php to open and ?
> to close PHP sections. <script language="php"> and </script> delimiters are also
available, as are the shortened forms <?or<?= (which is used to echo back a string or
variable) and ?> as well as ASP-style short forms <% or <%= and %>. While short
delimiters are used, they make script files less portable as support for them can be
disabled in the PHP configuration, and so they are discouraged. The purpose of all these
delimiters is to separate PHP code from non-PHP code, including HTML.
19
The first form of delimiters, <?php and ?>, in XHTML and other XML documents,
creates correctly formed XML 'processing instructions'. This means that the resulting
mixture of PHP code and other markup in the server-side file is itself well-formed XML.
Variables are prefixed with a dollar symbol, and a type does not need to be specified in
advance. Unlike function and class names, variable names are case sensitive. Both
double-quoted ("") and here-doc strings provide the ability to interpolate a variable's
value into the string. PHP treats newlines as whitespace in the manner of a free-form
language (except when inside string quotes), and statements are terminated by a
semicolon. PHP has three types of comment syntax: /* */ marks block and inline
comments; // as well as # are used for one-line comments. The echo statement is one of
several facilities PHP provides to output text, e.g., to a Web browser.
In terms of keywords and language syntax, PHP is similar to most high level languages
that follow the C style syntax. if conditions, for and while loops, and function returns are
similar in syntax to languages such as C, C++, Java and Perl.
Data types:
PHP stores whole numbers in a platform-dependent range, either a 64-bit or 32-bit signed
integer equivalent to the C-language long type. Unsigned integers are converted to signed
values in certain situations; this behavior is different from other programming languages.
Integer variables can be assigned using decimal (positive and negative), octal, and
hexadecimal notations. Floating point numbers are also stored in a platform-specific
range. They can be specified using floating point notation, or two forms of scientific
notation. PHP has a native Boolean type that is similar to the native Boolean types in
Java and C++. Using the Boolean type conversion rules, non-zero values are interpreted
as true and zero as false, as in Perl and C++. The null data type represents a variable that
has no value. The only value in the null data type is NULL. Variables of the "resource"
type represent references to resources from external sources. These are typically created
20
by functions from a particular extension, and can only be processed by functions from the
same extension; examples include file, image, and database resources. Arrays can contain
elements of any type that PHP can handle, including resources, objects, and even other
arrays. Order is preserved in lists of values and in hashes with both keys and values, and
the two can be intermingled. PHP also supports strings, which can be used with single
quotes, double quotes, nowdoc or heredoc syntax.
Functions
PHP has hundreds of base functions and thousands more via extensions. These functions
are well documented on the PHP site; however, the built-in library has a wide variety of
naming conventions and inconsistencies. PHP currently has no functions for thread
programming, although it does support multi-process programming on POSIX systems.
Back End:
MySQL is the world's most used open source relational database management system
(RDBMS) as of 2008 that run as a server providing multi-user access to a number of
databases. The MySQL development project has made its source code available under the
terms of the GNU General Public License, as well as under a variety of proprietary
agreements. MySQL was owned and sponsored by a single for-profit firm, the Swedish
company MySQL AB, now owned by Oracle Corporation.
MySQL is a popular choice of database for use in web applications, and is a central
component of the widely used LAMP open source web application software stack—
LAMP is an acronym for "Linux, Apache, MySQL, Perl/PHP/Python." Free-software-
open source projects that require a full-featured database management system often use
MySQL.
For commercial use, several paid editions are available, and offer additional functionality.
Applications which use MySQL databases include: TYPO3, Joomla, Word Press, phpBB,
21
MyBB, Drupal and other software built on the LAMP software stack. MySQL is also
used in many high-profile, large-scale World Wide Web products, including Wikipedia,
Google(though not for searches), ImagebookTwitter, Flickr, Nokia.com, and YouTube.
Inter Images:
MySQL is primarily an RDBMS and ships with no GUI tools to administer MySQL
databases or manage data contained within the databases. Users may use the included
command line tools, or use MySQL "front-ends", desktop software and web applications
that create and manage MySQL databases, build database structures, back up data,
inspect status, and work with data records. The official set of MySQL front-end tools,
MySQL Workbench is actively developed by Oracle, and is freely available for use.
Graphical:
MySQL Workbench is available in two editions, the regular free and open source
Community Edition which may be downloaded from the MySQL website, and the
proprietary Standard Edition which extends and improves the feature set of the
Community Edition.
22
Command line:
MySL ships with some command line tools. Third-parties have also developed tools to
manage a MySQL server, some listed below.
MySQL works on many different system platforms, including AIX, BSDi, FreeBSD, HP-
UX, eComStation, i5/OS, IRIX, Linux, Mac OS X, Microsoft Windows, NetBSD, Novell
NetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Solaris, Symbian, SunOS, SCO
OpenServer, SCO UnixWare, Sanos and Tru64. A port of MySQL to OpenVMS also
exists.[32]
MySQL is written in C and C++. Its SQL parser is written in yacc, and a home-brewed
lexical analyzer. Many programming languages with language-specific APIs include
libraries for accessing MySQL databases. These include MySQL Connector/Net for
integration with Microsoft's Visual Studio (languages such as C# and VB are most
commonly used) and the JDBC driver for Java. In addition, an ODBCinterimage called
MyODBC allows additional programming languages that support the ODBC interimage
to communicate with a MySQL database, such as ASP or ColdFusion. The HTSQL -
URL-based query method also ships with a MySQL adapter, allowing direct interaction
between a MySQL database and any web client via structured URLs.
Features:
As of April 2009, MySQL offered MySQL 5.1 in two different variants: the open source
MySQL Community Server and the commercial Enterprise Server. MySQL 5.5 is offered
23
under the same licenses. They have a common code base and include the following
features:
24
Partitioned tables with pruning of partitions in optimizer
Shared-nothing clustering through MySQL Cluster
Hot backup (via mysqlhotcopy) under certain conditions
Multiple storage engines, allowing one to choose the one that is most effective for each
table in the application (in MySQL 5.0, storage engines must be compiled in; in MySQL
5.1, storage engines can be dynamically loaded at run time): Native storage engines
(MyISAM, Falcon, Merge, Memory (heap), Federated, Archive, CSV, Blackhole,
Cluster, EXAMPLE, Maria, and InnoDB, which was made the default as of 5.5). Partner-
developed storage engines (solidDB, NitroEDB, ScaleDB, TokuDB, Infobright (formerly
Brighthouse), Kickfire, XtraDB, IBM DB2). InnoDB used to be a partner-developed
storage engine, but with recent acquisitions, Oracle now owns both MySQL core and
InnoDB.
25
SYSTEM DESIGN
26
5.SYSTEM DESIGN
5.1.STURCTURE CHART:
Deleted notes
5.2.DATABASE DESIGN:
5.2.1.SIGN-UP FORM:
27
5.2.2.LOGIN FORM:
5.2.3.UPLOAD FORM:
28
5.3.DATA FLOW DIAGRAM:
29
5.3.1.LOGIN:
Administrator
5.4.DETAILED DESIGN:
30
31
SYSTEM IMPLEMENTATION
6.SYSTEM IMPLEMENTATION:
32
A software application in general is implemented after navigating the complete life
cycle method of a project. Various life cycle processes such as requirement analysis,
design phase, verification, testing and finally followed by the implementation phase
results in a successful project management. The software application which is basically a
web-based application has been successfully implemented after passing various life cycle
processes mentioned above.
As the software is to be implemented in a high standard industrial sector, various
factors such as application environment, user management, security, reliability and
finally performance are taken as key factors throughout the design phase. These factors
are analyzed step by step and the positive as well as negative outcomes are noted down
before the final implementation. Security and authentication is maintained in both user
level as well as the management level.
33
SYSTEM TESTING
34
7.SYSTEM TESTING:
7.1Testing:
Testing is a series of different tests that whose primary purpose is to fully exercise
the computer-based system. Although each test has a different purpose, all work should
verify that all system element has been properly integrated and performed allocated
function. Testing is the process of checking whether the developed system works
according to the actual requirement and objectives of the system. The philosophy behind
testing is to find the errors. A good test is one that has a high probability of finding an
undiscovered error. A successful test is one that uncovers the undiscovered error. Test
cases are devised with this purpose in mind. A test case is a set of data that the system
will process as an input.
7.2.Testing Methods:
7.2.1.Unit Testing:
The first test in the development process is the unit test. The source code is
normally divided into modules, which in turn are divided into smaller units called units.
These units have specific behavior. The test done on these units of code is called unit test.
Unit test depends upon the language on which the project is developed. Unit tests ensure
that each unique path of the project performs accurately to the documented specifications
and contains clearly defined inputs and expected results.Functional and reliability testing
in an Engineering environment. Producing tests for the behavior of components (nodes
and vertices) of a product to ensure their correct behavior prior to system integration.
7.2.2.Integration Testing:
Testing in which modules are combined and tested as a group. Modules are
typically code modules, individual applications, source and destination applications on a
network, etc. Integration Testing follows unit testing and precedes system testing. Testing
35
after the product is code complete. Betas are often widely distributed or even distributed
to the public at large in hopes that they will buy the final product when it is release .
7.2.3.Validation Testing:
Valid and invalid data should be created and the program should be made to process this
data to catch errors. When the user of each module wants to enter into the page by the
login page using the use rid and password. If the user gives the wrong password or use rid
then the information is provided to the user like “you must enter user id and password”.
Here the inputs given by the user are validated. That is password validation, format of
date is correct, textbox validation. Changes that need to be done after result of this
testing.
36
CONCLUSION
8.CONCLUSION:
37
This app is more suitable for any institution or faculty and features of this
smart sharing system is more easy to use. This app will helpful both for the
faculty and students of any institute.
As the material is provided online, it is easier for both students and teachers
as it reduces the manual effort. It provides flexibility to the staff to transfer
the large amount of file through the network very easily.
8.1.APPENDIX
38
8.1.1.Sample Screenshot:
HOME PAGE:
LOGIN PAGE:
39
SIGNUP PAGE:
ADMIN PAGE:
40
STUDENT PAGE:
TEACHER PAGE:
8.1.2.Sample Coding:
41
index.php
<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="#"><imgsrc="https://uteach.io/storage/images/articles/22/phpTevMyE.png" 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>
42
<li>
<a href="#"><img
src="https://drrrhyhe9lfip.cloudfront.net/media/images/mobilewebcoverimage900x400_collectio
n_1web1485246892.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>
43
FUTURE ENHANCEMENT
9.FUTURE ENHANCEMENT:
44
The future implementation of this project involves the integration of IOT
concept to each and every staff and students to interact with each other in real time
and do the data analysis part for giving them the right kind of tool which will
enhance the overall performance of the department.
45
BIBLIOGRAPHY
10.BIBLIOGRAPHY:
https://www.tutorialspoint.com/php/index.htm
46
https://www.a2hosting.in/kb/developer-corner/mysql/connect-to-
mysql-from-the-command-line
https://www.cloudways.com/blog/connect-mysql-with-php/
https://www.technoarete.org/common_abstract/pdf/IJERCSE/v5/
i4/Ext_17283.pdf
47