How erzamadana-ui/supplier-id works
Supplier.id is a B2B marketplace for agricultural, livestock, and seafood goods, with supplier, buyer, and admin portals. Its documented lifecycle is DECLARE → PROVE → DELIVER → INSPECT → EVIDENCE → SETTLE: suppliers publish quality declarations and evidence, buyers discover listings and place orders, then receive and inspect goods; claims, returns, and financial settlement follow. The graph includes the visible web routing and API dispatch, plus documented pricing, quality, returns, and ledger capabilities. Most route and service source was not sampled, so uncertain internal wiring is omitted.
Main entry points: app.ts Express app · main.tsx Portal router · api.ts API client · auth.tsx Session state
Components 29
Web portals
- Portal router
web/src/main.tsx - Session state
web/src/lib/auth.tsx - Buyer portal
web/src/pages/buyer - Supplier portal
web/src/pages/supplier - Order and returns
web/src/pages/OrderDetail.tsx - Admin panel
web/src/pages/admin - API client
web/src/lib/api.ts
API workflows
- Express app
server/src/app.ts - Authentication
server/src/routes/auth.ts - Catalog and evidence
server/src/routes/catalog.ts - Evidence uploads
server/src/routes/evidence.ts - Supplier operations
server/src/routes/supplier.ts - RFQ workflow
server/src/routes/rfq.ts - Order workflow
server/src/routes/orders.ts - Returns workflow
server/src/routes/returns.ts - Admin operations
server/src/routes/admin.ts
Marketplace services
- Pricing and tax
server/src/services/pricing.ts - Quality scoring
server/src/services/quality.ts - Return adjustments
server/src/services/adjustment.ts - Return service
server/src/services/returns.ts - Order service
server/src/services/orders.ts - Double-entry ledger
server/src/services/ledger.ts - Marketplace config
server/src/services/config.ts
State and evidence
- PostgreSQL
server/src/db.ts - Evidence storage
server/src/lib/storage.ts
Other components
- Supplier
- Buyer
- Admin
- Supabase Storage
Connections 25
- Supplier → Portal router: uses portal
- Buyer → Portal router: uses portal
- Admin → Portal router: uses portal
- Portal router → Session state: provides session
- Portal router → Supplier portal: routes supplier
- Portal router → Buyer portal: routes buyer
- Portal router → Order and returns: routes orders
- Portal router → Admin panel: routes admin
- Session state → API client: requests identity
- Supplier portal → API client: calls API
- Buyer portal → API client: calls API
- Order and returns → API client: calls API
- Admin panel → API client: calls API
- API client → Express app: sends requests
- Express app → Authentication: dispatches auth
- Express app → Catalog and evidence: dispatches catalog
- Express app → Evidence uploads: dispatches uploads
- Express app → Supplier operations: dispatches supplier
- Express app → RFQ workflow: dispatches RFQ
- Express app → Order workflow: dispatches orders
- Express app → Returns workflow: dispatches returns
- Express app → Admin operations: dispatches admin
- Authentication → PostgreSQL: queries users
- Evidence uploads → Evidence storage: stores evidence
- Evidence storage → Supabase Storage: uploads when configured