Skip to content

Repository files navigation

LivroLog 📚

Personal library management system that allows users to organize their reading collection, follow other readers, and share book recommendations with Google Books API integration.

Buy Me A Coffee GitHub code size in bytes GitHub commit activity (branch) GitHub Release

  • Add all the books you've read to your shelf
  • Follow your friends, see what each person's shelf looks like and find out what they just finished reading
  • Download an image of your shelf and use it as a background in your video calls

Developed with ❤️ for book lovers

🏗️ Architecture

LivroLog/
├── api/                # Laravel 12 Backend + MySQL + Redis
├── webapp/             # Vue.js 3 + Quasar Frontend
└── docker-compose.yml  # Services orchestration

🚀 Quick Start

git clone https://github.com/arnonrdp/LivroLog.git
cd LivroLog
cp .env.example .env

Then pick one of the two setups below.

🐳 With Docker — MySQL, Redis, Mailpit and Reverb included
  1. Start services
docker-compose up -d
  1. Setup backend
docker exec livrolog-api composer install
docker exec livrolog-api php artisan key:generate
docker exec livrolog-api php artisan migrate
  1. Setup frontend
docker exec livrolog-frontend yarn install
docker exec livrolog-frontend yarn dev
💻 Without Docker — PHP, Composer, Yarn and a local SQLite file

Requires PHP 8.4+ (with pdo_sqlite), Composer, Node 24+ and Yarn. On macOS: brew install php composer node yarn.

  1. Point the API at SQLite
cd api
cp .env.example .env

Edit api/.env — everything else works as shipped:

DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/to/LivroLog/api/database/database.sqlite
SESSION_DRIVER=file     # no Redis running locally
MAIL_MAILER=log         # no Mailpit; mail goes to storage/logs/laravel.log
  1. Setup backend
composer install
php artisan key:generate
touch database/database.sqlite
php artisan migrate --seed          # seeds 10 users, admin@livrolog.com / admin123
  1. Run backend (one terminal each)
php artisan serve --port=8000
php artisan queue:work               # Amazon enrichment jobs
php artisan reverb:start --port=8080 # optional, WebSocket notifications
  1. Run frontend
cd ../webapp
cp .env.example .env
yarn install
yarn dev --port 8001

Google sign-in only works on origins registered in the Google Cloud client — use email/password locally.

📋 Services

📚 Documentation

🏆 Tech Stack

Backend: Laravel 12, PHP 8.4, MySQL 8.0, Redis 7.0, Laravel Sanctum
Frontend: Vue.js 3, Quasar Framework, TypeScript, Pinia
Infrastructure: Docker, Docker Compose, Nginx

About

A place for you to collect everything you've read.

Topics

Resources

Contributing

Security policy

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages