How paingsc/rtms-v2 works
RTMS V2 is a multi-tenant rice-trading management web app. Its tenant workspace exposes setup and opening balances, master data and prices, purchases, sales, stock, money, reporting, and operational administration; login and staff management support access to that work. The sampled item and price managers call guarded Supabase RPCs, while the README identifies tenancy, roles, audit, and database guards as platform capabilities. Offline selling, purchasing, and collection are distinct documented-by-route capabilities in the tree, but their internal wiring was not sampled; those links are shown as unverified.
Main entry points: page.tsx Tenant workspace · browser.ts Browser Supabase client · PriceManager.tsx Price management · ItemManager.tsx Item management
Components 24
Access and tenancy
- Login and MFA
apps/web/src/app/[locale]/login/page.tsx - Tenant workspace
apps/web/src/app/[locale]/t/[slug]/page.tsx - Staff administration
apps/web/src/components/StaffManager.tsx - Platform administration
apps/web/src/app/[locale]/admin/page.tsx
Trading operations
- Item management
apps/web/src/components/ItemManager.tsx - Price management
apps/web/src/components/PriceManager.tsx - Price import and bulk
apps/web/src/components/PriceSheets.tsx - Sales
apps/web/src/app/[locale]/t/[slug]/sales/page.tsx - Sale review
apps/web/src/components/sale/ReviewStep.tsx - Purchasing
apps/web/src/app/[locale]/t/[slug]/purchases/page.tsx - Stock operations
apps/web/src/app/[locale]/t/[slug]/stock/page.tsx - Customer and supplier money
apps/web/src/app/[locale]/t/[slug]/money/page.tsx - Opening balances and stock
apps/web/src/app/[locale]/t/[slug]/opening/page.tsx - Day close
apps/web/src/app/[locale]/t/[slug]/day-close/page.tsx
Reporting and records
- Reports and summaries
apps/web/src/app/[locale]/t/[slug]/reports/page.tsx - Audit history
apps/web/src/components/HistoryPanel.tsx - Print documents
apps/web/src/app/[locale]/print/[slug]/[doc]/[id]/page.tsx
Offline work
- Offline selling, buying, collection
apps/web/src/components/offline - Offline store and outbox
apps/web/src/lib/offline
Shared services
- Client providers
apps/web/src/components/Providers.tsx - UI primitives
apps/web/src/components/ui - Browser Supabase client
apps/web/src/lib/supabase/browser.ts - Supabase database
Other components
- Staff user
Connections 27
- Staff user → Login and MFA: signs in
- Login and MFA → Tenant workspace: opens workspace
- Tenant workspace → Item management: manages items
- Tenant workspace → Price management: sets prices
- Tenant workspace → Sales: records sales
- Tenant workspace → Purchasing: records purchases
- Tenant workspace → Stock operations: manages stock
- Tenant workspace → Customer and supplier money: tracks balances
- Tenant workspace → Opening balances and stock: enters opening data
- Tenant workspace → Day close: closes day
- Tenant workspace → Reports and summaries: views reports
- Tenant workspace → Print documents: prints documents
- Tenant workspace → Offline selling, buying, collection: uses offline tools
- Tenant workspace → Staff administration: manages staff
- Staff user → Platform administration: administers platform
- Item management → Browser Supabase client: calls item RPCs
apps/web/src/components/ItemManager.tsx - Price management → Browser Supabase client: calls price RPCs
apps/web/src/components/PriceManager.tsx - Price management → Price import and bulk: renders sheets
apps/web/src/components/PriceManager.tsx - Price import and bulk → Browser Supabase client: calls price RPCs
apps/web/src/components/PriceSheets.tsx - Staff administration → Browser Supabase client: calls staff RPCs
apps/web/src/components/StaffManager.tsx - Audit history → Browser Supabase client: reads audit log
apps/web/src/components/HistoryPanel.tsx - Audit history → Item management: renders in manager
apps/web/src/components/ItemManager.tsx - Sales → Sale review: presents review
- Sale review → Client providers: formats values
apps/web/src/components/sale/ReviewStep.tsx - Client providers → UI primitives: provides UI contexts
apps/web/src/components/Providers.tsx - Browser Supabase client → Supabase database: reads and writes
- Offline selling, buying, collection → Offline store and outbox: uses local state