Personal library management system that allows users to organize their reading collection, follow other readers, and share book recommendations with Google Books API integration.
- 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
LivroLog/
├── api/ # Laravel 12 Backend + MySQL + Redis
├── webapp/ # Vue.js 3 + Quasar Frontend
└── docker-compose.yml # Services orchestration
git clone https://github.com/arnonrdp/LivroLog.git
cd LivroLog
cp .env.example .envThen pick one of the two setups below.
🐳 With Docker — MySQL, Redis, Mailpit and Reverb included
- Start services
docker-compose up -d- Setup backend
docker exec livrolog-api composer install
docker exec livrolog-api php artisan key:generate
docker exec livrolog-api php artisan migrate- 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.
- Point the API at SQLite
cd api
cp .env.example .envEdit 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- Setup backend
composer install
php artisan key:generate
touch database/database.sqlite
php artisan migrate --seed # seeds 10 users, admin@livrolog.com / admin123- 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- Run frontend
cd ../webapp
cp .env.example .env
yarn install
yarn dev --port 8001Google sign-in only works on origins registered in the Google Cloud client — use email/password locally.
- Backend API: http://localhost:8000 (Documentation)
- Frontend: http://localhost:8001
- MySQL: localhost:3306 (Docker only — the local setup uses a SQLite file)
- Redis: localhost:6379 (Docker only — the local setup uses file/database drivers)
- 📁 Backend API Documentation - Laravel backend, database, and API details
- 🎨 Frontend Documentation - Vue.js frontend and UI components
- 🤝 Contributing - Code standards, workflow, and how to open a pull request
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

