Back to Projects

Northbound — B2B Order Management Platform

Full-stack UBL 2.1 e-procurement platform with invoicing, tax, and reporting

TypeScriptNode.jsExpressReactSupabaseJWTSwagger / OpenAPI

Demo coming soon

Overview

Northbound is a full-stack B2B e-procurement platform built around the UBL 2.1 Order standard. It supports authenticated order CRUD, UBL XML generation, invoice generation with country-based tax calculation, recurring order templates, despatch advice (DevEx) integration, and aggregated party reports for buyer spend and seller revenue. The React frontend ships with multi-language support (EN/ES/FR/DE/ZH) and multi-currency handling via live exchange rates. As Scrum Master, I drove sprint planning, backlog refinement, and Jira issue tracking across the full project lifecycle while contributing directly to the codebase.

Architecture

The backend is an Express + TypeScript API backed by Supabase (PostgreSQL), with JWT authentication and a standard JSON response envelope for consistent success/error handling. Endpoints are dual-versioned (`/orders` and `/v1/orders`) for backward compatibility and documented end-to-end with Swagger UI at `/docs`. Invoice generation integrates an external exchange-rate API for live FX conversion. The React frontend consumes the API and is deployed to Vercel; the backend runs on Render.

Key Challenges

  • Implementing the UBL 2.1 XML schema correctly for B2B procurement compliance
  • Designing the invoice/tax module to handle country-specific rates and live FX conversion
  • Coordinating a 5-person team across sprints while maintaining individual engineering contributions
  • Keeping two API versions consistent while evolving the response envelope
  • Modelling recurring order templates so they generate consistent UBL output over time

What I Learned

  • Deep understanding of enterprise document standards (UBL 2.1) and B2B procurement workflows
  • Practical Agile/Scrum leadership — running standups, sprint retros, and backlog grooming
  • OpenAPI 3.0 / Swagger design-first API development with versioned routes
  • Building i18n and multi-currency support into a real product surface
  • Splitting a full-stack app across Vercel (frontend) and Render (backend) deployments

Future Improvements

  • Add support for UBL 2.1 Credit Note and additional document types
  • Expand the party reporting dashboard with charts and exports
  • Implement webhook delivery for order and invoice status events
  • Add multi-tenant authentication and rate limiting