A modern desktop application for managing your personal library with advanced features like ISBN barcode scanning and automatic book data fetching.
- 📚 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
- Clone the repository:
git clone https://github.com/yourusername/pyside6-library-manager.git
cd pyside6-library-manager
- Install dependencies:
pip install -r requirements.txt
- Run the application:
python main.py
- Python 3.8+
- Webcam (for barcode scanning)
- Internet connection (for book data fetching)
- 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
- Adding Books: Click "Add Book" and either manually enter details or scan an ISBN barcode
- Scanning Barcodes: Use the camera to scan ISBN barcodes for automatic data entry
- Searching: Use the search bar to find books by various criteria
- Editing: Select a book and click "Edit" to modify details
- Viewing Details: Double-click a book to see full details
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
- 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
Feel free to submit issues and enhancement requests!
This project is open source and available under the MIT License.