BookManager is a Windows desktop application for organizing and tracking a local PDF book library. It scans a selected folder structure, builds a browsable catalog, and stores reading progress, ratings, statuses, notes, and favorite books locally.
The project was built as a personal library manager inspired by list-tracking services such as MyAnimeList, adapted for offline PDF book collections.
- Automatically scans a local directory and its subfolders for PDF files.
- Organizes books into a tree view based on the folder structure.
- Tracks reading status: none, reading, completed, dropped, and on hold.
- Stores current page, total pages, rating, start date, completion date, and personal notes.
- Provides quick search by book title.
- Supports favorite books and library statistics such as completed books, currently reading books, dropped books, and total pages read.
- Opens books directly in the default PDF reader and can open the containing folder.
- Generates first-page PDF previews with Ghostscript.
- Stores application data locally in XML, with optional AES encryption.
- Includes early synchronization components for future client/server data syncing.
- Language: VB.NET
- UI: Windows Forms
- Runtime: .NET Framework 4.8
- PDF processing: PDFsharp, Ghostscript.NET, Ghostscript
- Data storage: Local XML file, optional AES encryption
- Installer: Visual Studio Installer Project
- Experimental server component: Python synchronization server prototype
.
├── BookManager # Main Windows Forms application
├── BookManagerInstaller # Visual Studio installer project
├── ExternalLibs # External libraries and installers not managed by NuGet
├── IDRemover # Utility for removing IDs from PDF files
├── SyncServer # Prototype synchronization server
├── TestingApp # Sandbox project for testing new features
├── BookManager.sln
├── LICENSE
└── README.md
- Windows
- Visual Studio with .NET Framework desktop development support
- .NET Framework 4.8 Developer Pack
- Ghostscript 10.03.0 or newer
- NuGet package restore enabled in Visual Studio
- Clone the repository.
- Open
BookManager.slnin Visual Studio. - Restore NuGet packages if Visual Studio does not do it automatically.
- Build the
BookManagerproject. - Make sure Ghostscript is installed and available on the target machine.
- Run the application and choose a local folder containing PDF books.
- Open
BookManager.slnin Visual Studio. - Build the
BookManagerInstallerproject. - Run the generated installer.
Warning
Choose an installation directory where the application can create, update, and delete local data files without requiring administrator privileges.
- The installer path must allow normal user-level file operations.
- Encrypted XML file detection still needs more robust validation.
- Ghostscript may have issues with file paths containing characters outside the basic ASCII character set.
- Synchronization is represented by prototype components and is not yet a complete production feature.
- Replace XML-based storage with SQLite.
- Improve application permission handling around local data files.
- Complete client/server synchronization.
- Replace or supplement Ghostscript with a more reliable PDF preview solution.
- Add broader validation and automated tests around file loading, encryption, and data persistence.
