How rickzasyam/ngitungid works
NgitungID BI is an internal financial intelligence application for Indonesian SMEs. Its main accounting workflow uploads client PDF reports, extracts financial figures with Gemini, and stores line items for staff review and client-specific chart-of-accounts mapping; processed reports then feed dashboard and analytics views. Separate branches support client and team administration, and commercial contract and service management. The README documents the product flow; sampled routes show extraction, persistence, and dashboard aggregation, while page-level wiring and several route implementations were not sampled, so uncertain links are omitted.
Main entry points: schema.ts Application database · upload/route.ts Upload endpoint · reports/route.ts Reports endpoint · guards.ts Route access guards
Components 24
Report workflow
- Report upload
app/upload/page.tsx - Upload endpoint
app/api/upload/route.ts - AI extraction
lib/gemini/extract.ts - Line-item builder
lib/reports/line-items.ts - Extraction review
app/extraction-review/page.tsx - COA mapping
app/coa-mapping/page.tsx - Reports endpoint
app/api/reports/route.ts - Client COA API
app/api/clients/[id]/coa/route.ts
Financial insights
- Dashboard aggregation
app/api/dashboard/[clientId]/route.ts - Financial dashboard
app/dashboard/page.tsx - Analytics views
app/analytics/page.tsx - Ratio analysis API
app/api/analytics/[clientId]/ratios/route.ts - Balance detail API
app/api/analytics/[clientId]/neraca-detail/route.ts
Client operations
- Client management
app/api/clients/route.ts - Active client context
lib/client-context.tsx - Contract workspace
app/kontrak/page.tsx - Contracts API
app/api/contracts/route.ts - Service catalog API
app/api/layanan/route.ts
Access and data
- Authentication
lib/auth.ts - Route access guards
lib/api/guards.ts - Application database
lib/db/schema.ts
Other components
- Accounting staff
- Client viewer
- Gemini API
Connections 35
- Accounting staff → Report upload: uploads PDF
- Report upload → Upload endpoint: submits files
- Upload endpoint → AI extraction: extracts figures
- AI extraction → Gemini API: requests extraction
- Upload endpoint → Line-item builder: builds line items
- Upload endpoint → Application database: stores reports
- Upload endpoint → Application database: reads COA history
- Upload endpoint → Application database: stores line items
- Accounting staff → Extraction review: reviews reports
- Extraction review → Reports endpoint: loads report lines
- Accounting staff → COA mapping: maps accounts
- COA mapping → Reports endpoint: loads reports
- COA mapping → Client COA API: loads client COA
- Reports endpoint → Application database: reads reports
- Reports endpoint → Application database: reads line items
- Accounting staff → Financial dashboard: views results
- Client viewer → Financial dashboard: views results
- Financial dashboard → Dashboard aggregation: requests metrics
- Dashboard aggregation → Application database: reads financial data
- Dashboard aggregation → Application database: reads account mappings
- Dashboard aggregation → Financial dashboard: returns aggregates
- Analytics views → Ratio analysis API: requests ratios
- Analytics views → Balance detail API: requests balance detail
- Client management → Application database: reads and writes clients
- Active client context → Client management: loads client list
- Accounting staff → Contract workspace: manages contracts
- Contract workspace → Contracts API: submits contract data
- Contracts API → Application database: reads and writes contracts
- Contracts API → Service catalog API: uses service catalog
- Service catalog API → Application database: reads and writes services
- Upload endpoint → Route access guards: checks access
- Reports endpoint → Route access guards: checks access
- Contracts API → Route access guards: checks access
- Route access guards → Authentication: checks session
- Client management → Route access guards: checks access