COMP 102 – Spring 2024
Semester Project
Instructions:
o Please do your own work; plagiarized code will result in zero marks.
o Upload a zipped folder on moodle named as your roll number followed by
your section e.g., 20-13456_project
o Please add comments to your code
o Late projects will not be accepted.
Console / GUI-based Library Management System Project
GUI component carries 5 absolute marks in total
Overview
This project involves developing a Library Management System using Python, where each core
functionality is divided into separate files. The system will facilitate the addition, deletion, viewing,
issuing, and returning of books.
Project Structure and Files
[Link]: This is the main driver script that imports functions from other files and handles user
interaction.
[Link]: Contains functions to add new books to the library.
[Link]: Contains functions to display the list of books currently available in the library.
[Link]: Contains functions to remove books from the library inventory.
[Link]: Manages the issuing of books to library patrons.
[Link]: Manages the return of books to the library.
System Requirements
Programming Language: Python
Interface Options: Console and optional Graphical User Interface (GUI) using PySimpleGUI.
Submission: All files must be submitted together in zipped form, and late submissions will not be
accepted.
Functionalities
1. Adding Books: Prompt the user to enter book details such as title, author, and ISBN. Update
the library inventory to include the new book.
2. Viewing Books: Display a list of all books in the library, showing details like title, author,
ISBN, and availability.
3. Deleting Books: Allow the user to specify a book to be removed by title or ISBN. Update the
inventory to remove the specified book.
4. Issuing Books: Let the user choose a book to issue based on the available inventory. Update the
status of the book as issued and decrement the available quantity.
5. Returning Books: Process the return of books by updating their status and increasing the
available quantity.
GUI Components
Implement a graphical user interface that provides a more user-friendly way to manage the
library. Include buttons and forms for each operation (Add, View, Delete, Issue, Return).
Input Validations
Ensure all inputs are valid, e.g., non-empty strings for titles and authors, numeric values for
ISBNs. Handle errors gracefully, providing clear messages for invalid inputs.
Example Code Snippets
import AddBook
import ViewBooks
import DeleteBook
import IssueBook
import ReturnBook
def main_menu():
while True:
print("1. Add Book")
print("2. View Books")
print("3. Delete Book")
print("4. Issue Book")
print("5. Return Book")
choice = input("Enter choice: ")
if choice == '1':
AddBook.add_book()
elif choice == '2':
ViewBooks.view_books()
elif choice == '3':
DeleteBook.delete_book()
elif choice == '4':
IssueBook.issue_book()
elif choice == '5':
ReturnBook.return_book()
else:
print("Invalid choice")
if __name__ == "__main__":
main_menu()
Submission Details
Each student should ensure that the code is well-commented and adheres to the project guidelines.
Include a Report file that explains how to run the system and interact with the GUI if implemented.
Links to Learn GUI (PySimpleGUI):
YouTube Videos:
[Link]
[Link]
KPEryrSo&index=1
Official Site: PySimpleGUI
[Link]