Library
A barcode lending app for a church kids' library: scan the book, scan the card, done.
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.
How it works
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.
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.
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.
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.