0% found this document useful (0 votes)
18 views18 pages

Minimalist Simple Business Proposal

Uploaded by

schoolbbanner
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)
18 views18 pages

Minimalist Simple Business Proposal

Uploaded by

schoolbbanner
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/ 18

S.B.I.O.A.

INTERNATIONAL SCHOOL
Polachery Main Road, Sonalur, Chennai - 600 127

PROJECT REPORT 2024 – 2025


Name : M.SHAKEEL

Class: XII Sec:

A Reg. No:

Title of the Project : ‘LIBRARY MANAGEMENT’


BONAFIED CERTIFICATE

This is to certify that M.SHAKEEL of class


XII of SBIOA international School, Chennai
has successfully completed the Computer
Science
project report on ‘library management’. I
certify that this project is up to my
expectations and as per guidelines issued
by CBSE

DATE OF

COMPLETION:

STUDENT’S

SIGNATURE:
TEACHER’S

SIGNATURE:

EXTERNAL

EXAMINER:
ACKNOWLEDGEMENT

A special thank you to Mrs. Anitha for her


guidance, wisdom, patience, and motivation that
helped overcome challenges and achieve project
goals in computer science.
Her feedback transformed the journey into an exciting
experience.

I would also like to extend my heartfelt thanks to


my school for providing the resources and
environment necessary for this
project.Additionally, I am deeply grateful to my
parents for their unwavering support and
encouragement throughout this journey.
LIBRARY
MANAGEMENT

PREPARED BY:
M.SHAKEEL
TARUN
NIRANJAN
SIDHARTH
INDEX
OBJECTIVE 6
TECHNOLOGICAL REQUIREMENTS 7
MODULES USED 8
SCOPE 9
CODE 10
OUTPUT WINDOW 12
CONCLUSION 16
OBJECTIVE
The library management project,
using MySQL, Python, and Tkinter,
aims to simplify library resource
handling. It features a Tkinter-based
GUI for easy database interaction,
enhancing database management
skills and GUI design. The project
streamlines book organization and
management digitally.
TECHNOLOGIC
AL
REQUIREMEN
TS

HARDWARE

1. COMPUTER (PROCESSOR, RAM, STORAGE)


2. NETWORK CONNECTION

SOFTWARE

1. OPERATING SYSTEM (WINDOWS, MACOS,


LINUX)
2. PYTHON 3.6 OR HIGHER
3. MYSQL-CONNECTOR-PYTHON MODULE
4. TKINTER MODULE
5. MYSQL SERVER 5.7 OR HIGHER
6. MYSQL WORKBENCH (OPTIONAL)
7. IDE/TEXT EDITOR (OPTIONAL)
MODULES USED
1.add_book: Gathers input from the user (title, author,
year published) and inserts it into the 'books' table in
the database. It then clears the input fields and
updates the displayed list of books.
2.messagebox: Displays information or warning
messages based on the success of the operation.
3.delete_book: Deletes the selected book from the
'books' table. It retrieves the selected item's ID from
the listbox, executes a delete SQL command, and
updates the displayed list of books.
4.update_status: Default value is displayed as ‘not
returned’ as can be manually changed to ‘returned’
after selected book has been returned, executes a
update command
5.display_books: Retrieves all records from the
'books' table and populates the listbox with these
records. Each book's details are formatted as a
string and inserted into the listbox.
6.books_frame: A frame to display the list of books and
a button to delete a selected book. The listbox shows
the books, and the 'Delete Book' button triggers the
deletion of the selected book. The frame and its
widgets follow the same black and blue color scheme.
7.add_frame: A frame to hold the widgets for adding a
new book. It has labels and entry fields for the title,
author, and year published, as well as an 'Add Book'
button. The frame and its widgets are styled with a
black background and blue text/accents.
SCOPE
The scope of the Library Management System project based on the provided code includes the
following functionalities and features:
1. User Interface:
The system provides a user-friendly interface built using Tkinter.
Users can add new books by entering the title, author, and year of publication.
Books are displayed in a listbox with details like ID, title, author, and publication
year.
Users can select a book from the list and delete it using the "Delete Book" button.
2. Functionality:
Addition of Books:
Users can add new books to the system by providing title, author, and publication
year.
The system stores book details in a database table.
Deletion of Books:
Users can delete selected books from the system.
Book deletion is handled by the delete_book() function, which removes the book
from the database.
Displaying Books:
The system fetches all books from the database and displays them in the listbox.
Book details are shown in the format: "ID - Title by Author (Published: Year)".
3.Database Connectivity:
The system interacts with a database to store and retrieve book details.
SQL queries are used to insert, delete, and select book information from the database.
4.Scope Expansion:
Future enhancements could include search functionality to find specific books.
Adding edit functionality to update book details.
Implementing user authentication and access control.
Improving the GUI design for a more appealing user experience.
import mySql.connector
CODE
from tkinter import *
from tkinter import
meSSagebox

db = mySql.connector.connect(hoSt="localhoSt", uSer="root", paSSWord="iacon",


databaSe="library") curSor = db.curSor()

curSor.execute("""
CREATE TABLE IF NOT EXISTS bookS (
id INT AUTO_INCREMENT PRIMARY
KEY, title VARCHAR(255),
author VARCHAR(255),
year_publiShed INT,
StatuS VARCHAR(50) DEFAULT 'Not Returned'
)
"""
)

def add_book():
title = title_entry.get()
author =
author_entry.get()
year_publiShed = year_entry.get()

if title and author and year_publiShed:


curSor.execute("INSERT INTO bookS (title, author, year_publiShed) VALUES (%S, %S, %S)", (title,
author, year_publiShed))
db.commit()
meSSagebox.ShoWinfo("SucceSS", "Book added SucceSSfully")
diSplay_bookS()
title_entry.delete(0, END)
author_entry.delete(0, END)
year_entry.delete(0, END)
elSe:
meSSagebox.ShoWWarning("PleaSe fill all fieldS")
def delete_book():
Selected_item =
bookS_liStbox.curSelection() if not
Selected_item:
meSSagebox.ShoWWarning("PleaSe Select a book to
delete") return

book_id = bookS_liStbox.get(Selected_item).Split()[0]
curSor.execute("DELETE FROM bookS WHERE id = %S",
(book_id,)) db.commit()
meSSagebox.ShoWinfo("SucceSS", "Book deleted SucceSSfully")
diSplay_bookS()

def update_StatuS():
Selected_item =
bookS_liStbox.curSelection() if not
Selected_item:
meSSagebox.ShoWWarning("PleaSe Select a book to
update") return

book_id = bookS_liStbox.get(Selected_item).Split()[0]
curSor.execute("UPDATE bookS SET StatuS = 'Returned' WHERE id = %S",
(book_id,)) db.commit()
meSSagebox.ShoWinfo("SucceSS", "Book StatuS updated
SucceSSfully") diSplay_bookS()

def diSplay_bookS():
curSor.execute("SELECT * FROM
bookS") bookS_liSt = curSor.fetchall()
print("BookS liSt:", bookS_liSt) # Debugging print to check the
retrieved data bookS_liStbox.delete(0, END)
for book in bookS_liSt:
if len(book) == 4: # Handle bookS Without StatuS
bookS_liStbox.inSert(END, f"{book[0]} - {book[1]} by {book[2]} (PubliShed:
{book[3]})") elif len(book) == 5: # Handle bookS With StatuS
bookS_liStbox.inSert(END, f"{book[0]} - {book[1]} by {book[2]} (PubliShed: {book[3]}) -
StatuS: {book[4]}") elSe:
print("Unexpected tuple length:", book) # Debugging print for unexpected data Structure

root = Tk()
root.title("Library Management
SyStem") root.geometry("800x600")
root.configure(bg="White")
add_frame = Frame(root,
bg="White")
add_frame.pack(pady=10)

title_label = Label(add_frame, text="Title:", fg="blue", bg="White")


title_label.grid(roW=0, column=0, padx=10)
title_entry = Entry(add_frame, fg="blue", bg="White",
inSertbackground="blue") title_entry.grid(roW=0, column=1, padx=10)

author_label = Label(add_frame, text="Author:", fg="blue", bg="White")


author_label.grid(roW=0, column=2, padx=10)
author_entry = Entry(add_frame, fg="blue", bg="White", inSertbackground="blue")
author_entry.grid(roW=0, column=3, padx=10)

year_label = Label(add_frame, text="Year PubliShed:", fg="blue",


bg="White") year_label.grid(roW=0, column=4, padx=10)
year_entry = Entry(add_frame, fg="blue", bg="White",
inSertbackground="blue") year_entry.grid(roW=0, column=5, padx=10)

add_button = Button(add_frame, text="Add Book", fg="White", bg="blue", command=add_book)


add_button.grid(roW=0, column=6, padx=10)

# Frame for diSplaying bookS and updating StatuS


bookS_frame = Frame(root, bg="White")
bookS_frame.pack(pady=10)

bookS_label = Label(bookS_frame, text="BookS:", fg="blue", bg="White")


bookS_label.grid(roW=0, column=0)

bookS_liStbox = LiStbox(bookS_frame, Width=100, height=20, fg="blue", bg="White",


Selectbackground="blue", Selectforeground="White")
bookS_liStbox.grid(roW=1, column=0, padx=10, pady=5)

delete_button = Button(bookS_frame, text="Delete Book", fg="black", bg="blue",


command=delete_book) delete_button.grid(roW=2, column=0, pady=5)

update_StatuS_button = Button(bookS_frame, text="Mark aS Returned", fg="White", bg="blue",


command=update_StatuS)
update_StatuS_button.grid(roW=3, column=0, pady=5)

# Initial diSplay of bookS


diSplay_bookS()

# Run the main


loop
root.mainloop()
OUTPUT WINDOW

ADDING A BOOK:
UPDATING A BOOK STATUS:
DELETING A BOOK :
CONCLUSION
In summary, the goal of this database system
for library management is to store books by
their titles using a MySQL database. By utilizing
this system, librarians and users can efficiently
handle and retrieve a wide range of titles
effortlessly. The user-friendly interface ensures
that searching, borrowing, and returning books
are simplified, reducing administrative tasks and
improving user satisfaction. Potential future
upgrades may involve implementing advanced
search algorithms, multilingual support, and
mobile accessibility to enhance the system's
flexibility and functionality. Ultimately, this
library management database system aims to
create a more organized, accessible, and user-
friendly environment for both librarians and
library users.

You might also like