Bookshelf

A reading tracker that knows whether you are reading, paused or done with a book.

Web In progress
Bookshelf cover

The Problem

Web-novel readers follow dozens of long series at once. Without a single place to record the chapter they stopped at, books get lost, and a library of hundreds of titles written in Chinese is hard to even browse.

The Solution

I built Bookshelf: a private library where each account only sees its own books, with search, tags and a status for every series. It works out whether a book is being read, paused or dropped from how far behind you are, and imports a whole bookshelf from twkan.com, translated into English.

  • Personal libraries: a global Eloquent scope isolates each account across the UI, admin panel and API.
  • Reading statuses (reading, unread, paused, completed, abandoned) inferred from the reading position.
  • Normalised tags shared between books, with search, filters and sorting.
  • A Sanctum-secured REST API, plus a browser exporter and artisan importer for twkan.com.

What I Focused On

A library is only useful if adding a book and moving a chapter are quick. The interface stays light, and the clever parts (status inference, import, demo safeguards) stay out of the way.

  • One Livewire page for the everyday work: search, filter, step through chapters.
  • Idempotent imports matched on source URL, so re-running updates rather than duplicates.
  • A shared demo account with row caps, per-IP rate limits and an hourly reset, without touching real accounts.
  • Built-in Help & Documentation that reads the live configuration.

Outcome

A library of hundreds of books that used to live in browser bookmarks is now searchable in English, with a clear status on every series and an API for anything I want to build on top.

HR Management System

Laravel · Web · Archived

Laravel and Filament HRMS covering employees, attendance, leave, payroll with PDF payslips, and recruitment.

Laravel Filament MySQL +2
View case study

Service Tracker

Laravel · Web · In progress

Service and attendance tracker for a church with three congregations, with scoped access and comparison reports.

Laravel Filament Livewire +3
View case study

NairaFlow

Laravel · Web · In progress

Back-office ledger for a currency exchange and remittance business, with maker-checker approvals and a full audit trail.

Laravel Filament Spatie Permission +2
View case study

Need something like this?

Tell me about your workflow and I will bring the code craft, structure and care.

Start a project conversation