Skip to content

A modern desktop library manager with ISBN barcode scanning, automatic book data fetching, and search functionality built with PySide6.

License

Notifications You must be signed in to change notification settings

yusuftotic/pyside6-library-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PySide6 Library Manager

A modern desktop application for managing your personal library with advanced features like ISBN barcode scanning and automatic book data fetching.

Features

  • 📚 Book Management: Add, edit, delete, and search books
  • 📷 Barcode Scanning: Scan ISBN barcodes using your computer's camera
  • 🌐 Auto Data Fetching: Automatically fetch book details from Amazon using ISBN
  • 🔍 Search Functionality: Search books by title, author, publisher, or ISBN
  • 💾 Local Storage: Store all data locally in JSON format
  • 🎨 Modern UI: Clean and intuitive PySide6-based interface

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/pyside6-library-manager.git
cd pyside6-library-manager
  1. Install dependencies:
pip install -r requirements.txt
  1. Run the application:
python main.py

Requirements

  • Python 3.8+
  • Webcam (for barcode scanning)
  • Internet connection (for book data fetching)

Dependencies

  • PySide6: Modern Qt framework for Python
  • OpenCV: Computer vision for camera operations
  • pyzbar: Barcode detection and decoding
  • requests: HTTP requests for web scraping
  • BeautifulSoup4: HTML parsing
  • isbnlib: ISBN validation and conversion

Usage

  1. Adding Books: Click "Add Book" and either manually enter details or scan an ISBN barcode
  2. Scanning Barcodes: Use the camera to scan ISBN barcodes for automatic data entry
  3. Searching: Use the search bar to find books by various criteria
  4. Editing: Select a book and click "Edit" to modify details
  5. Viewing Details: Double-click a book to see full details

Project Structure

pyside6-library-manager/
├── main.py              # Main application file
├── data/                # Data storage directory
│   └── books.json       # Book database
├── requirements.txt     # Python dependencies
├── README.md           # This file
└── .gitignore          # Git ignore rules

Development Status

  • Create UI for initial setup
  • Create QTableView
  • Add manual book entry functionality
  • Write a class for JSON operations
  • Implement book addition, editing and deletion operations using this class
  • Write book add and edit dialogs
  • Fetch book data from Amazon using ISBN
  • Implement scraping operations with QRunnable & QThreadPool (ScraperWorker)
  • Add search book functionality
  • Implement camera-based ISBN barcode scanning with OpenCV
  • Add CameraWorker thread for real-time camera processing
  • Integrate barcode detection using pyzbar library
  • Replace pyisbn with isbnlib for better ISBN validation and conversion
  • Add automatic ISBN input from camera scan to form fields
  • Implement thread-safe camera start/stop functionality
  • Add camera status monitoring and error handling

Contributing

Feel free to submit issues and enhancement requests!

License

This project is open source and available under the MIT License.

About

A modern desktop library manager with ISBN barcode scanning, automatic book data fetching, and search functionality built with PySide6.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages