DeathAudit is a forensic risk engine that ingests one or multiple business files and returns a 90-day threat assessment.
npm install
npm run dev:server
npm run dev:client- API:
http://localhost:4000/api - Frontend:
http://localhost:5173
- Upload files from the React app.
- Express receives multipart files in memory (single or multi-file).
- Parser service extracts tabular/text summaries per file.
- Signal detector computes high-risk patterns.
- LLM step creates a strict JSON threat report using schema-constrained output.
- Scoring service computes the final threat score.
- UI renders top kill shots, recommendations, and chart suggestions.
deathaudit/
├── client/ # React/Vite frontend
│ ├── src/
│ │ ├── api/
│ │ │ └── deathauditApi.js # API client for backend communication
│ │ ├── components/
│ │ │ ├── ChartSuggestionList.jsx
│ │ │ ├── FileDropzone.jsx
│ │ │ ├── KillShotList.jsx
│ │ │ └── ThreatScoreCard.jsx
│ │ ├── pages/
│ │ │ ├── HomePage.jsx # File upload entry point
│ │ │ └── ReportPage.jsx # Threat report display
│ │ ├── styles/
│ │ │ └── app.css
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── index.html
│ └── vite.config.js
│
├── server/ # Express REST API
│ └── src/
│ ├── config/
│ │ └── env.js # Environment variable validation
│ ├── controllers/
│ │ └── analysis.controller.js
│ ├── middleware/
│ │ └── error.middleware.js
│ ├── routes/
│ │ └── analysis.routes.js
│ ├── schemas/
│ │ └── analysis.schema.js # JSON schema for LLM output constraints
│ ├── services/
│ │ ├── analysis.service.js # Orchestrates the full pipeline
│ │ ├── llm.service.js # Claude threat report generation
│ │ ├── parser.service.js # File extraction and summarization
│ │ ├── scoring.service.js # Final threat score computation
│ │ └── signal-detector.service.js # High-risk pattern detection
│ ├── utils/
│ │ └── statistics.js
│ ├── app.js
│ └── server.js
│
├── .env.example
└── package.json
GET /api/healthPOST /api/analyzewith multipartfiles[]