πͺπΊπͺπΊπͺπΊMade in EuropeπͺπΊπͺπΊπͺπΊ π΅π± Przeczytaj po polsku!
ShelfSight Beta β Ready for Testing
The beta is now available for public testing. If you find a bug, have a suggestion, or want to contribute, please open an issue on the Issues page.
What's new in this build:
- Worklog β Session-based change tracking for books, readers, and loans. Every add, edit, and remove is logged with timestamps and can be reviewed in the new Worklog Statistics viewer or exported to file.
- Worklog Statistics β View aggregated counts and individual entries from the current session, available under Help > Worklog Statistics.
- SuperAdmin-only account controls β Changing roles and overwriting usernames/passwords for other users now requires SuperAdmin privileges.
- Password change support β SuperAdmins can change other users' passwords directly from the Accounts page. The old password hash is replaced with a freshly Argon2id-hashed value.
- Telemetry & Worklog settings β Both telemetry and worklog can be toggled independently from Settings > Preferences.
ShelfSight is a program for managing libraries both large and small, private or public. It is free, open-source, cross-platform and has legacy-support A successor to BookwormVB, it is intended to be more robust, more efficient and safer, while having broader OS support and better functionality than Bibliotekarz.NET in the Polish freeware sphere.
- Book Management - Add, edit, search, and soft-delete books with title, author, category, location, and status tracking
- Reader Management - Manage library members with student IDs, contact details, and borrowing history
- Loan System - Create loans with configurable durations, mark books as returned, track overdue loans, and generate overdue reports
- Categories & Locations - Organize books by custom categories and physical locations
- User Authentication - Role-based access control with User, Admin, and Superadmin roles; password hashing with libsodium
- Database Configuration - Connect to multiple SQLite databases, save/load database configurations, and create new database sets
- Search & Filter - Full-text search across all entities with field-specific filtering
- Undo System - Undo support for entity modifications (add, edit, remove)
- Telemetry - Optional local telemetry logging for usage analytics (no data sent externally)
- Worklog - Session-based change tracking for books, readers, and loans with timestamped entries and a statistics viewer
- Soft Deletion - Entities are soft-deleted (marked as deleted) rather than permanently removed, preserving data integrity
All builds are fully static β no DLLs, shared libraries, or runtime dependencies needed. Just extract and run.
Go to Releases and grab the archive for your platform:
| Platform | File | Notes |
|---|---|---|
| Windows x64 | ShelfSight-windows-x64-static.zip |
Windows XP x64 through 11 |
| Windows x86 | ShelfSight-windows-x86-static.zip |
Windows 2000 through 11 |
| Linux x64 | ShellSight-linux-x64-static.tar.gz |
Any x86_64 distro |
| Linux x86 | ShelfSight-linux-x86-static.tar.gz |
Any i686 distro |
Extract the zip and run bin\ShelfSight.exe. No installation needed.
tar xzf ShelfSight-linux-x64-static.tar.gz
cd ShelfSight-linux-x64
./ShelfSight.shA Flatpak manifest is included at flatpak/com.github.C0m3b4ck.ShelfSight.yml.
| Platform | Versions | Architecture | Packages |
|---|---|---|---|
| Microsoft Windows | Versions from XP to 11 (all Windows Server Editions from 2003 to 2025 | x86 and x64 | pre-packaged 'portable', 'installer' and 'standalone'. |
| Linux distributions | Kernel versions from [minimum kernel currently unknown] to 7.x.x | x86 and x64 | 'portable', 'installer' and 'standalone' |
| Microsoft Windows (Legacy) | Windows 2000, NT4, Me, 98, 95 | x86 | Packages might not be provided, support for Legacy versions will be finished after 1.0 release. |
| Microsoft Windows (CE) | Windows CE 2, 3, 4, 5, 6, .NET 4.1, .NET 4.2 | ARM | Support will be considered after MS Windows Legacy support is finalized. |
| Apple MacOS | (THEORETICALLY) supported | MacOS X and above | ARM and ARM64 |
The badges are meant to represent compatibility. Badges with the word "certified", "developed for" or other ARE A VISUAL REPRESENTATION ONLY. This project is not endorsed nor certified by Microsoft. Downloaded from https://logos.fandom.com/wiki/Microsoft_Windows/Compatible
- g++ (or MSYS2 MinGW for Windows)
- Qt 6.x with static libs (
qt6-base-devon Debian/Ubuntu) - SQLite 3 (
libsqlite3-dev) - libsodium (
libsodium-dev) - qmake6
For full build instructions see BUILD.md.
cd src
qmake6 ShelfSight.pro
make -j$(nproc)cd src
./build-windows.sh
./package-windows.shOutput: ShelfSight-Windows-YYYYMMDD.zip
Requires:
mingw-w64(apt install mingw-w64)- Qt6 for MinGW (install to
/usr/x86_64-w64-mingw32/qt6) - libsodium for MinGW (cross-compile or install via vcpkg)
See BUILD.md for detailed Windows build instructions.
pacman -S mingw-w64-x86_64-qt6 mingw-w64-x86_64-sqlite3 mingw-w64-x86_64-libsodium
cd src
qmake ShelfSight.pro
make -j$(nproc)Automated Windows and Linux builds are configured in .github/workflows/windows-build.yml.
Push a tag (e.g., v1.0.0) to trigger a release build with artifacts.
src/
βββ app/ # Main application (Qt6 widgets, business logic, crypto, SQLite data access)
β βββ main.cpp
β βββ mainwindow.cpp/h
β βββ businesslogic.cpp/h
β βββ crypto.cpp/h
β βββ sqlite_dataaccess.cpp/h
βββ sqlitecpp/ # SQLiteCpp static library
βββ .pro # qmake project files
βββ CMakeLists.txt # CMake build configuration
βββ mingw64.cmake # MinGW cross-compilation toolchain
βββ build_scripts/
βββ build-windows.sh # Linux->Windows cross-compile script
ShelfSight uses a layered architecture separating concerns:
- Domain layer (
domain.h) - Data models (Book, Reader, Loan, User) with DTOs for serialization - Data access layer (
sqlite_dataaccess.h/cpp) - SQLite persistence with thread-safe operations - Business logic layer (
businesslogic.h/cpp) - Validation rules and CRUD orchestration - GUI layer (
mainwindow.h/cpp) - Qt 6 interface with workspace-based navigation
Each entity (books, readers, loans, users) has its own SQLite database file, keeping data isolated and manageable.
- Passwords are hashed using libsodium (Argon2) with per-user salts
- Input sanitization prevents SQL injection attacks
- Role-based access control restricts operations by user role
- Role changes and password overwrites are restricted to SuperAdmin accounts only
- Headless backend tests cover SQL-injection-safe paths
- Docs are available in /DOCS/ subfolder.
- User and developer manuals will be made after 1.0 release.
- For now, check out development videos: https://www.youtube.com/watch?v=Hd-j296d3xY&list=PL_FbJyFLAmlil2avw-L_tHQugj_nknzCE


