Vendor Management Portal
eVendor, Metrodata's vendor portal for purchase orders, delivery acceptance, invoices, tax checks and approvals, built by one engineer in six weeks.
Key results
6 weeks
First commit to deployed portal, as the sole engineer
21 domains
Backend domains, built on 109 database migrations and 51 numbered specs
4.5 KB → 2.1 KB
Session cookie size after the fix that restored staff sign-in on the deployed portal
- Sole engineer and operator, responsible for design, AI coding agent direction, review and delivery
- Aug 2026 to Oct 2026
- Metrodata
- Key project
- L3:vendor-management-portal
Results
6 weeks
First commit to deployed portal, as the sole engineer
21 domains
Backend domains, built on 109 database migrations and 51 numbered specs
4.5 KB → 2.1 KB
Session cookie size after the fix that restored staff sign-in on the deployed portal
Problem
Metrodata needed one vendor portal built around the purchase order: vendor onboarding, delivery acceptance (BAST), invoices with several tax types, and accounting and tax approvals that run in parallel. SAP failures must not stop the portal. The business owner gave weekly direction, including a process revision that users approved mid-project and that moved the whole workflow onto the purchase order. The gallery shows a masked local demo, not production captures.
Contribution
- I wrote 51 numbered specs, directed AI coding agents through the implementation and reviewed every pull request behind CI gates before it merged.
- I modelled 21 backend domains in FastAPI and PostgreSQL with 109 Alembic migrations, then rebuilt the workflow around one purchase order workspace shared by vendors and staff after the user-approved process change.
- I isolated SAP behind a provider port with retries, rate limits and a circuit breaker so ERP delays cannot cascade into the portal. The port and the tax invoice check currently serve seeded data.
- I implemented Entra ID single sign-on and local Argon2id accounts, re-checking roles on every request. Deployment uses Bicep, VNet integration and Key Vault references.
- I diagnosed failures on the deployed portal: a build step that stopped the app from starting, a sign-in teardown race, and a session cookie that grew past the browser's 4 KB limit and silently broke staff sign-in.
Architecture
Gallery
Tech stack
Python
FastAPIPostgreSQL
Next.js
TypeScript
Azure App Service
Azure Key Vault
Microsoft Entra ID
Bicep
GitHub Actions
SAP integration
- Alembic
More Product Engineering projects
Technical Consultant, Software & AI, Metrodata (PT Mitra Integrasi Informatika)