Projects & Portfolio

Offline Library Management System with Python GUI

As part of my growing software development portfolio, I recently built a full-featured Library Borrowing System using Python and PySide6 — and I’d love to share how it works, why I built it, and what I learned along the way.

This app is perfect for local libraries, classrooms, or anyone who needs a simple, offline tool to manage books and borrowers. Instead of relying on cloud databases or web servers, I chose to go the desktop app route — which keeps things fast, secure, and accessible even without internet access.

What the App Can Do

Here’s what I packed into this application:

Book Management

  • Import books from .csv file
  • Add, edit, and delete books manually — with custom cover images
  • Filter and search by title and rating
  • Click a book to view full details, including a default cover if none is uploaded

Borrower Management

  • Import borrowers from CSV (after importing books to avoid reference errors)
  • View all borrowers and what books they’ve borrowed
  • Click a borrower to view their full profile: avatar, contact info, and borrowed books
  • Edit or delete any borrower
  • Track due dates and auto-calculate late fees

Status Tracking

  • Mark books as Returned
  • Mark late fees as Paid
  • Automatically remove cleared borrowers from the active list
  • Mark books as available again when returned

PDF Receipts

  • Generate and print a PDF receipt with avatar, book covers, and transaction history
  • Great for schools or as proof of return/payment

Desktop-Ready

  • Built with PySide6 (Qt for Python)
  • Packaged into a Windows .exe with PyInstaller
  • Portable and offline — just download and run!

Lessons Learned

This project helped me solidify several real-world skills:

  • UI development with PySide6
  • Managing data using SQLite
  • File I/O and importing from multiple formats
  • Image handling with avatars and book covers
  • Packaging with PyInstaller and .spec file editing
  • Writing dynamic logic for fee calculation and status handling

What’s Next?

I’m planning future updates like:

  • Role-based access (Librarian / Reader)
  • Borrowing history logs
  • Dashboard with total borrowed books and overdue reports
  • Exporting filtered data to CSV
  • Support for multiple copies of the same book

Try It Yourself

Want to test it out?
You can download the .exe and sample data on my website.

Let me know what features you’d add — or feel free to fork it and build your own version!

Leave a Reply

Your email address will not be published. Required fields are marked *