A Flask-based web application for managing your personal book collection, tracking lending history, and maintaining a reading list.
- Add books via ISBN lookup or search by title/author using Google or OpenLibrary APIs
- Edit book details and fill in missing information from Google/OpenLibrary using ISBN
- Track multiple copies of the same book
- Mark books as read or unread
- Manage book lending and returns
- View lending history and metrics
- Maintain a reading list
- Search and filter books by various criteria, including no categories, read status, title, author, ISBN or acquisition date range
- Admin panel with backup/restore functionality
- Soft delete support for books and lending history with ability to restore or permanently delete
- Python 3.8 or higher
- pip (Python package installer)
- Clone the repository:
bash
git clone https://github.com/Remillardj/PersonalLibrary
cd PersonalLibrary
- Install dependencies, you can set up your own venv if you'd like:
pip install -r requirements.txt
- Set up the database:
python manage.py db init
python manage.py db migrate
python manage.py db upgrade
- Run the application:
flask run
- Access the application at
http://localhost:5001.
- Add books using ISBN lookup or manual entry
- Track lending history and manage returns
- Use the admin panel for database maintenance, logs, and restoring deleted books or return history
- View metrics about your library and other useless statistics
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request