System design, dual environments, and the calculation pipeline
Static frontend served directly by nginx • /api/* proxied to Node.js • Puppeteer/Chromium for PDF generation
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite, TailwindCSS, React Query |
| Backend | Node.js 20 (ESM), Express, TypeScript |
| Database | PostgreSQL 15 (shared with CMS) |
| Puppeteer + Chromium (snap) | |
| Excel | xlsx library |
| Component | Status | Notes |
|---|---|---|
| Deployment | Complete | Running at wit.ipnoelp.com |
| Calculation Engine | 85% | BAU fixed, missing decom formula + equipment mappings |
| Reference Data | 90% | 6 retail building blocks unmapped |
| Validation | Waiting | Email sent to Craig 2026-02-22 |