Case study
Library management system
2026
ShelfFlow
ShelfFlow is a library management system built in Next.js that tracks a book catalogue, member records and circulation activity in one place. It shares its architecture with the point of sale and business management systems Linters builds: catalogue, entities, transactions and reporting over a single consistent data model.
At a glance
Role
Full-stack design and development
Year
2026
Stack
- — Next.js
- — React
- — Node.js
- — Relational data modelling
Highlights
- — Book catalogue management
- — Member records
- — Borrowing and return tracking
The problem
Circulation is a deceptively awkward data problem. A book is not simply in or out — it is out to a specific member, due on a specific date, possibly renewed, possibly overdue, possibly reserved by someone else while it is away.
Handled on paper or in a spreadsheet, the state of any given title becomes a question you answer by asking someone.
The approach
The catalogue, the members and the circulation events were modelled as separate concerns joined by transactions, rather than as a single sheet of rows. Every borrowing and return is an event with a timestamp, which means current state is derived rather than manually maintained — and history is available for free.
The interface was built around the two actions that happen hundreds of times a day, issue and return, keeping both to the smallest number of steps.
Why this matters for business systems
A library system and a point of sale system are the same shape: a catalogue of items, a set of parties, a stream of transactions between them, and reports derived from that stream. The circulation model here is structurally the same as stock movement in a retail POS or issue-and-return in a factory store.