Hardware lab inventory
+ KiCad HTTP Library
NovaNode is an open-source parts inventory, project BOM, and ordering tool for hardware labs, makerspaces, and small EE teams. It exposes your inventory as a KiCad 8+ HTTP Library and auto-imports symbols / footprints from LCSC via easyeda2kicad.
What it does
- Inventory & stock ledgerEvery part with a full who took what when history. No mutable quantity — every change is an event you can audit.
- BOM per projectLink components to projects, snapshot BOM revisions, diff between them (added / removed / qty changed / component swapped).
- Orders & receivingDraft orders, receive against them (partial or full), stock updates automatically.
- KiCad HTTP LibraryAny KiCad 8+ install points at your NovaNode via a per-user token. Parts appear in the Symbol Chooser with MPN, manufacturer, price, and stock as custom fields — flow straight into your KiCad BOM export.
- LCSC → auto-imported symbols + footprintsServer-side
easyeda2kicad. Enter an LCSC part number, click Import, get a working KiCad symbol and footprint. No hand-drawing. - Shopping list from many projectsPick 2-5 projects to build, tool computes aggregated shortages, generates one draft order per supplier.
- Bin labels with QR + Code 128Print small thermal labels per bin. Scan with any phone camera → land on the component page.
- Multi-user with rolesAdmin / member / viewer, per-user KiCad tokens, full audit log of every mutation.
Self-host
One VM (2 GB RAM is comfortable). SQLite for storage — no external database. Everything runs from one bash deploy.sh.
git clone https://github.com/Deepak9090/novanode
cd novanode
npm ci && npm run build
bash deploy.sh --domain your.domain.com
sudo certbot --nginx -d your.domain.com
Full step-by-step on Google Cloud (free-tier eligible): DEPLOY-GCP.md.
Stack
SQLite · Node 22 · Express · React 19 · TypeScript · Vite · TanStack Query · Python (easyeda2kicad only). No external services required. Zero configuration to start.