Skip to content

πŸ“š Leafmark – A web app to track your books and reading progress. Keep an overview of read, current, and planned books.

License

Notifications You must be signed in to change notification settings

roberteinsle/leafmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

156 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Leafmark - Book Tracking Web App

A multi-user book tracking web application built with Laravel 11 and PHP 8.2. Manage your book collection, track reading progress, view statistics, and organize books with tags.

Live: www.leafmark.app

Features

Book Management

  • Add, edit, and delete books manually or via external sources
  • Reading status tracking (Want to Read, Currently Reading, Read)
  • Reading progress with page tracking and history graphs
  • Book ratings and reviews
  • Series tracking with position ordering
  • Multiple cover images per book (upload, reorder, set primary)
  • Purchase tracking (date, price, currency, format)
  • Bulk operations (delete, add/remove tags)

Book Import Sources

  • Google Books API - Search by ISBN, author, or title
  • Open Library API - Free, no API key required
  • BookBrainz API - Additional metadata source
  • Big Book API - Comprehensive book data
  • Amazon Scraping - Import book data from Amazon URLs (DE/COM)
  • Goodreads CSV Import - Import from Goodreads export files with duplicate detection
  • Library Import (ZIP) - Restore a full library backup including books, covers, tags, and progress

Library Export & Backup

  • Export entire library as ZIP archive (books, covers, tags, progress, challenges)
  • Import ZIP archives with preview and duplicate handling (skip, overwrite, keep both)

Reading Statistics

  • Books and pages read per year with month-by-month breakdown
  • Year-over-year comparison charts (Chart.js)
  • Average rating, average days per book, average pages per day
  • Longest/shortest book, best/worst reading month
  • Top authors, language distribution, format breakdown
  • Reading challenge progress integration

Organization

  • Custom tags with color support
  • Grid and table view modes (per shelf)
  • Configurable table columns per shelf
  • Per-page item count settings (10, 25, 50, 100)
  • Series grouping view

Reading Challenges

  • Yearly reading goals
  • Automatic progress tracking based on finished books

Multi-User & Admin

  • Individual book collections per user
  • Admin dashboard with user statistics
  • User management (create, edit, delete, toggle admin)
  • First registered user becomes admin automatically
  • Registration control: open, domain-restricted, or code-required
  • Family accounts with join codes

Internationalization

  • 6 languages: English, German, French, Italian, Spanish, Polish
  • Configured via APP_LOCALE in .env

Security

  • Password reset via email
  • Email verification
  • Cloudflare Turnstile CAPTCHA support (optional)
  • Dynamic SMTP configuration via admin settings

Tech Stack

  • Backend: Laravel 11 + PHP 8.2
  • Database: SQLite
  • Frontend: Blade Templates + Tailwind CSS + Alpine.js
  • Charts: Chart.js
  • Deployment: Docker / Coolify

Quick Start

Option 1: GitHub Codespaces (Recommended)

  1. Click Code > Codespaces > Create codespace on main
  2. Wait for the environment to build (~2 min)
  3. The app starts automatically at port 8000

See CODESPACES.md for details.

Option 2: Local Development

git clone https://github.com/roberteinsle/leafmark.git
cd leafmark

cp .env.example .env
php artisan key:generate
touch database/database.sqlite
php artisan migrate
php artisan storage:link
php artisan serve

# Access at http://localhost:8000

Option 3: Self-Hosted with Coolify

See DEPLOY.md for detailed deployment instructions.

Environment Variables

Variable Description Required
APP_KEY Laravel application key Yes
APP_LOCALE Application language (de, en, fr, it, es, pl) Yes
ADMIN_EMAIL Auto-admin assignment for this email No
GOOGLE_BOOKS_API_KEY Google Books API key No
BIGBOOK_API_KEY Big Book API key No

SMTP, Turnstile CAPTCHA, and API keys can also be configured via Admin > System Settings in the UI.

Development with Claude Code

This project supports development with Claude Code. See CLAUDE.md for project context and conventions.

npm install -g @anthropic-ai/claude-code
claude

Testing

php artisan test                              # Run all tests
php artisan test --testsuite=Feature          # Feature tests only
php artisan test --testsuite=Unit             # Unit tests only
php artisan test --filter=test_example        # Specific test

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

License

MIT License - see LICENSE for details.

About

πŸ“š Leafmark – A web app to track your books and reading progress. Keep an overview of read, current, and planned books.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 2

  •  
  •  

Languages