Projects

Ongoing  /  Client engagement: scoped, sold and delivered

Print Quota & Cost Recovery System

PaperCut for authentication and quotas, Python to audit it, and a monday.com form that let users print from home, with a generated cover sheet so the stack could be sorted by hand.

Problem

Every part of printing was manual: auditing accounts, reconciling credits, counting pages, and handling anything a user wanted printed from home.

Stack

PaperCut NG

Python

monday.com

Outcome

Account and credit auditing ran automatically instead of by hand, and remote print requests arrived sorted and labelled. It removed nearly all of the manual work the task had required.

What was manual

Printing had a quota and a cost attached to it, which meant somebody had to keep track. That work was done by hand: auditing accounts, reconciling credits against usage, counting pages, and answering users who wanted something printed that they could not print themselves.

None of it was difficult. All of it was repetitive, and it landed on people who had other things to do.

PaperCut as the source of truth

The client already ran PaperCut, so I built around it rather than replacing it. Every printer was configured to attach to the PaperCut instance, authenticate the user, and log the job there. That gave one place where a user’s identity, their quota, and what they had actually printed all lived together.

Python queries that instance for the things staff kept looking up by hand (credits remaining and usage against quota) and pushes them into a monday.com board. Staff read the board instead of running the audit.

02

How a job moved through it

Print quota system: how a job entered and what came out A job enters one of two ways: a user authenticating at a shared printer, or an upload through a monday.com form for printing from home. PaperCut holds identity, quota and the usage log. Python queries it and pushes credits and usage to a monday.com board so staff do not have to audit by hand, and prints the uploaded jobs with a generated cover sheet between them so the morning batch arrives already delimited. Uploaded jobs are logged in PaperCut and charged against credits like any other. 01 At a shared printer user authenticates at the device 02 Upload form monday.com · printing from home 03 PaperCut NG identity · quota · usage log 04 Python audits it, and prints the uploads 05 monday.com board credits and usage, for staff 06 Batch + cover sheets comes out already delimited queried Uploaded jobs are logged in PaperCut and charged against credits like any other.
Two ways in, one place that knows who you are, and two things out: a board staff read instead of auditing, and a stack of paper that arrives sorted.

Printing from home

Users often needed something printed that they could not print themselves. That had been a conversation, an email, or a USB stick.

A monday.com form took the upload instead. The submission is tied to the user’s login, so the job is tracked and charged against their credits exactly like anything they sent from an on-site machine. The automation picks it up and prints it.

The cover sheet

Automating the digital half leaves a physical problem: overnight submissions come out as one undifferentiated stack of paper, and someone still has to work out whose is whose.

So the system generates a cover page between jobs, carrying the user’s details, and prints it with the batch. In the morning the stack is already delimited. Whoever collects it separates it on the cover sheets without reading anyone’s work or matching anything up.

It is the smallest part of the build and the one that decided whether the rest of it actually saved anyone time. A system that produces a pile of paper nobody can sort has moved the work rather than removed it.

What it came to

Almost all of the manual handling went away. The auditing runs without anyone starting it, remote requests arrive labelled and charged correctly, and the people who used to reconcile this by hand got that time back.

The scope stayed deliberately small. PaperCut already did authentication, quotas and logging well; the work was connecting what it knew to the people who needed to act on it.