How scerty/budgeting works
This is a finance analytics and planning application: ERPNext general-ledger entries can be imported into Django-managed ingestion records, while an Angular dashboard queries Cube.js for expense, budget-versus-actual, and planning metrics. The tree also shows organizational, ledger, consolidation, workflow, and reporting domains. Sampled code confirms the ERPNext import and dashboard query paths; the intervening population of Cube’s analytics tables and the implementation of unsampled Django subsystems are not shown, so those links are omitted.
Main entry points: ingest_erpnext.py GL import command · erpnext.py ERPNext client · ingestion.py Ingestion records · cube.js Cube.js API
Components 21
ERP Ingestion
- GL import command
django/finance/management/commands/ingest_erpnext.py - ERPNext client
django/finance/ingestion/erpnext.py - Ingestion records
django/finance/models/ingestion.py
Finance Domain
- Django application
django/config/urls.py - Organization and access
django/finance/models/organization.py - Ledger domain
django/finance/models/ledger.py - Operations domain
django/finance/models/operations.py - Consolidation
django/finance/models/consolidation.py - Workflow
django/finance/models/workflow.py - Planning
django/finance/models/planning.py - Planning rules
django/finance/models/planning_rules.py - Reporting domain
django/finance/models/reporting.py
Analytics
- Cube.js API
cube/cube.js - Analytics schemas
cube/schema - Analytics tables
Dashboard
- Dashboard bootstrap
dashboard/src/main.ts - Finance dashboard
dashboard/src/app/app.ts
Other components
- Finance user
- ERPNext
- PostgreSQL
- ClickHouse
Connections 12
- Finance user → Dashboard bootstrap: opens
- Dashboard bootstrap → Finance dashboard: bootstraps
- Finance dashboard → Cube.js API: queries metrics
- Cube.js API → Analytics schemas: uses schemas
- Analytics schemas → Analytics tables: queries tables
- Analytics tables → ClickHouse: stored in
- Finance user → GL import command: runs import
- GL import command → ERPNext client: fetches entries
- ERPNext client → ERPNext: requests GL data
- GL import command → Ingestion records: creates run and rows
- Ingestion records → PostgreSQL: persisted in
- Django application → PostgreSQL: uses database