Upload evidence. AI agents auto-build a floating laser evidence board with suspect ranking. One click generates a courtroom-ready Case File PDF.
Built with DigitalOcean: Gradientβ’ AI Platform, Functions, Spaces, Managed PostgreSQL, App Platform
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β USER BROWSER β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Next.js on DO App Platform β β
β β ββ Evidence Board (React Flow) β β
β β ββ Suspect Nodes with Guilt % β β
β β ββ Multi-file Upload β Presigned PUT β Spaces β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββΌββββββββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
β DO Spaces β β DO Managed β β DO Functions β
β (Presigned) β β PostgreSQL β β (Serverless) β
βββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ
β DigitalOcean Gradientβ’ AI Platform β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β 7-AGENT ORCHESTRATION PIPELINE β β
β β β β
β β 1. ForensicTagger β Extract objects, locations, timestamps β β
β β 2. WitnessAnalyst β Suspect descriptors, timeline hints β β
β β 3. PsychoProfiler β Behavioral hypotheses β β
β β 4. SuspectRanker β Guilt probability 0-100% β β
β β 5. ConnectionMapper β Graph nodes and edges β β
β β 6. DeskSergeant β Merge all outputs β β
β β 7. CaseFileWriter β Prosecutor-ready narratives β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β CrimeBoard-KB (Knowledge Base) β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Select multiple images, PDFs, text files at once
- Files upload directly to Spaces via presigned PUT URLs
- Never sends file bytes through API routes (avoids 1MB limits)
- Per-file upload status indicators
- 7 specialized AI agents analyze evidence in sequence
- Each agent builds on previous outputs
- Returns structured JSON for board rendering
- 2-5 suspects with guilt probability (0-100%)
- Each suspect shows:
- Why suspected (with evidence citations)
- Key attributes (description, vehicle, last seen)
- Relationships to other suspects
- Recommended next action
- All Spaces objects are private
- Every image/PDF renders via presigned READ URL
- URLs expire after 1 hour (configurable)
- CORS configured for upload domains
- Node.js 18+
doctlCLI authenticated- DigitalOcean account with Spaces, Functions, Gradient access
git clone https://github.com/YOUR_USERNAME/crimeboard_ocean.git
cd crimeboard_ocean
cd apps/web && npm installcp .env.example apps/web/.env.local
# Edit with your credentials# Add your IP to trusted sources first!
psql $DATABASE_URL -f db/migrations/001_initial.sqlIn DO Control Panel β Spaces β Bucket β Settings β CORS:
{
"CORSRules": [{
"AllowedOrigins": ["http://localhost:3000", "https://your-app.ondigitalocean.app"],
"AllowedMethods": ["GET", "PUT", "HEAD"],
"AllowedHeaders": ["*"],
"MaxAgeSeconds": 3600
}]
}npm run dev
# Open http://localhost:3000doctl serverless install
doctl serverless connect
cd functions && doctl serverless deploy .doctl apps create --spec .do/app.yaml| Product | How We Used It |
|---|---|
| Gradientβ’ AI Platform | 7-agent orchestration, function routing, knowledge base |
| Functions | 6 serverless endpoints (upload, OCR, tag-image, composite, casefile-pdf, signed-url) |
| Spaces | Private evidence storage, presigned PUT/GET URLs |
| Managed PostgreSQL | Cases, evidence, board nodes, edges, suspects |
| App Platform | Next.js frontend hosting |
crimeboard_ocean/
βββ apps/web/
β βββ app/ # Next.js App Router
β β βββ api/cases/[id]/ # CRUD, analyze, upload, close
β βββ components/ # EvidenceBoard, NodePanel, UploadModal
β βββ lib/
β βββ agents.ts # 7-agent orchestration
β βββ gradient.ts # Gradient API wrapper
β βββ spaces.ts # S3/Spaces client
β βββ db.ts # PostgreSQL pool
βββ functions/ # DO Functions
βββ db/migrations/ # SQL schema
βββ .do/app.yaml # App Platform spec
MIT - Built for DigitalOcean Hackathon