Overview • Repository Organization • Usage & Operation • Acknowledgments • License
BookMatch is a book recommendation system developed as the final project for the Algorithms and Data Structures I (C02) course at Inatel. The system analyzes individual preferences and reading patterns from similar users to create personalized recommendations. It applies fundamental data structures, search algorithms, sorting, and object-oriented programming in a practical C++ terminal application. Key features include user management with SHA-512 hashed passwords, a complete book catalog, and a behavior-based recommendation engine.
assets: Project images, logos, and diagrams.src: Main C++ source code and implementation files.
The project requires CMake (>= 3.20), a C++20 compatible compiler (g++ 10+, clang 10+, or MSVC 2019+), and the Botan cryptography library installed on your system. Dependencies like nlohmann/json and tabulate are fetched automatically during the build process.
# Install prerequisites (Ubuntu/Debian)
sudo apt update && sudo apt install -y build-essential cmake libbotan-2-dev
# Clone, build, and run
git clone https://github.com/Rorchive/BookMatch.git
cd BookMatch
mkdir build && cd build
cmake ..
cmake --build .
./BookMatch# Install prerequisites in MSYS2
pacman -Syu
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-botan
# Clone, build, and run
git clone https://github.com/Rorchive/BookMatch.git
cd BookMatch
mkdir build && cd build
cmake .. -G "MinGW Makefiles"
cmake --build .
./BookMatch.exe- Cryptography and hashing powered by Botan.
- JSON parsing implemented via nlohmann/json.
- Terminal UI tables generated using tabulate.
This software project is licensed under the MIT License. Please note that included third-party dependencies, libraries, or APIs may be subject to their own respective licenses. All materials are provided "as is" without warranty of any kind, and the authors assume no liability for any direct or indirect damages, claims, or issues arising from their compilation, use, or implementation.
Built with ❤️ by Rodrigo de Carvalho Andrade

