GS.Let's talk
Live

Library

A barcode lending app for a church kids' library: scan the book, scan the card, done.

LibraryInteractive demo · sample data

What it is

A lending system for a church library that's mostly children's Bible and saints' story books. Volunteers lend a book by scanning two barcodes with their phone camera: the sticker on the book and the member's library card. The app tracks who has what, texts parents when a book is late, prints the barcode stickers and shows which grades read the most.

Why I built it

I wanted lending to take seconds on a busy Sunday, without a desk, a laptop or a paper sign-out sheet. Volunteers already have phones, so the phone camera became the scanner. Late books were the other problem, so the reminders and the 'Lost' decision happen on their own instead of someone chasing families by hand.

413registered members
1,192titles, 1,658 copies
2,360loans since May 2024
103books marked lost

How it works

Two scans and a transaction

A book's barcode is its ID padded to five digits (book 357 becomes 00357), printed as CODE128. The phone camera reads it, then the member's card. Borrowing runs as one database transaction: is the book available, does the member exist, do they already have a book? If any check fails the whole thing rolls back, so you get 'Member has a book' and nothing changes. A loan lasts 14 days.

Late books handle themselves

Every Sunday at 3 PM Toronto time a scheduled job finds every unreturned, past-due loan and texts the parent through Twilio: first 'now overdue', then a friendly follow-up, then a last reminder giving 7 more days. On the fourth Sunday the book is marked Lost automatically and the member's lost count goes up. Admins see the overdue cards turn green, yellow and red as reminders go out.

Printable barcode labels

The 'Generate barcodes' page turns a list of new books into a PDF of 35 × 16.5 mm sticker labels, two per row, each with the CODE128 barcode and the title underneath, ready to print and stick inside the cover.

Reading reports from real data

Top Readers ranks members by grade. Across two years the busiest readers were Grade 3, averaging 16.5 loans each, and the most borrowed titles were children's Bible stories and saints' stories.

Built with

ReactViteNode.js + ExpressMySQLQuagga (camera barcode scanning)JsBarcode + jsPDFTwilio SMSnode-cron