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.

Demo video

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.