How arunkumar7070/kjbn-sales_import_dashboard works
KJBN Sales Import & Dashboard is a React/FastAPI application for importing retail sales CSVs and exploring the resulting ledger and analytics. The principal workflow stages uploads through batch registration and background processing, parses and validates rows, applies sale/return rules, and persists results for reporting. The frontend also supports store-catalog imports, batch history, and transaction search. The README documents the main backend flow; sampled-source references support frontend relationships. Some implementation details are unsampled, so those links are omitted.
Main entry points: client.ts API client · models.py Domain models · routes.py API routes · IngestionPage.tsx Ingestion page
Components 19
Web application
- Dashboard page
frontend/vite-project/src/pages/DashboardPage.tsx - Dashboard cards
frontend/vite-project/src/components/dashboard - Dashboard metrics
frontend/vite-project/src/components/dashboard/metrics.ts - Ingestion page
frontend/vite-project/src/pages/IngestionPage.tsx - Batch history
frontend/vite-project/src/components/ingestion/BatchHistory.tsx - Catalog upload UI
frontend/vite-project/src/components/stores/StoreCatalogUpload.tsx - Transactions page
frontend/vite-project/src/pages/TransactionsPage.tsx - Stores page
frontend/vite-project/src/pages/StoresPage.tsx - API client
frontend/vite-project/src/api/client.ts
HTTP API
- API routes
backend/api/routes.py - Domain models
backend/app/models.py
Sales ingestion
- Batch worker
backend/app/services/import_worker.py - CSV parser
backend/app/services/csv_parser.py - Sales importer
backend/app/services/sales_importer.py - Sale return rules
backend/app/services/sales_rules.py
Catalog and reporting
- Store catalog import
backend/app/services/store_import.py - Dashboard analytics
backend/app/services/analytics.py
Other components
- Browser user
- PostgreSQL
Connections 24
- Browser user → Ingestion page: uses
- Ingestion page → API client: uploads files
frontend/vite-project/src/pages/IngestionPage.tsx - Ingestion page → Batch history: shows batches
frontend/vite-project/src/pages/IngestionPage.tsx - Ingestion page → Catalog upload UI: offers catalog upload
frontend/vite-project/src/pages/IngestionPage.tsx - API client → API routes: sends HTTP requests
- API routes → Batch worker: schedules imports
backend/api/routes.py - Batch worker → CSV parser: parses staged CSV
backend/app/services/import_worker.py - Batch worker → Sales importer: processes valid batch
backend/app/services/import_worker.py - Sales importer → Sale return rules: validates row rules
backend/app/services/sales_importer.py - Batch worker → Domain models: records batch state
backend/app/services/import_worker.py - Sales importer → Domain models: writes transactions
backend/app/services/sales_importer.py - API routes → Store catalog import: imports catalog
backend/api/routes.py - API routes → Dashboard analytics: requests dashboard data
backend/api/routes.py - API routes → Domain models: queries domain data
backend/api/routes.py - Store catalog import → Domain models: upserts stores
backend/app/services/store_import.py - Dashboard analytics → Domain models: queries reporting data
backend/app/services/analytics.py - Domain models → PostgreSQL: maps persisted records
- Dashboard page → API client: loads analytics
frontend/vite-project/src/pages/DashboardPage.tsx - Dashboard page → Dashboard cards: renders
frontend/vite-project/src/pages/DashboardPage.tsx - Dashboard page → Dashboard metrics: uses metrics
frontend/vite-project/src/pages/DashboardPage.tsx - Transactions page → API client: searches ledger
frontend/vite-project/src/pages/TransactionsPage.tsx - Stores page → API client: loads stores
frontend/vite-project/src/pages/StoresPage.tsx - Batch history → API client: loads batch records
frontend/vite-project/src/components/ingestion/BatchHistory.tsx - Catalog upload UI → API client: submits catalog
frontend/vite-project/src/components/stores/StoreCatalogUpload.tsx