Skip to content

About

The successor to BookwormVB in terms of cataloging books. Made with legacy support, security and privacy in mind.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ShelfSight GitHub All Releases

πŸ‡ͺπŸ‡ΊπŸ‡ͺπŸ‡ΊπŸ‡ͺπŸ‡Ί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.

About

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.

Features

  • 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

Installation

All builds are fully static β€” no DLLs, shared libraries, or runtime dependencies needed. Just extract and run.

Download

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

Windows

Extract the zip and run bin\ShelfSight.exe. No installation needed.

Linux

tar xzf ShelfSight-linux-x64-static.tar.gz
cd ShelfSight-linux-x64
./ShelfSight.sh

Flatpak

A Flatpak manifest is included at flatpak/com.github.C0m3b4ck.ShelfSight.yml.

Supported Operating Systems

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

Windows 95Windows 98Windows MEWindows NT 4.0Windows 2000 ProfessionalWindows 2000 ServerWindows XPWindows VistaWindows Server 2012Windows 7Windows 8Windows 10Windows 11LinuxMacOS

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

Build

Prerequisites

  • g++ (or MSYS2 MinGW for Windows)
  • Qt 6.x with static libs (qt6-base-dev on Debian/Ubuntu)
  • SQLite 3 (libsqlite3-dev)
  • libsodium (libsodium-dev)
  • qmake6

For full build instructions see BUILD.md.

Linux Build

cd src
qmake6 ShelfSight.pro
make -j$(nproc)

Windows Cross-Compilation (from Linux)

cd src
./build-windows.sh
./package-windows.sh

Output: 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.

Native Windows Build (MSYS2)

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)

CI/CD (GitHub Actions)

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.

Project layout

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

Architecture

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.

Security

  • 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

Documentation

Credits

Started on June 19th, 2026, by C0m3b4ck.

Libraries used:

  • Qt, a cross-platform C++ GUI toolkit,
  • SQLite, a lightweight embedded SQL database,
  • libsodium, for Argon2id password hashing and cryptographic operations

About

The successor to BookwormVB in terms of cataloging books. Made with legacy support, security and privacy in mind.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages