0% found this document useful (0 votes)
123 views

CD DVD Management final report with code and output

Uploaded by

K S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
123 views

CD DVD Management final report with code and output

Uploaded by

K S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 66

A PROJECT REPORT ON

“CD DVD Management System”


Submitted in partial fulfillment of the requirements for the
Bachelor of computer application (BCA)
Submitted by
Xyz Singh (Roll no. 36)
Under the guidance of
DR. XYZ JAIN
MS. PQR SACHALA
MRS. LMN GHULE
JANSEVA SAMITI SANCHALIT
SHRI.M. D XYZ COLLEGE OF ARTS AND
COMMERCE

B. J. XYZ ROAD YZZ (WEST).


XYZ-400064

Affiliated/conduct college to X.Y.Z. WOMEN'S


UNIVERSITY, XYZ
DECLARATION

I’m, Xyz Singh, the students of Bachelor of Computer Application (BCA)


Semester VI (2022-2023) hereby declare that the project Report submitted
to Shri. M.D. Shah Mahila College has been entirely programmed by us to
fulfill the requirement of the final Year project. We declare that this project
has been completed within time. The information submitted by us is true
and original to the best of our knowledge.
ACKNOWLEDGEMENT

We started this project as a part of the curriculum of BCA “SHRI MD


XYZ COLLEGE’’ has assigned to us. It was very exciting for us to work on the
project “CD DVD Management System”. We take this opportunity to
express our heartfelt gratitude to all the people from our college for
inspiring us to go to the depth of the subject through theoretical and
practical approaches in every stage of our training.

We are sincerely indebted to Mrs. Hiral Sachala and Dr. Preety Jain
who extended valuable guidance, constant encouragement, and help
through various difficult stages for the completion of the project. I owe my
deep gratitude and respect to our respected principal Dr. Deepa Sharma
for encouragement and facilities provided to us. Thank you for introducing
add on subject which made our work even easier. We would also thank our
faculty members without whom this project would have been distant reality.
At end, we want to thank our family, friends and relatives for their positive
criticism and needful support.

Sr. No Content Page No


1. OBJECTIVE

2. PURPOSE
3. SCOPE
4. SYSTEM ANALYSIS
5. SOFTWARE REQUIREMENTS &
SPECIFICATION

6. SOFTWARE INTRODUCTION
7. PROJECT MODULES

8. FEASIBILITY STUDY

9. DATA FLOW DIAGRAM


10. ENTITY RELATIONSHIP DIAGRAM

11. SCREENSHOTS

12. SAMPLE CODE

13. TESTING APPROACHES

14. CONCLUSION

15. BIBLIOGRAPHY

APPLICATION INTRODUCTION
Introduction
Even though streaming services and downloads are popular, many
people still love CDs and DVDs. They enjoy the physical experience of holding
them, reading the liner notes and artwork, and feeling the nostalgia
associated with these formats. But managing a growing collection of CDs and
DVDs can be a challenge.
This project is designed to help you with that challenge! We've created a
user-friendly CD/DVD management system website. This website will help
you organize your collection effectively by letting you add, edit, delete, and
search for your CDs and DVDs easily.
The bigger your collection gets, the harder it is to keep track of
everything. It can be frustrating to try to find a specific title, remember details
about an artist or genre, or just see what you even have in your collection.
Traditional methods like handwritten lists or spreadsheets just aren't
powerful or flexible enough for a big collection. This project offers a modern
and convenient solution.
This CD/DVD management system uses web technologies to give you a
central place to manage your collection. It uses a combination of HTML, CSS,
JavaScript, PHP, and MySQL to create a user-friendly interface that you can
access from any device with an internet connection.

Objective

The main objective of this project is to develop a user-friendly CD/DVD


management system website. This website aims to empower users to
organize their collections of CDs and DVDs efficiently.
1. Centralized Organization: The system provides a central platform to
manage your entire CD and DVD collection. This eliminates the need for
scattered methods like handwritten lists or spreadsheets, offering a
more streamlined and organized approach.
2. Effortless Data Entry: The user interface is designed for ease of use,
allowing you to effortlessly add new CDs and DVDs to the system. You
can capture essential details like title, artist, genre, release date, and
even include personal notes for each entry.
3. Data Maintenance: The system allows you to edit existing entries in
your collection. This ensures that information remains up-to-date and
reflects any changes, keeping your collection accurately documented.
4. Powerful Search Functionalities: Forget sifting through your entire
collection! The system provides powerful search functionalities that
allow you to quickly locate specific titles based on various criteria, such
as artist, genre, or keywords. This saves you time and frustration when
trying to find a particular CD or DVD.
5. Comprehensive Overview: The system offers a clear and organized
way to browse your entire collection. This allows you to easily visualize
everything you have, gaining a comprehensive understanding of the
contents of your CD and DVD library.

The objects interact with each other through different functions and
methods to provide the desired functionality of the system.

Purpose
The purpose of this project goes beyond simply creating a CD/DVD
management system. It's about empowering you, the user, to take control of
your physical media collection in a way that is both effective and enjoyable.
Here's a deeper dive into how this project aims to achieve that:

1. Combating the Chaos of Physical Media: In the age of streaming


services, it's easy to let your physical media collection become
disorganized and forgotten. This project tackles that challenge head-on
by providing a centralized platform to manage your CDs and DVDs. You'll
no longer have to deal with scattered lists, forgotten titles, or the
frustration of not being able to find what you're looking for.
2. Preserving the Value of Physical Media: For many people, CDs and
DVDs hold a special value beyond the content they store. The physical
experience of holding the media, the liner notes, and the artwork all
contribute to the enjoyment of ownership. This system allows you to not
only organize your collection but also appreciate the physical aspect of
your media.
3. Building a Personalized Media Library: This project isn't just about
creating a database; it's about creating a personalized library of your
favorite CDs and DVDs. By allowing you to capture details and even add
personal notes, the system transforms your collection into a reflection of
your taste and memories.
4. Effortless Management for Long-Term Enjoyment: A well-organized
collection is easier to maintain and enjoy over time. This project aims to
make managing your CDs and DVDs effortless. Adding new entries,
editing existing information, and searching your collection are all
designed to be quick and simple tasks. This allows you to focus on what
truly matters: enjoying your music and movies.
5. A Celebration of Physical Media: In a world dominated by digital
downloads, this project serves as a celebration of physical media. It
acknowledges the enduring appeal of CDs and DVDs and provides tools
to help you appreciate and care for your collection.

In summary, the purpose of the CD DVD Management System is


to develop a robust and user-friendly web-based application that helps
individuals track, manage, and analyze.

Existing System
In the context of a CD/DVD management system, there isn't typically
a single, pre-existing system to discuss. However, there are various
traditional methods that people often use to manage their collections, and
this project aims to offer a more efficient and user-friendly alternative.
Here's a breakdown of some common existing systems:
1. Manual Methods: Traditional approaches to managing collections
often involve:
a. Handwritten Lists: Creating physical lists of CDs and DVDs
can be cumbersome and time-consuming. Keeping track of
updates and changes becomes difficult, and searching for
specific titles requires manually sifting through the list.
b. Spreadsheets/Excel: Spreadsheets offer a more organized
approach compared to handwritten lists, but they can still
become unwieldy for large collections. Data entry can be
tedious, and searching functionalities are limited compared to
a dedicated system.
2. Physical Organization Systems: Some people rely on physical
methods like:
a. Shelving Systems: Categorizing CDs and DVDs by genre or
artist on shelves can provide a visual overview of the
collection. However, locating specific titles can be time-
consuming, especially for larger collections.
b. Storage Boxes: Storing CDs and DVDs in boxes can help
protect them, but it makes browsing and searching the
collection difficult. Titles are often hidden from view, and
retrieving specific items requires physically going through
each box.

Drawback

The drawback of a project should be its better use and benefits for
the concerned users and applications. This project web-based project may
be useful for that departments or organizations that are doing time-
consuming manual efforts and its key attributes are summarised below:
 It may provide a better way to automate boring tasks.
 Data is secured in Cloud.
 Reduce time consumption
 No paperwork needed for future
 Reduce error scope.

Limitations
 Limited Media Scope: Designed for CDs and DVDs, not currently
compatible with Blu-rays, vinyl records, or video game discs.
 Core Functionality Focus: Current features revolve around adding,
editing, deleting, and searching CDs/DVDs. Future enhancements
like user accounts, loan tracking, and image uploads are planned but
not implemented.
 Online Dependence: Requires internet connection to function.
Offline access would necessitate a downloadable application.
 Data Security Considerations: Secure connections and practices
are implemented, but user authentication and data encryption
might be required for more sensitive collections.
 User Input Reliance: Accuracy of collection information depends
on user entering correct data. The system cannot verify information
enstered.

Scope
The CD DVD Management System is a comprehensive project that
aims to develop a web-based application using PHP programming
language to efficiently track and manage personal expenses. The scope
of this project encompasses various functional and technical aspects
that are essential for creating a robust and user-friendly. Here are the
key components of the project scope:

1. User Registration and Authentication:


a. User Registration:
i. Users can create accounts by providing basic details
like name, email address, and a secure password.
ii. The system should validate user input to ensure strong
password creation and prevent duplicate email
registrations.
b. Authentication Mechanism:
i. Secure login functionality allows users to access their
accounts with their registered email address and
password.
ii. Implement features like password reset in case users
forget their login credentials.
2. Expense Entry and Categorization:
a. Intuitive Interface:
i. Design a user-friendly interface for users to easily
enter their daily expenses. This might include fields for
date, amount, payee (if applicable), and a brief
description.
ii. Allow users to add receipts or invoices digitally by
uploading images or linking to cloud storage (optional
based on project goals).
b. Expense Categorization:
i. Implement a predefined system of expense categories
like groceries, bills, transportation, entertainment, etc.
ii. Allow users to further categorize expenses into
subcategories like rent, utilities, car payments, dining
out, etc. for more granular organization.
iii. Provide the flexibility for users to add new categories
and subcategories to suit their specific needs.
3. Expense Tracking and Reports:
a. Data Storage and Security:
i. Develop a secure database to store user expense
information. Utilize encryption to protect sensitive
data like transaction amounts.
ii. Implement data integrity checks to ensure the accuracy
and consistency of stored information.
b. Reporting Algorithms:
i. Allow for customizable reporting options based on
date range, category, or other relevant criteria.
4. User Profile and Settings:
a. Profile Management:
i. Provide a dedicated user profile section where users
can update their personal information, change
passwords, and manage account settings.
b. User Preferences:
i. Implement a user settings interface where users can
customize various application settings like currency
format, date format, and language preferences.
5. Security and Data Privacy:
a. Data Security Measures:
i. Implement robust security measures to protect user
data, including encryption of sensitive information like
passwords and financial details.
ii. Secure user sessions and prevent unauthorized access
to the application and user accounts.
iii. Regularly review and update security protocols to stay
ahead of evolving threats.
6. Integration and Scalability:
a. Design the system in a modular and extensible manner to
allow for future integration with other financial applications
or services.
b. Ensure scalability to handle a growing number of users and
increasing volumes of data without compromising system
performance.
7. Testing and Quality Assurance:
a. Conduct rigorous testing at various stages of development to
ensure the system's functionality, usability, and reliability.
b. Perform bug fixing and code optimization to deliver a stable
and efficient application.
In summary, the scope of the CD DVD Management System
encompasses the development of a feature-rich, secure, and user-
friendly web application that enables individuals to track and manage
their daily expenses efficiently. By addressing the key aspects
mentioned above, the project aims to deliver a reliable and valuable tool
for users to gain control over their finances and improve their financial
well-being.
System Analysis

We analysed the whole market according to our project


requirements. In our project, we need an automation tool that will
enable us to automate the business process. The initial interface should
be such that it should make the whole environment user-friendly for the
users but not at the cost of efficiency. After a lot of analysis, we
concluded that ‘NetBeans’ will be the best suited for java condign.;
System analyses determine the needs and constraints by analysing the
requirement and interfacing with the acquirer. Solution analysis
determines the set of possible ways to satisfy the requirements and
constraints, analysis the possible solution, and selects the optimum one.
System analysis aims to position the Project Team and their
working environment to ensure the successful completion of System
Analysis. This is the point at which the Project Team prepares to
capture the system's detailed functional, technical, operational, and
transitional requirements.
IDENTIFICATION OF NEED: - Identification of need is the process
of understanding the customer’s needs and expectations from a
proposed system or application. Identification of needs is a description
of how a system should behave or a description of system properties or
attributes. It can alternatively be a statement of "what an application is
expected to do. It is done to understand the problem which the software
system is to solve.
The Process covers the complex task of eliciting and documenting
the requirements of all these users, modelling, and analysing these
requirements, and documenting them as a basis for system design.
PRELIMINARY INVESTIGATION: - The investigation phase is also
known as the fact-finding stage or the analysis of the current system.
This is a detailed study conducted to want to fully understand the
existing system and identify the basic information requirements
Various techniques may be used in fact-finding and all fact obtained
must be recorded. A thorough investigation was done in every affected
aspect When determining whether the purposed system is feasible
enough to be implemented. As it was essential for us to find out more
about the present system, we used the following methods to gather the
information:
1. OBSERVATION - Necessary to see the way the system works
first-hand.
2. DOCUMENT SAMPLING - These are all the documents that
are used in the system. They are necessary to check all the data
and fill it into the cloud with the URL.
3. QUESTIONNAIRES - These were conducted to get the views of
the other employees who are currently employed in the system.

Functional Requirements

Functional requirements are the specific features and functionalities


that the CD DVD Management System project must provide to its users.
These requirements are the foundation for the design, development, and
testing of the system.
1. Add New CD/DVD:
a. Users can add new CDs and DVDs to their collection.
b. The system should capture essential details about each
CD/DVD, including: Title, Artist/Band, Genre, Release Date,
User Notes.
c. The system should validate user input to ensure required
fields are filled and data is entered in the correct format
2. Edit Existing Entries:
a. Users can edit information about existing CDs and DVDs in
their collection.
b. The system should allow users to modify any of the details
captured during the initial addition (Title, Artist/Band, Genre,
Release Date, Notes).
c. Implement functionalities to save changes made to existing
entries within the system's database.
3. Delete CD/DVD:
a. Users can delete unwanted CDs and DVDs from their
collection.
b. The system should prompt users for confirmation before
permanently deleting an entry. This helps prevent accidental
deletion of valuable data.
4. Search by Title:
a. Users can search for specific CDs and DVDs by title using
keywords or full titles.
b. The search function should be case-insensitive to
accommodate variations in capitalization.
c. The system should display a list of matching entries based on
the search criteria.
5. Search by Artist/Band:
a. Users can search for CDs and DVDs based on the artist or band
name (if applicable) using keywords or full names.
b. Similar to the title search, the search should be case-
insensitive and display a list of matching entries based on the
artist/band criteria.
6. Collection View:
a. Users can view their entire CD/DVD collection in a clear and
organized manner.
b. The system should display essential information about each
CD/DVD in a table or list format, including: Title, Artist/Band,
Genre, Release Date.
c. The layout should be visually appealing and user-friendly,
allowing for easy navigation and identification of desired
entries.
These requirements serve as a foundation for the development of
the system and provide a roadmap for the design, development, and
testing of the system.

Non-Functional Requirements
Non-functional requirements are the attributes or qualities that
the CD DVD Management System project must have to ensure its
performance, usability, and security. The non-functional requirements
of the CD DVD Management System project can be categorized into six
main areas: performance, reliability, usability, security, compatibility,
and maintainability.

1. Performance
a. Response Time: The system should respond to user actions
within 3 seconds.
b. Throughput: The system should be able to handle a minimum
of 1000 concurrent users.
c. Capacity: The system should be able to handle at least 5000
orders per day.
d. Availability: The system should be available 24/7 with
minimal downtime.
2. Reliability
a. Error Handling: The system should handle errors gracefully
and provide informative error messages.
b. Fault Tolerance: The system should continue to operate in
the event of hardware or software failures.
c. Backup and Recovery: The system should have backup and
recovery procedures in place to prevent data loss in case of
system failure.

3. Usability

a. Navigation: The system should be easy to navigate and user-


friendly.
b. Accessibility: The system should be accessible to users with
disabilities.

c. Multilingual: The system should support multiple languages


to cater to a diverse user base.

d. Intuitive Interface: The system should have an intuitive


interface that guides users through the ordering process.

4. Security

a. Authentication and Authorization: The system should


provide secure login and user authentication procedures to
prevent unauthorized access.

b. Data Encryption: Sensitive data such as user information,


passwords, and payment details should be encrypted.

c. Secure Communications: The system should use secure


communication protocols such as SSL to protect data in
transit.

5. Compatibility

a. Cross-platform compatibility: The system should be


compatible with different devices, operating systems, and
web browsers.

b. Third-party Integration: The system should be able to


integrate with third-party services such as payment
gateways, SMS gateways, and social media platforms.

6. Maintainability

a. Code quality: The system should follow best practices for


coding to ensure maintainability.

b. Scalability: The system should be designed to be scalable to


accommodate future growth and changes.
c. Documentation: The system should have comprehensive
documentation for the design, development, and testing
phases.

In conclusion, the non-functional requirements of the CD DVD


Management System project are critical for ensuring the performance,
usability, security, compatibility, and maintainability of the system.
These requirements serve as a guide for developers to ensure that the
system is designed and developed to meet the highest standards of
performance and quality.

External interface requirements


User Interface: - The goal of user interface design is to produce a user
interface that makes it easy, efficient, and enjoyable (user-friendly) to
operate a machine in the way which produces the desired result (i.e.,
maximum usability).

Hardware Interface: - The application will run on a Windows


operating system with the following specifications: -

PROCESSOR: - Intel(R) core (TM) 2 Duo CPU or above.


RAM: - 4GB or above.
HARDDISK: - 500GB
Software Interface: - The application will run on a windows
operating system and windows desktop with version Intel(R) core
(TM)2 Duo CPU or above.

Tools and Languages Used


Language Used: - HTML, CSS, JAVASCRIPT, PHP, MySQL
Tools Used: - VSCode, MySQL
SOFTWARE REQUIREMENTS AND SPECIFICATIONS

TECHNOLOGY: PHP

PHP is a general-purpose scripting language geared toward web


development. It was originally created by Danish-Canadian
programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP
reference implementation is now produced by The PHP Group. PHP
was originally an abbreviation of Personal Home Page, but it now
stands for the recursive initialism PHP: Hypertext Preprocessor.
PHP code is usually processed on a web server by a PHP
interpreter implemented as a module, a daemon or as a Common
Gateway Interface (CGI) executable. On a web server, the result of the
interpreted and executed PHP code – which may be any type of data,
such as generated HTML or binary image data – would form the whole
or part of an HTTP response. Various web template systems, web
content management systems, and web frameworks exist which can
be employed to orchestrate or facilitate the generation of that
response. Additionally, PHP can be used for many programming tasks
outside the web context, such as standalone graphical applications
and robotic drone control. PHP code can also be directly executed
from the command line.
The standard PHP interpreter, powered by the Zend Engine, is
free software released under the PHP License. PHP has been widely
ported and can be deployed on most web servers on a variety of
operating systems and platforms.
The PHP language evolved without a written formal specification
or standard until 2014, with the original implementation acting as the
de facto standard that other implementations aimed to follow. Since
2014, work has gone on to create a formal PHP specification.

TOOL: VS Code

Visual Studio Code, also commonly referred to as VS Code, is a


source-code editor made by Microsoft with the Electron Framework, for
Windows, Linux and macOS. Features include support for debugging,
syntax highlighting, intelligent code completion, snippets, code
refactoring, and embedded Git. Users can change the theme, keyboard
shortcuts, and preferences, and install extensions that add functionality.

In the Stack Overflow 2022 Developer Survey, Visual Studio Code


was ranked the most popular developer environment tool among 71,010
respondents, with 74.48% reporting that they use it.

DATABASE: MySQL

MySQL is a fast, easy-to-use RDBMS being used for many small and
big businesses. MySQL is developed, marketed, and supported by MySQL
AB, which is a Swedish company. MySQL is becoming so popular because
of many good reasons −
 MySQL is released under an open-source license. So, you have
nothing to pay to use it.
 MySQL is a very powerful program in its own right. It handles a
large subset of the functionality of the most expensive and
powerful database packages.
 MySQL uses a standard form of the well-known SQL data
language.
 MySQL works on many operating systems and with many
languages including PHP, PERL, C, C++, JAVA, etc.
 MySQL works very quickly and works well even with large
data sets.
 MySQL is very friendly to PHP, the most appreciated language
for web development.
 MySQL supports large databases, up to 50 million rows or
more in a table. The default file size limit for a table is 4GB, but
you can increase this (if your operating system can handle it)
to a theoretical limit of 8 million terabytes (TB).
 MySQL is customizable. The open-source GPL license allows
programmers to modify the MySQL software to fit their
specific environments.

MODULES / PROJECT FLOW

The CD DVD Management System project consists of several


interconnected modules that work together to provide a comprehensive
and efficient expense management solution. Each module serves a
specific purpose and contributes to the overall functionality of the
system. Let's explore the key modules in detail:
1. User Registration and Authentication Module: This module
handles user registration and authentication processes. It allows
new users to create accounts by providing necessary information
such as username, email, and password. The module also
incorporates security measures like password hashing to protect
user credentials. Upon successful registration, users can
authenticate themselves to access the system using their login
credentials.

2. Dashboard Module: The dashboard module serves as the main


interface for users after logging in. It provides an overview of the
user's financial activities and displays relevant information such
as account balance, expense summary, and recent transactions.
The dashboard acts as a central hub, offering quick access to other
modules and functionalities.
3. Expense Recording Module: This module enables users to
record their daily expenses. It provides a user-friendly form where
users can enter details such as expense amount, date, category,
and additional notes. The module may also include features like
auto-suggestion of common expense categories to enhance
usability. The recorded expenses are stored in a database for
further processing and analysis.
4. Expense Categorization Module: The expense categorization
module allows users to classify their expenses into different
categories and subcategories. It provides a predefined set of
categories such as food, transportation, utilities, entertainment,
etc., and allows users to assign expenses to the appropriate
category. Categorizing expenses helps users gain insights into
their spending patterns and identify areas where they can make
adjustments.
5. Expense Reporting and Analysis Module: This module
generates comprehensive reports and analysis based on the
recorded expenses. It offers various reporting options, such as
monthly, yearly, or custom date range reports, presenting the total
expenses, category-wise distribution, and trends over time. The
module may also include visualizations like charts and graphs for
better data representation and understanding.
6. Budgeting Module: The budgeting module assists users in setting
financial goals and creating budgets. Users can define spending
limits for different expense categories and track their progress
against the set budgets. The module provides notifications or
alerts when the user exceeds or approaches the budget limits,
helping them stay on track and manage their expenses more
effectively.
7. Reminder and Notifications Module: This module enables users
to set reminders for bill payments or any other financial
commitments. It sends notifications or emails to users based on
their preferred settings, ensuring they stay informed about
upcoming due dates or important financial events. Reminders can
be customized and scheduled according to the user's preferences.
8. Settings and Personalization Module: The settings module
allows users to personalize their experience within the expense
management system. Users can modify account details, update
preferences, configure notification settings, and customize the
system according to their specific needs. This module enhances
user satisfaction by providing a tailored and user-centric
environment.

FEASIBILITY STUDY

All projects are feasible when given unlimited resources and


infinite time. It is both necessary and prudent to evaluate the feasibility
of a project at the earliest possible time. The efforts and resources spent
in developing the system will be a waste if the end solution does not
offer a timely and sates to its users. A feasibility study is a test of the
system proposed regarding workability, impact on the organization’s
ability to meet user needs, and effective use of resources. Thus, when a
new application is proposed, it normally goes through a feasibility study
before it is approved for development. Feasibility and risk analysis are
related in many ways. If project risk is great, the possibility of
producing quality software is reduced.
A feasibility study is conducted to select the best system that
meets performance requirements. This entails an identification
description, an evaluation of the candidate system, and the selection of
the best factory solution system for the job. The system-required
performance is defined by a statement of constraints, the identification
of specific system objectives, and a description of outputs. The key
considerations in feasibility analysis are:
1. Economic Feasibility: - Economic analysis is the most
frequently used method for evaluating the effectiveness of a
candidate system. More to determine the benefits and the
saving that are expressed from a candidate system and
compare those costs if the benefits outweigh the costs.
Otherwise, further justification or alterations in the
proposed system will have to be made if it is to have a
chance of being approved. This is an ongoing effort that
improves accuracy at each phase of the system life cycle.
2. Technical Feasibility: - Technical feasibility centres on the
existing computer system hardware etc. and to what extent
it can support the proposed addition. For example, if the
current computer is operating at 80% capacity - an arbitrary
ceiling – then running another application could overload
the system or require additional hardware. This involves
financial consideration to accommodate technical
enhancements. If the budget is a serious constraint, then the
project is judged not feasible.
3. Operational Feasibility: - It is common knowledge that
computer installations have something to do with turnover,
transfers, retraining, and changes in employee job status.
Therefore, it is understandable that the introduction of a
candidate system requires special efforts to educate, sell,
and train the staff on new ways of conducting business.
4. Legal Feasibility: - This assessment involves undertaking a
study to analyse and determine whether—and how well—
the organization’s needs can be met by completing the
project. Operational feasibility studies also examine how a
project plan satisfies the requirements identified in the
requirements analysis phase of system development.
DATA FLOW DIAGRAM

The DFD is also known as the Bubble Chart. It is a simple


graphical formalism that can be used to represent a system in terms of
the input data to the system. Various processing is carried out on
these data, and the URL is generated by the system. The main reason
why the DFD technique is so popular is probably that DFD is a very
simple formalism it is simple to understand and use. A DFD uses a
very limited number of primitive symbols to represent the functions
performed by the system and the data flow among these functions.
Starting with the high-level functions that a system performs, a DFD
model hierarchically represents various sub-functions. The five
different types of primitive symbols used for constructing DFDs are
SYMBOLS USED
PROCESS

A function is represented using a circle. This symbol is called a process


or a bubble.
Bubbles are annotated with the names of the corresponding functions.

EXTERNAL ENTITY
An external entity such as a librarian, a library member, etc. is
represented by a rectangle. The external entities are essentially those
physical entities external to the software that interact with the system.
In addition to the human users, the external entity symbols can be
used to represent external hardware and software such as application
software.

DATA FLOW

A directed arc or arrow is used as a data flow symbol. A data flow


symbol represents the data flow occurring between two processes, or
between two external entities and in the direction of the data flow
arrow. Data flow symbols are usually annotated with the
corresponding data names.

DATASTORE

A data store represents a logical file. It is represented using two


parallel lines. A logical file can represent either a data store symbol,
which can represent either a data structure or a physical file on a disk.
Each data store is connected to a process using a data flow symbol.
The direction of the data flow arrow shows whether data is being read
from or written into a data store. An arrow flowing in or out of a data
store implicitly represents the entire data of the data store and hence
connecting to a data store need not be annotated with the name of the
corresponding data items.
OUTPUT SYMBOL

The output symbol is used when a hard copy is produced, and the user of
the copies cannot be specified or there are several users of the output.

DFDs
1. ZERO LEVEL DFD

CD DVD
User Cloud Side
Management System

Figure 1: Zero level dfd

2. FIRST LEVEL DFD


Manage all
activities/Get
User CD DVD Management records of
System successful or
unsuccessful
transactions

Figure 3.2: First level dfd

3. Flow Chart
The Flowchart is the most widely used graphical representation of an
algorithm and procedural design workflows. It uses various symbols
to show the operations and decisions to be followed in a program. It
flows in sequential order.
Flow Chart Symbols

1. Terminal Symbol
In the flowchart, it is represented with the help of a circle for denoting
the start and stop symbols. The symbol given below is used to
represent the terminal symbol.

2. Input/output Symbol:
The input symbol is used to represent the input data, and the output
symbol is used to display the output operation. The symbol given
below is used for representing the Input/output symbol.

3. Processing Symbol:
It is represented in a flowchart with the help of a rectangle box used to
represent the arithmetic and data movement instructions. The symbol
given below is used to represent the processing symbol.

4. Decision Symbol:
The diamond symbol is used for represents decision-making
statements. The symbol given below is used to represent the decision
symbol.
5. Flowlines:
It represents the exact sequence in which instructions are executed.
Arrows are used to represent the flow lines in a flowchart. The symbol
given below is used for representing the flow lines:

6. Document Symbol:
This symbol is used in a flowchart to indicate a document or report.
The symbol given below is used to represent the document symbol.

7. Internal storage symbol:


The symbol given below is used to represent the internal storage
symbol.
UNIFIED MODELLING LANGUAGE (UML)
The unified modeling language allows the software engineer to
express an analysis model using the modeling notation that is
governed by a set of syntactic-semantic rules. A UML system is
represented using five different views that describe the system
distinctly. Each view is defined by a set of diagrams, which is as
follows:

• User Model View


This view represents the system from the user’s perspective.
The analysis representation describes a usage scenario from the
end-user’s perspective.
• Structural Model View
In this model, the data and functionality are arrived from inside
the system. This model view models the static structures.
• Implementation Model View
In this, the structural and behavioural parts of the system are
represented as they are to be built.
• Environmental Model View
In this, the structural and behavioural aspects of the
environment in which the system is to be implemented are
repeated.

USE CASE DIAGRAM

Use case diagrams are usually referred to as diagrams used to


describe a set of actions (use cases) that some system or systems
(subject) should or can perform in collaboration with one or more
external users of the system (actors). Each use case should provide
some observable and valuable result to the actors or other
stakeholders of the system.
A use case diagram at its simplest is a representation of the
user’s interaction with the system that shows the relationship
between the user and the different use cases in which the user is
involved. A use case diagram can identify the different types of users
of a system and the different use cases and will often be accompanied
by other types of diagrams as well. Using case diagrams can be a good
communication tool for stakeholders.

ACTIVITY DIAGRAM

SEQUENCE DIAGRAM
CLASS DIAGRAM

ENTITY RELATIONSHIP DIAGRAM

The ERD gives a brief description of how the tables would be linked
together in the system, to make data retrieval and updates easier for the
user. An Entity Relationship Diagram (ER Diagram) pictorially explains
the relationship between entities to be stored in a database.
Fundamentally, the ER Diagram is a structural design of the database. It
acts as a framework created with specialized symbols for the purpose of
defining the relationship between the database entities. ER diagram is
created based on three principal components: entities, attributes, and
relationships.

Login:

ER - Diagram:
The Waterfall Model
The waterfall model is a sequential design process, often used in
software development processes. It takes the fundamental process
activities of specification, development, validation, and evolution and
represents them as separate process phases such as requirements
specification, software design, implementation, testing
Database Design and Analysis

I have constructed a database that consists of six data tables. There


will be one main table (parent table) and five child tables, related to each
other. Patently, for this purpose the necessary primary and foreign keys
should be defined in the responding tables. The so-defined structure
above is made up in conformity with the user’s needs and demands. Each
employee of the staff is intended to have several records, responding to
his Working History, Contact Person Information, Salary Information,
Time Information, and Holiday Information, and only one record
containing his basic information within the company – his details as the
date of birth, gender, marital status, address, and phone details, and his
current working record. An employee is supposed to have not only one
record of his Working history, or his Contact Person Information For
instance, if we look at the Time Information data table – an employee may
have several records in case he has some experience within the current
company. It is absolutely the same with the Salary Information, Contact
Person Information, and Holiday Information data tables.

In the relationships between the data tables, we can distinguish six


tables that the database consists of. All the relationships are of type: “one-
to-many”. (For more details about the data tables, see. The primary key
fields could be set to Auto-number data type as Access creates these
values in an ascending order to ensure that they are unique within a table.
Some of the fields should be “adjusted” to accept null values. It is quite
important to be done as it is slightly related to the input fields of the
application program. I decided to perform it in the following way: I those
fields that are compulsory to be filled by the user I have set not to accept
any null values of data and on the other hand, those, that can be left blank,
are set to accept null values. It is easy to be performed by changing the
Allow Zero Length setting.

It is just needed to go to the desired field that must be set, and


switch between the two options, offered in the “Allow Zero Length” field.
In the example, shown above, the personal_ID_Number field is set not to
allow any null values thus its field’s length cannot be zero as its value is
quite essential for identifying an employee as an individual and
distinctive person. That has been considered and done for a kind of
convenience as the user would wish not to enter all the data at the
moment, and come back later.

Data Dictionary

Admin

Author
Book

Book_Issue

Category

Publisher

Student
OUTPUTS

Login Page

Index Page
Author Page

Update Publisher Page


Movie Page

DVD Issue Page


Settings Page

TESTING

INTRODUCTION
Testing is the process of executing a program with the intent of
finding errors. It is a major quality measure employed during software
development. During testing, the program is executed with a set of
conditions known as test cases, and the output is evaluated to
determine whether the program is performing as expectation the
programmer. Testing is the process of executing a program with the
intent of finding errors.
TESTING OBJECTIVES

• Testing is the process of executing a program with the intent of


finding an error.
• A successful test uncovers a yet undiscovered error.
• A good test case has a high probability of finding errors if it
exists.
• The tests are inadequate to detect possibly present errors.
• The software more or less confirms different perspectives on the
quality and reliability standards.

LEVELS OF TESTING
To uncover the errors, present in different phases we have the
concept of levels of things. The basic levels of testing are

TESTING TECHNIQUE USED (TYPES OF TESTING)


1. UNIT TESTING
• Unit Testing is done on individual modules as they are
completed and become executable.
• It is confined only to the designer’s requirements.
• Each module can be tested using the following two strategies.

2. BLACK BOX TESTING


• In this strategy some test cases are generated as the input
conditions that fully execute all the functional requirements for
the program. This testing has been used to find errors in the
following categories:
• Incorrect or missing function

• Interface errors
• Errors in a data structure or external database access
• Performance errors
• Initialization and termination errors.
• In this testing only output is checked for correctness. The logical
flow of data is not checked.
3. WHITE BOX TESTING
• In this the test cases are generated on the logic of each module
by drawing flow graphs of that module and logical decisions are
tested on all the cases.
• It has been used to generate the test cases in the following cases:

• Guarantee that all independent paths have been executed.


• Execute all logical decisions on their true and false sides.
• Execute all loops at their boundaries and within their
operational bounds.
• Execute internal data structure to ensure their validity.
4. INTEGRATION TESTING
Integration testing ensures that the software and the subsystems
work together as a whole. It tests the interface of the entire module to
make sure that the modules behave properly when integrated.
5. SYSTEM TESTING
System testing involves in-house testing of the entire system before
delivery to the user.
It aims to satisfy the user that the system meets all requirements of
the client’s specifications.

6. USER ACCEPTANCE TESTING


User acceptance of a system is the key factor to the success of any
system. The system under study is tested for user acceptance by
constantly keeping in touch with the prospective system users at the
time of developing and making changes whenever required.
It is pre-delivery testing in which the entire system is tested at the
client’s site on real-world data to find errors.

7. VALIDATION TESTING
The system has been tested and implemented successfully and thus
ensured that all the requirements as listed in the software required
specification are completely fulfilled. In case of erroneous input,
corresponding error messages are displayed.

8. OUTPUT TESTING
After performing validation testing, the next step is output testing of the
proposed system since no system could be useful if it does not produce
the required specified format. Asking the users about the format required
by the tests and the output generated by the system under consideration.
Here the output format is considered in two ways, one is on the screen
and the other is in printed format. The output format on the screen is
found to be correct as the format was designed in the system design
phase according to the user’s needs. For the hard copy also output comes
as the specified requirements by the users. Hence output testing does not
result in any corrections in the system.
TEST CASE

Sr. No. Test Case Expected Result Log File’s Status


Message
Text
1 Dashbord The run button Pass
Screen open should stay
disabled so that
Project should
not proceed
2 The login Id The standard Thanks for Pass
and Confirmation choosing the CD
Password message, then the DVD
did not fetch Thanks Message. management,
Project. Have a
Good Day.
3 Product Standard Please check Pass
details are Message, your your details.
Empty data is empty. Fill in the
Product details
carefully.
4 The Home Error message Your System Pass
screen did connection is
not open slow or the
database
connection may
be off, Thanks.
5 Movie Error message This is not Pass
Category found, or the
details did data is
not find incorrect.
Please check.
Thanks
6 Movie id is Error message The Movie id is Pass
wrong incorrect.
Please check.
Thanks
7 Wrong Error message In the Input file, Pass
Email id Email-id is
in input file incorrect.
Please check.
Thanks

Conclusion & Future Scope


Conclusion:

This project outlines the development of a user-friendly CD/DVD


management system. The focus has been on creating a functional and
efficient application to help users organize and manage their physical
media collections. The core functionalities include:
 Adding new CDs and DVDs to the system with detailed information
capture.
 Editing existing entries to maintain data accuracy.
 Deleting unwanted CDs and DVDs from the collection.
 Searching for specific titles based on various criteria like title, artist,
genre, or user notes.
 Browsing and gaining a comprehensive overview of the entire
collection.

By implementing these features, the project delivers a valuable tool


for CD and DVD enthusiasts. It streamlines the process of managing
collections, making it easier to find specific titles and maintain organized
data.

Future Scope:
While the CD DVD Management System project has successfully
addressed the basic requirements of personal expense management,
there are several potential avenues for future enhancement and
expansion:
1. Media Format Support: Broaden the scope to encompass other
physical media formats like Blu-rays, vinyl records, or video game
discs. This would require adapting data capture fields and
potentially implementing cover art image upload functionalities.
2. Advanced Search and Filtering: Implement functionalities for
searching based on additional criteria like release date range,
keywords within user notes, or loan status (if loan tracking is
incorporated). This allows for more granular searches and
personalized collection exploration.
3. User Accounts and Security: Develop a user account system with
features like login, logout, password management, and profile
customization. Implement robust security measures to protect
user data, including encryption and adherence to data privacy
regulations.
4. Loan Tracking: Introduce functionalities for users to track loaned
CDs and DVDs. This could involve recording loan details, due
dates, and borrower information.
5. Social Features: Consider incorporating social features like
sharing recommendations or creating user profiles with public or
private collection views (depending on user preferences).
6. Offline Access: Explore the possibility of developing a
downloadable application to provide offline access to the
collection management system. This would be beneficial for users
who want to manage their collections without an internet
connection.

CODE
Index Page

<!DOCTYPE html>

<html lang="en" dir="ltr">

<head>

<meta charset="utf-8">

<title>LOGIN | CD DVD Library System</title>

<!-- Bootstrap -->

<link rel="stylesheet" href="css/bootstrap.css">

<!-- Custom stlylesheet -->

<link rel="stylesheet" href="css/style.css">

</head>

<body>

<div id="wrapper-admin">

<div class="container">

<div class="row">

<div class="offset-md-4 col-md-4">

<div class="logo border border-danger">


<img src="images/logo.png" alt="">

</div>

<form class="yourform" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">

<h3 class="heading">Admin Login</h3>

<div class="form-group">

<label>Username</label>

<input type="text" name="username" class="form-control" value="" required>

</div>

<div class="form-group">

<label>Password</label>

<input type="password" name="password" class="form-control" value="" required>

</div>

<input type="submit" name="login" class="btn btn-danger" value="login" />

</form>

<?php

if(isset($_POST['login'])){

include "config.php"; // db configuration

$username = mysqli_real_escape_string($conn, $_POST['username']);

$password = mysqli_real_escape_string($conn, md5($_POST['password']));

$sql = "SELECT * FROM admin WHERE username = '{$username}' AND password =


'{$password}'";

$result = mysqli_query($conn, $sql);

if(mysqli_num_rows($result) > 0){

session_start(); //session start

while($row = mysqli_fetch_assoc($result)){

$_SESSION["username"] = $row['username'];

$_SESSION["user_id"] = $row['id'];

header("$base_url/dashboard.php"); // redirect
}else{

echo "<div class='alert alert-danger'>Username and Password are not matched.</div>";

} ?>

</div>

</div>

</div>

</div>

</body>

</html>

Header Page

<?php

session_start();

include 'config.php'; //db configuration

if(!isset($_SESSION['username'])){ //check session is exists

header("$base_url");

} ?>

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>Library System</title>

<link rel="stylesheet" href="css/bootstrap.css"> <!-- Bootstrap -->

<link rel="stylesheet" href="css/style.css"> <!-- Custom stlylesheet -->

</head>

<body>

<div id="header"> <!-- HEADER -->


<div class="container">

<div class="row">

<div class="offset-md-4 col-md-4">

<div class="logo">

<a href="#"><img src="images/logo.PNG"></a>

</div>

</div>

<div class="offset-md-2 col-md-2">

<div class="dropdown">

<button class="btn btn-secondary dropdown-toggle" type="button"


id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">

Hi Admin

</button>

<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">

<a class="dropdown-item" href="change-password.php">Change Password</a>

<a class="dropdown-item" href="logout.php">Log Out</a>

</div>

</div>

</div>

</div>

</div>

</div> <!-- /HEADER -->

<div id="menubar"> <!-- Menu Bar -->

<div class="container">

<div class="row">

<div class="col-md-12">

<ul class="menu">

<li><a href="dashboard.php">Dashboard</a></li>

<li><a href="author.php">Authors</a></li>

<li><a href="publisher.php">Publishers</a></li>

<li><a href="category.php">Categories</a></li>
<li><a href="book.php">Movies</a></li>

<li><a href="student.php">Reg Customer</a></li>

<li><a href="book-issue.php">DVD Issue</a></li>

<li><a href="reports.php">Reports</a></li>

<li><a href="setting.php">Settings</a></li>

</ul>

</div>

</div>

</div>

</div> <!-- /Menu Bar -->

Add Publisher

<?php include "header.php" ?> <!-- header -->

<div id="admin-content">

<div class="container">

<div class="row">

<div class="col-md-3">

<h2 class="admin-heading">Add Publisher</h2>

</div>

<div class="offset-md-7 col-md-2">

<a class="add-new" href="publisher.php">All Publishers</a>

</div>

</div>

<div class="row">

<div class="offset-md-3 col-md-6">

<form class="yourform" action="<?php $_SERVER['PHP_SELF']; ?>" method="post"


autocomplete="off">

<div class="form-group">

<label>Publisher Name</label>

<input type="text" class="form-control" placeholder="publisher Name"


name="publishername" value="" >
</div>

<input type="submit" name="save" class="btn btn-danger" value="save" >

</form>

<?php // if form submit

if(isset($_POST['save'])){

if(!isset($_POST['publishername']) || empty($_POST['publishername'])){

echo "<div class='alert alert-danger'>Publisher name required.</div>";

}else{

// validate input

$publisher_name = mysqli_real_escape_string($conn, $_POST['publishername']);

//check publisher name already exists in table

$sql = "SELECT publisher_name FROM publisher WHERE publisher_name =


'{$publisher_name}'";

$result = mysqli_query($conn, $sql) or die("SQL query failed");

if(mysqli_num_rows($result) > 0){ // check result rows

echo "<div class='alert alert-danger'>Publisher name already exist.</div>";

}else{

//insert query

$sql1 = "INSERT INTO publisher(publisher_name) VALUES ('{$publisher_name}')";

if(mysqli_query($conn, $sql1)){

header("$base_url/publisher.php"); // redirect

} ?>

</div>

</div>

</div>

</div>

<?php include "footer.php" ?> <!-- footer -->


Add Category

<?php include "header.php" ?> <!-- header -->

<div id="admin-content">

<div class="container">

<div class="row">

<div class="col-md-3">

<h2 class="admin-heading">Add Category</h2>

</div>

<div class="offset-md-7 col-md-2">

<a class="add-new" href="category.php">All Categories</a>

</div>

</div>

<div class="row">

<div class="offset-md-3 col-md-6">

<form class="yourform" action="<?php $_SERVER['PHP_SELF']; ?>" method="post"


autocomplete="off">

<div class="form-group">

<label>Category Name</label>

<input type="text" class="form-control" placeholder="Category Name"


name="categoryname" value="" required>

</div>

<input type="submit" name="save" class="btn btn-danger" value="save" required>

</form>

<?php // if form submit

if(isset($_POST['save'])){

if(!isset($_POST['categoryname']) || empty($_POST['categoryname'])){

echo "<div class='alert alert-danger'>Category name required.</div>";

}else{

//validate input

$category_name = mysqli_real_escape_string($conn, $_POST['categoryname']);


// select query for check category name already exists

$sql = "SELECT category_name FROM category WHERE category_name = '{$category_name}'";

$result = mysqli_query($conn, $sql) or die("SQL query failed");

if(mysqli_num_rows($result) > 0){ // check result rows

echo "<div class='alert alert-danger'>Category name already exist.</div>";

}else{

//insert query

$sql1 = "INSERT INTO category(category_name) VALUES ('{$category_name}')";

if(mysqli_query($conn, $sql1)){

header("$base_url/category.php"); //redirect

} ?>

</div>

</div>

</div>

</div>

<?php include "footer.php" ?> <!-- footer -->

Movie Authors

<?php include "header.php" ?> <!--- header -->

<div id="admin-content">

<div class="container">

<div class="row">

<div class="col-md-3">

<h2 class="admin-heading">All Authors</h2>

</div>

<div class="offset-md-7 col-md-2">


<a class="add-new" href="add-author.php">Add Author</a>

</div>

</div>

<div class="row">

<div class="col-md-12">

<div class="message"></div>

<?php

if(isset($_GET['page'])){

$page = $_GET['page'];

}else{

$page = 1;

$offset = ($page - 1) * $limit;

$sql = "SELECT * FROM author ORDER BY author_id DESC LIMIT {$offset}, {$limit}";

$result = mysqli_query($conn, $sql); ?>

<table class="content-table">

<thead>

<th>S.No</th>

<th>Author Name</th>

<th>Edit</th>

<th>Delete</th>

</thead>

<tbody>

<?php if(mysqli_num_rows($result) > 0){

$serial = $offset + 1;

while($row= mysqli_fetch_assoc($result)){ ?>

<tr>

<td><?php echo $serial; ?></td>

<td><?php echo $row['author_name'] ?></td>

<td class="edit">
<a href="update-author.php?aid=<?php echo $row['author_id']; ?>" class="btn btn-
success">Edit</a>

</td>

<td class="delete">

<a href="#" class="btn btn-danger delete-author" data-aid = <?php echo $row['author_id'] ?


>>Delete</a>

</td>

</tr>

<?php $serial++;

}else{ ?>

<tr>

<td colspan="4">No Authors Found</td>

</tr>

<?php } ?>

</tbody>

</table>

<?php // pagination

$sql1 = "SELECT * FROM author";

$result = mysqli_query($conn, $sql1);

if(mysqli_num_rows($result) > 0){

$total_records = mysqli_num_rows($result);

$total_page = ceil($total_records / $limit);

// show pagination

if($total_page > 1){

$pagination = "<ul class='pagination admin-pagination'>";

if($page > 1){ // show previous button

$pagination .= '<li class=""><a href="author.php?page='.($page - 1).'">Prev</a></li>';

for($i = 1; $i <= $total_page; $i++){

if($i == $page){
$active = "active";

}else{

$active = "";

$pagination .= '<li class="'.$active.'"><a href="author.php?page='.$i.'">'.$i.'</a></li>';

if($total_page > $page){ //show next button

$pagination .= '<li class=""><a href="author.php?page='.($page + 1).'">Next</a></li>';

$pagination .= "</ul>";

echo $pagination;

} ?>

</div>

</div>

</div>

</div>

<!-- jquery -->

<script src="js/jquery-3.6.0.min.js" charset="utf-8"></script>

<script type="text/javascript">

//delete author script

$(".delete-author").on("click", function(){

var author_id = $(this).data("aid");

$.ajax({

url : "delete-author.php",

type : "POST",

data : {author_id: author_id},

success: function(data){

$(".message").html(data);

setTimeout(function(){ window.location.reload(); }, 2000);

}
});

});

</script>

<?php include "footer.php" ?> <!--- footer -->

CD-DVD Issue

<?php include "header.php" ?> <!-- header -->

<div id="admin-content">

<div class="container">

<div class="row">

<div class="col-md-3">

<h2 class="admin-heading">All DVD Issue</h2>

</div>

<div class="offset-md-6 col-md-3">

<a class="add-new" href="add-book-issue.php">Add DVD Issue</a>

</div>

</div>

<div class="row">

<div class="col-md-12">

<?php

if(isset($_GET['page'])){

$page = $_GET['page'];

}else{

$page = 1;

$offset = ($page - 1) * $limit;

//select query

$sql = "SELECT
book_issue.issue_id,book_issue.issue_status,book_issue.issue_name,book_issue.issue_book,
book_issue.issue_date,book_issue.return_date,student.student_id,student.student_phone,student.stude
nt_email,student.student_name,book.book_name FROM book_issue

LEFT JOIN student ON book_issue.issue_name = student.student_id

LEFT JOIN book ON book_issue.issue_book = book.book_id

ORDER BY book_issue.issue_id DESC LIMIT {$offset}, {$limit}";

$result = mysqli_query($conn, $sql) or die("SQL query failed."); ?>

<table class="content-table">

<thead>

<th>S.No</th>

<th>Customer Name</th>

<th>Movie Name</th>

<th>Phone</th>

<th>Email</th>

<th>Issue Date</th>

<th>Return Date</th>

<th>Status</th>

<th>Edit</th>

<th>Delete</th>

</thead>

<tbody>

<?php if(mysqli_num_rows($result) > 0){

$serial = $offset + 1;

while($row = mysqli_fetch_assoc($result)) {

if((date('Y-m-d') > $row['return_date']) && $row['issue_status'] == "N"){

$over = 'style="background:rgba(255,0,0,0.2)"';

}else{ $over = ''; } ?>

<tr <?php echo $over; ?>>

<td><?php echo $serial; ?></td>

<td><?php echo $row['student_name']; ?></td>

<td><?php echo $row['book_name']; ?></td>

<td><?php echo $row['student_phone']; ?></td>


<td><?php echo $row['student_email']; ?></td>

<td><?php echo date('d M, Y',strtotime($row['issue_date'])); ?></td>

<td><?php echo date('d M, Y',strtotime($row['return_date'])); ?></td>

<td>

<?php if($row['issue_status'] == 'Y'){

echo "<span class='badge badge-success'>Returned</span>";

}else{

echo "<span class='badge badge-danger'>Issued</span>";

} ?>

</td>

<td class="edit">

<a href="update-issue-book.php?iid=<?php echo $row['issue_id']; ?>" class="btn btn-


success">Edit</a>

</td>

<td class="delete">

<a href="delete-issue-book.php?iid=<?php echo $row['issue_id']; ?>" class="btn btn-


danger">Delete</a>

</td>

</tr>

<?php

$serial++;

}else{ ?>

<tr>

<td colspan="10">No DVD Issued</td>

</tr>

<?php } ?>

</tbody>

</table>

<?php // pagination

$sql1 = "SELECT * FROM book_issue";

$result1 = mysqli_query($conn, $sql1);


if(mysqli_num_rows($result1) > 0){

$total_records = mysqli_num_rows($result1);

$total_page = ceil($total_records / $limit);

if($total_page > 1){

$pagination = "<ul class='pagination admin-pagination'>";

if($page > 1){ // show previous button

$pagination .= '<li class=""><a href="book-issue.php?page='.($page - 1).'">Prev</a></li>';

for($i = 1; $i <= $total_page; $i++){

if($i == $page){

$active = "active";

}else{

$active = "";

$pagination .= '<li class="'.$active.'"><a href="book-issue.php?page='.$i.'">'.$i.'</a></li>';

if($total_page > $page){ //show next button

$pagination .= '<li class=""><a href="book-issue.php?page='.($page + 1).'">Next</a></li>';

$pagination .= "</ul>";

echo $pagination;

} ?>

</div>

</div>

</div>

</div>

<?php include "footer.php" ?> <!-- footer -->

Monthly Issue
<?php include "header.php" ?> <!-- header -->

<div id="admin-content">

<div class="container">

<div class="row">

<div class="offset-md-3 col-md-6">

<h2 class="admin-heading text-center">Monthwise DVD Issue Report</h2>

</div>

</div>

<div class="row">

<div class="offset-md-4 col-md-4">

<form class="yourform mb-5" action="" method="post">

<div class="form-group">

<input type="month" name="month" class="form-control" value="<?php echo date('Y-m') ?


>">

</div>

<input type="submit" class="btn btn-danger" name="search_month" value="Search">

</form>

</div>

</div>

<?php

if(isset($_POST['search_month']) && !empty($_POST['month'])){

//validate input

$month = mysqli_real_escape_string($conn, $_POST['month']);

//select query

$sql = "SELECT
book_issue.issue_id,book_issue.issue_name,book_issue.issue_book,book_issue.issue_status,

book_issue.issue_date,book_issue.return_date,student.student_id,student.student_phone,student.stude
nt_email,student.student_name,book.book_name FROM book_issue

LEFT JOIN student ON book_issue.issue_name = student.student_id

LEFT JOIN book ON book_issue.issue_book = book.book_id

WHERE DATE_FORMAT(book_issue.issue_date,'%Y-%m') = '{$month}'


ORDER BY book_issue.issue_id DESC";

$result = mysqli_query($conn, $sql) or die("SQL query failed.");

if(mysqli_num_rows($result) > 0){ ?>

<div class="row">

<div class="col-md-12">

<table class="content-table">

<thead>

<th>S.No</th>

<th>Customer Name</th>

<th>Movie Name</th>

<th>Phone</th>

<th>Email</th>

<th>Issue Date</th>

<th>Return Date</th>

</thead>

<tbody>

<?php $serial = 1;

while($row = mysqli_fetch_assoc($result)) {

if((date('Y-m-d') > $row['return_date']) && $row['issue_status'] == "N"){

$over = 'style="background:rgba(255,0,0,0.2)"';

}else{ $over = ''; } ?>

<tr <?php echo $over; ?> >

<td><?php echo $serial; ?></td>

<td><?php echo $row['student_name']; ?></td>

<td><?php echo $row['book_name']; ?></td>

<td><?php echo $row['student_phone']; ?></td>

<td><?php echo $row['student_email']; ?></td>

<td><?php echo date('d F, Y',strtotime($row['issue_date'])); ?></td>

<td><?php echo date('d F, Y',strtotime($row['return_date'])); ?></td>

</tr>

<?php $serial++; } ?>


</tbody>

</table>

</div>

</div>

<?php

} ?>

</div>

</div>

<?php include "footer.php" ?> <!-- footer -->

BIBLIOGRAPHY

• www.w3schools.com
• www.tutorialspoint.com
• www.youtube.com

You might also like