mirror of
https://github.com/domfelipe/fraudshield.git
synced 2026-08-07 11:36:53 +00:00
feat: implement FraudShield MVP — backend API + frontend alerts
Backend (Python 3.12/FastAPI): - 5 models: Transaction, DetectionRule, FraudAlert, AuditLog, RuleSnapshot - Rule engine: 4 rule types (amount, location, time, pattern) - 11 API routes: health, auth, transactions, alerts - Sync ingestion pipeline with explanation generation - JWT auth with 3 roles (analyst, admin, senior) - Seed script with 5 default rules + 50 synthetic transactions Frontend (React 19/TypeScript/Tailwind): - Auth: login page, JWT token management, role-based routing - Alerts: queue with filters, detail panel, decision workflow - Layout: responsive sidebar, top bar, protected routes - Full TypeScript, zero ts-ignore, Tailwind CSS Build: Backend imports clean, Frontend tsc --noEmit passes, vite build produces 296KB production bundle.
This commit is contained in:
parent
14f2616037
commit
989202648d
60 changed files with 6943 additions and 0 deletions
18
frontend/src/pages/AlertsPage.tsx
Normal file
18
frontend/src/pages/AlertsPage.tsx
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
import { useState } from 'react';
|
||||
import AlertQueue from '../components/alerts/AlertQueue';
|
||||
import AlertDetailPanel from '../components/alerts/AlertDetail';
|
||||
|
||||
export default function AlertsPage() {
|
||||
const [selectedId, setSelectedId] = useState<string | null>(null);
|
||||
|
||||
return (
|
||||
<div className="flex h-full">
|
||||
<div className="w-2/5 border-r bg-white overflow-hidden">
|
||||
<AlertQueue selectedId={selectedId} onSelect={setSelectedId} />
|
||||
</div>
|
||||
<div className="w-3/5 overflow-hidden">
|
||||
<AlertDetailPanel alertId={selectedId} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue