All projects
Backend · APIAug–Oct 2026 · Internship · Team of 2

Usage Data Pipeline

Usage data that loads itself.

A Node.js and Express service that pulls usage reports from vendor APIs, matches every row to the right record with a multi-tier engine and feeds a dashboard, replacing a spreadsheet rebuilt by hand with one button.

usage data pipeline · dashboardIllustrative mock
Usage dashboard
Synced 12 s ago · sample data
Load data
214
matched
9
to review
3
data gaps
Title ATier 1High
Title BTier 2High
Title CTier 3Medium
Title DReviewFlagged
An illustrative mock with sample data. The real dashboard runs on private records.
RoleFront end and the Node.js service
TeamTwo developers, working Agile
WhenAug–Oct 2026, internship at The Walbrook Institute London
Built withNode.js, Express, Chart.js
01

Skills it shows

API integration

Pulls COUNTER R5 usage reports from vendor REST APIs on demand, with every endpoint tested in Postman first.

Data matching

Matches on ISBN, title, year and publisher across four tiers, strongest evidence first. Anything ambiguous is flagged for a person, never guessed.

Reliable backend

API keys stay off the client, a second sync is refused while one is running, and vendor errors become plain-English messages.

Professional delivery

Feature branches and reviewed pull requests. It passed acceptance testing and went live.

02

Problem, build, result

1Problem

The dashboard worked, but feeding it meant rebuilding a spreadsheet from several exports by hand every time.

2What I built

A service between the browser and the vendor APIs that collects, matches, checks and shows: charts, a filterable table and a PDF report from the same data.

3Result

Deployed after passing acceptance testing. Fresh data is now one button.

1 buttonreplaces a manual rebuild
4 tiersof record matching
0duplicate runs: a second sync is refused
Liveafter acceptance testing
03

How it works

Collect

Usage reports pulled from vendor APIs on demand, not exported by hand.

POST /api/sync

Match

Each row paired with a record by a four-tier engine, strongest evidence first.

ISBN · title · year · publisher

Check

Ambiguous matches flagged for a person. A second run is refused while one is going.

never a guess

Show

Charts, a filterable table and a PDF report, all from the same data.

Chart.js · jsPDF
04

Tech stack

Tools and data
Node.jsExpressJavaScriptHTMLCSSChart.jsPostmanGitGitHubjsPDFREST APIsCOUNTER R5 reports
Methods
Data reconciliationMulti-tier matchingDuplicate-run safeguardsAgile deliveryAcceptance testing