Production-ready Next.js app for financial controls analytics, segregation of duties (SoD) monitoring, risk trends, and heatmaps, powered by a Postgres/Prisma backend.
- Executive Dashboard: Visualizes key metrics (employees, transactions, violations, compliance rate, resolution time, risk trends)
- Risk Heatmap: Department-level risk scoring and violation analysis
- Trends Analytics: Time-series charts for violations, risk scores, and control effectiveness
- SoD Monitoring: Detects role conflicts, temporal violations, and high-risk transactions
- Materiality Context: Adjustable thresholds for financial materiality, performance, and risk sensitivity
- Employee & Transaction Modals: Drill-down views for detailed analysis
- Statistical Analysis: Anomaly detection, risk scoring, and behavioral analytics
- Clone the repo
- Create
.envfrom.env.example- Set
DATABASE_URLto your Postgres connection string
- Set
- Install dependencies
npm install
- Generate Prisma client & migrate
npx prisma generate npx prisma migrate deploy
- Seed data
npm run seed:light # Fast demo seed npm run seed # Full dataset
- Run the app
npm run dev
/api/dashboard/stats— Dashboard metrics/api/analytics/risk-heatmap— Department risk heatmap/api/analytics/trends— Trend analytics (violations, risk scores, control effectiveness)/api/employees— Employee risk and behavior analysis/api/transactions— Transaction-level analytics/api/violations— Violation details/api/health— Health check
dev— Start Next.jsbuild— Production buildtest— Run unit & API contract tests (Vitest)seed— Full seed (50k transactions)seed:light— Light seed (2k transactions)
- Uses Vitest; loads
.envor falls back to.env.example - Contract tests mock Prisma where needed
- API input validated with Zod (
lib/validation.ts) - Prisma connection optimized for Neon/Postgres
- No secrets or private keys committed;
.envis ignored
For more details, see the code and comments in each module.