Sangam Investigation — Product Requirements Document

Field investigation & insurance claim documentation platform · Two Android apps + one web admin panel

Flutter (Android only)Laravel Admin Panel4–6 Weeksv1.0 · Aug 2026

1Overview

Sangam Detective Agency (Bilaspur, Chhattisgarh) currently runs two distinct lines of business — confidential private investigation (surveillance, matrimonial, background, corporate, cyber) and insurance claim investigation (motor, health, fire, and related). Today both run on WhatsApp threads, loose photo folders, and manually assembled Word documents. Evidence is scattered across personal phones, there is no chain of custody, and every insurance company requires its own report format — which is retyped by hand for each claim.

Sangam Investigation replaces that with a single system in three parts. A Customer Android app lets a claimant or client self-submit their case and documents in minutes and then watch its progress. A Staff (Field Investigator) Android app lets an assigned investigator capture geo-tagged, time-stamped photos, video, and location trails directly into the correct case folder — whether they are shadowing a subject for a matrimonial case or documenting a vehicle at an accident site. A Super Admin web panel is the control room: it receives everything in real time, lets the office review and approve, assigns staff to cases, and exports a finished report in the exact format the destination insurance company requires.

The core commercial insight: the bottleneck is not collecting evidence — it is turning collected evidence into an insurer-accepted report. The per-insurer report template engine in Section 10 is the single highest-value feature in this build.

2Personas & Roles

RoleSurfaceWhat they do
Claimant / Client
Ramesh, 41 — car owner in Bilaspur
Customer Android appHad an accident, needs to file a claim. Wants to submit his DL, Aadhaar, PAN, RC and vehicle photos without visiting the office, then know where his case stands.
Private Client
Confidential — matrimonial / corporate
Customer Android appEngages Sangam for a discreet investigation. Submits case brief and subject details, receives the final evidence report through the app.
Field Investigator (Staff)
Suresh — 6 yrs field experience
Staff Android appAssigned cases by the office. On a detective case: creates a client folder and drops in photos, videos, and location pins from the field. On an insurance case: reaches the site, records damage video, photographs documents, submits for approval.
Super Admin / Office
Agency owner + operations staff
Laravel web panelReviews every submission, approves or sends back, assigns staff, monitors live investigator location, and generates the final insurer-format report for download and dispatch.

Role hierarchy is flat and deliberate: there is exactly one Super Admin tier with full access, staff see only cases assigned to them, and customers see only their own cases. No investigator can view another investigator's evidence.

3Customer App — Onboarding & Authentication

The customer journey is deliberately short — most users are filing under stress, often at an accident site or in a difficult personal situation.

  1. Splash screen — Sangam branding, 1.5s, silently checks for an existing session token and skips straight to Home if found.
  2. Onboarding carousel — three swipeable cards explaining what the app does: submit your case, submit your documents, track your investigation. Skippable.
  3. Phone number entry — 10-digit Indian mobile, +91 fixed prefix, inline validation.
  4. OTP delivery — a 6-digit OTP is sent over WhatsApp Business API with automatic SMS fallback if the WhatsApp message is undelivered after 20 seconds. This dual channel matters in Chhattisgarh where WhatsApp penetration is high but network conditions vary.
  5. Auto-read & auto-verify — the app uses the Android SMS Retriever API to read the incoming OTP without requiring SMS-read permission, auto-fills the six boxes, and submits automatically. The user typically never types anything.
  6. Home — two large primary actions: Submit Investigation (detective/private case) and Submit Documentation (insurance claim), plus a My Cases list below.

Sessions persist via a long-lived token; re-authentication is only required after 90 days or an explicit logout. There is no password anywhere in the system for customers or staff.

4Document Submission (Insurance Claim)

Tapping Submit Documentation opens a guided, resumable wizard. Each step is a single screen with one clear task, so a user standing at a roadside can complete it on a poor connection.

StepCapturedValidation
1. Claim typeMotor / Health / Fire / Marine / Property / Workmen's CompensationRequired — determines the rest of the wizard
2. Driving LicenceFront + back photo, DL number, expiryRequired for motor. Blur detection on capture.
3. Aadhaar CardFront + back photo, masked Aadhaar numberRequired. Only last 4 digits stored in plain text.
4. PAN CardPhoto, PAN numberRequired. Format-validated (AAAAA0000A).
5. RC CertificateFront + back photo, registration numberRequired for motor. Reg-number format check.
6. Vehicle / Subject mediaUp to 10 photos + 1 video (max 60s). Auto geo-tag + timestamp burned into EXIF.At least 3 photos required
7. Policy detailsInsurer name, policy number, claim number (if issued)Insurer required — drives report format
8. Review & submitFull summary with thumbnail strip, edit any stepExplicit consent checkbox before submit

Uploads are chunked and resumable — if the connection drops mid-video the app resumes from the last chunk rather than restarting. Files are compressed client-side (photos to ~1.5MB, video to 720p) before upload to keep field data usage reasonable. Everything queues offline and flushes when connectivity returns.

On successful submit the case appears instantly in the Super Admin panel with status Submitted, and the customer receives a WhatsApp confirmation carrying the case reference number.

5Case Tracking (Customer)

Every case the customer has filed appears in a My Cases list with a live status. Opening a case shows a vertical timeline stepper so the customer always knows exactly where things stand — the single biggest driver of reduced "what's happening with my case?" phone calls to the office.

  1. Submitted — documents received, awaiting office review
  2. Under Review — office is verifying the submitted documents
  3. Investigator Assigned — a field investigator has been allocated (name and photo shown for insurance cases; withheld for confidential detective cases)
  4. Field Investigation In Progress — evidence is actively being gathered
  5. Report Ready — the final report is compiled and available
  6. Closed — dispatched to insurer / handed to client

A case can also enter Action Required at any point — for example if a submitted document is illegible. The customer receives a push and WhatsApp message naming exactly which document to re-upload, and can do so directly from the case screen without restarting the wizard.

6Staff App — Detective Investigation Mode

Staff authenticate with the same phone + OTP flow; the backend recognises the number as a staff account and serves the investigator interface instead. There is no separate app to install and no password to lose.

The investigator sees only cases assigned to them by the office. For a private/detective case, the working unit is a Client Folder — a secure container the investigator creates or opens for the subject under investigation:

  1. Add Client / Subject — name or codename, case type (Matrimonial, Surveillance, Background, Corporate, Cyber, Pre-Marital), brief notes.
  2. Add Photos — captured in-app only. The camera is in-app so that no evidence photo ever lands in the phone's public gallery. Each frame is stamped with GPS coordinates, date, and time at the moment of capture.
  3. Add Video — same in-app capture, same stamping, chunked background upload.
  4. Add Location Pin — drops a named, timestamped pin ("Subject entered hotel, 19:42") with a map snapshot.
  5. Live Location Trail — while an investigation session is active the app posts the investigator's position at intervals, building a movement trail the office can watch in real time and later export as proof of surveillance coverage.
  6. Field Notes — free-text observations, timestamped, appended to the folder chronologically.
Chain of custody: every item is immutable once uploaded. Nothing captured in the field can be deleted or edited from the phone — only the Super Admin can remove an item, and that removal is logged with the reason and the acting user. This is what makes the evidence defensible if the case reaches court.

Everything the investigator adds appears in the Super Admin panel within seconds of upload, organised chronologically under that client's folder.

7Staff App — Insurance Investigation Mode

When the assigned case is an insurance claim, the investigator gets a structured capture flow instead of a free-form folder — because insurers require specific evidence in a specific order.

  1. Reach site & confirm location — the app captures the investigator's actual GPS position at the site and asks them to confirm or adjust the accident/incident location on a map. The recorded coordinates are the investigator's real position, not a typed address, which is what makes the visit verifiable.
  2. Select claim nature — a radio choice between Own Damage and Third Party. This single selection branches the entire remaining flow.
  3. Own Damage path — record a continuous vehicle damage video walking around the vehicle (minimum 20 seconds, guided on-screen prompts for front / rear / left / right / odometer / chassis number), then photograph the customer's documents (DL, Aadhaar, PAN, RC) if the customer did not already submit them through the customer app.
  4. Third Party path — capture the third-party vehicle and property damage, plus the third-party's details. The app then asks explicitly: "Was there a fatality?" If Yes, a Post-Mortem Report upload becomes mandatory — the submission is blocked until the PM report is attached, alongside the FIR copy and any police panchnama. If No, injury details and any medical documents are captured instead.
  5. Witness statements — optional audio recording or typed statement with the witness's name and contact.
  6. Investigator findings — a short structured assessment: genuine / suspicious / requires further investigation, with supporting remarks.
  7. Submit for approval — the complete package moves to the Super Admin panel for review. The investigator cannot edit after submission.

The flow is fully offline-capable. An investigator at a remote accident site with no signal completes the entire capture, and the app syncs automatically the moment it reconnects — with an explicit "3 items pending upload" indicator so nothing is silently lost.

8Supported Insurance Types

Six claim categories ship in v1, chosen to cover Sangam's existing insurance-fraud practice as described on their services page:

TypeKey evidence capturedSpecial handling
Motor — Own DamageVehicle damage video, odometer, chassis/engine number, DL, RC, Aadhaar, PAN, garage estimateGuided 6-angle video capture
Motor — Third PartyAll of the above plus third-party vehicle/property damage, FIR copy, panchnamaPost-mortem report mandatory if fatality = Yes
Health / MedicalHospital bills, discharge summary, prescriptions, diagnostic reports, hospital site photos, treating-doctor statementProvider-fraud check; hospital verification visit
FireSite video walkthrough, burn-pattern photos, fire brigade report, inventory of damaged goods, electrical/origin assessmentFire brigade NOC upload
Marine / TransitConsignment photos, packing list, LR/GR copy, survey report, damage extent documentationCarrier liability capture
Property / BurglaryPremises photos, point-of-entry evidence, FIR copy, inventory of loss, CCTV availability checkPolice station verification

Claim types are configured as data, not hard-coded — the Super Admin can add a seventh category later, define which evidence fields it requires, and it appears in the staff app without an app update.

9Super Admin Web Panel

A Laravel web application, desktop-first, that runs the entire operation.

  1. Dashboard — live KPI tiles (open cases, awaiting review, investigators active in the field right now, reports generated this month, average turnaround days) plus a case-volume trend chart and a feed of the latest field uploads as they land.
  2. Case Inbox — every submission from customers and staff in one queue, filterable by type, insurer, status, assigned investigator, and date. Cases awaiting review are surfaced first.
  3. Evidence Review — the core screen. A photo grid with full-screen lightbox and swipe-through, an inline video player, the location trail rendered on a map, and every item's capture timestamp and GPS coordinates shown alongside. The reviewer approves the case, marks individual documents as illegible (which triggers the customer's Action Required state), or rejects with a reason.
  4. Staff Assignment — assign any case to an investigator, with the investigator's current location and open case count shown to support the decision. Reassignment is logged.
  5. Live Investigator Tracking — a map showing every investigator currently on an active session, their trail for the day, and last-seen timestamp.
  6. Report Generation — described in Section 10.
  7. Staff Management — add/deactivate investigators, view per-investigator case history and turnaround performance.
  8. Insurer & Template Management — maintain the list of insurance companies and their report templates.
  9. Audit Log — every approve, reject, delete, assignment, and download recorded with user, timestamp, and IP.

10Report Export — Per-Insurer Formats

This is the module that removes the agency's largest manual cost. Each insurance company is configured once with its own report template — its cover page, its section ordering, its field labels, its photo layout, its declaration wording, and its logo placement.

When a reviewed case is approved, the admin selects the destination insurer and the system assembles a finished PDF: cover sheet with claim and policy references, investigator details and visit timestamp, structured findings, the full photo set laid out to that insurer's grid specification, location map with GPS coordinates, document scans as annexures, and the signed declaration block. Video evidence is referenced by secure link (and optionally bundled into a ZIP alongside the PDF).

Both the PDF and a full evidence ZIP are downloadable from the case screen, and the case can be marked as dispatched with the date and recipient recorded. For detective cases the same engine produces the agency's own branded client report rather than an insurer format.

Scope note: v1 ships with up to 5 insurer templates built to samples the client provides during Week 1. Additional templates are configured post-launch — each new format is a configuration exercise, not new development, provided the client supplies a filled sample report.

11Notifications

EventRecipientChannel
OTP for loginCustomer / StaffWhatsApp → SMS fallback
Case submitted successfullyCustomerPush + WhatsApp (with case reference)
New case in inboxSuper AdminPush + in-panel badge
Case assigned to youStaffPush
Status changedCustomerPush + WhatsApp at Report Ready
Action required — re-upload documentCustomerPush + WhatsApp naming the document
Submission approved / rejectedStaffPush
Report generated & dispatchedSuper AdminIn-panel + email copy

12Non-Functional Requirements

Evidence Security

Media stored in a private bucket, served only via short-lived signed URLs. Encrypted at rest and in transit. No evidence file is ever publicly addressable.

Chain of Custody

Immutable uploads with GPS + timestamp burned at capture. Full audit log of every view, download, and deletion — defensible in legal proceedings.

Offline First

Full capture works with zero connectivity. Local queue with resumable chunked upload and an explicit pending-sync indicator. Critical for remote accident sites.

Low-End Device Support

Android 8.0+. Runs on 2GB RAM devices. Client-side compression keeps a full case under ~25MB of upload.

Confidentiality

Detective case evidence is visible only to the assigned investigator and Super Admin. In-app camera keeps evidence out of the device gallery. Remote wipe on staff deactivation.

Performance

App cold start <2.5s. API p95 <400ms. Admin evidence grid paginated and lazy-loaded to stay responsive on cases with 100+ photos.

13Status Model

EntityStates
CaseSubmitted → Under Review → Investigator Assigned → In Progress → Report Ready → Closed  |  side-states: Action Required, Rejected, On Hold
DocumentUploaded → Verified → Illegible (re-upload requested) → Replaced
Staff SubmissionDraft → Pending Sync → Submitted → Approved → Sent Back for Correction
ReportNot Generated → Generated → Dispatched to Insurer → Acknowledged
Investigator SessionIdle → Active (location posting) → Ended

14Scope & Exclusions

In scope — v1

  1. Customer Android app (Flutter) — onboarding, WhatsApp/SMS OTP, both submission flows, case tracking timeline
  2. Staff Android app (Flutter) — same auth, detective client folders with media + location trail, insurance capture flow with OD/TP branching and conditional post-mortem gate, offline queue
  3. Super Admin web panel (Laravel) — dashboard, case inbox, evidence review, assignment, live tracking, staff management, audit log
  4. Report engine with up to 5 insurer templates + 1 agency detective-report template
  5. 6 insurance claim categories, admin-configurable
  6. WhatsApp Business API + SMS OTP and notifications
  7. Play Store submission support for both apps

Explicitly out of scope — v1

  1. iOS builds — Android only, per agreed scope. Flutter codebase means iOS can be added later without a rewrite.
  2. In-app payments / invoicing — no payment gateway in v1
  3. Direct API integration with insurance companies — reports are generated and downloaded, then dispatched by the office through existing channels (email/portal). Direct insurer API submission is a v2 candidate.
  4. OCR / auto-extraction from Aadhaar, PAN, DL, RC — numbers are typed by the user in v1; OCR is a v2 enhancement.
  5. In-app chat between customer and investigator — communication stays on phone/WhatsApp
  6. Multi-branch / franchise hierarchy — single-office model; multi-branch is a v2 structural change
  7. Automated fraud scoring / AI analysis — investigator judgement only
  8. Client-facing web portal — customers use the Android app

15Open Questions

These need answers from Sangam before or during Week 1 — most block a specific build task.

  1. Insurer report samples (blocks Week 4). Which 5 insurance companies should ship in v1, and can filled sample reports for each be provided? Without real samples the template engine is built against assumptions and will need rework.
  2. WhatsApp Business API account. Does Sangam have an approved WABA and verified sender, or does this need provisioning? Meta approval can take 1–3 weeks and is the single most likely external delay — SMS-only fallback ships if it is not ready.
  3. Detective case customer visibility. Should a private/matrimonial client see the evidence in-app, or only be notified that a report is ready and receive it offline? This is a confidentiality decision with legal implications, not a technical one.
  4. Live tracking consent. Should investigators be tracked continuously during shift hours, or only while a case session is explicitly started? Continuous tracking has staff-consent and labour implications.
  5. Evidence retention period. How long is case evidence kept before archival or deletion? This drives storage cost and needs a stated policy for legal defensibility.
  6. Post-mortem gate. Confirmed that submission is hard-blocked without a PM report when fatality = Yes — or should the investigator be able to submit with a documented reason and attach it later?
  7. Report signatory. Does each report need a digital signature or a scanned signature image of the licensed investigator, and whose signature applies — the field investigator's or the agency principal's?
  8. Customer app distribution. Public Play Store listing, or restricted distribution to referred clients only? Affects store listing content and review risk for an investigation-category app.
  9. Existing data migration. Are there historical cases to import, or does the system start clean from go-live?

Interactive Demo

Switch between the three surfaces and click through the real flows.

Development Timeline

6-week plan · Flutter (Android) × 2 apps + Laravel admin panel. Weeks 5–6 include buffer; a tight 4-week delivery is achievable if insurer templates and the WhatsApp API account are ready on day one.

Customer App Staff App Admin Panel API / Backend QA / Launch

Technology Stack

Mobile — Flutter (Android)

  • Flutter 3.x · Android 8.0+ (API 26)
  • Riverpod state management
  • Drift (SQLite) offline queue
  • In-app camera + GPS/EXIF stamping
  • SMS Retriever API (auto-OTP, no permission)
  • Geolocator + background location trail
  • Dio with chunked resumable upload
  • Single codebase → iOS later without rewrite

Backend — Laravel 11

  • REST API + Sanctum token auth
  • MySQL 8 · normalised case/evidence schema
  • Redis cache + queue workers
  • Horizon for job monitoring
  • Spatie Media Library + signed URLs
  • DomPDF / Snappy for report generation
  • Blade + Alpine.js admin panel
  • Spatie Activity Log for audit trail

Integrations & Infra

  • WhatsApp Business API (OTP + alerts)
  • MSG91 / Twilio SMS fallback
  • Firebase Cloud Messaging (push)
  • Google Maps SDK (pins, trails, geocoding)
  • S3-compatible private object storage
  • FFmpeg for server-side video transcode
  • CloudPanel on VPS · nightly encrypted backups

System Architecture

Customer App
Flutter · Android
Staff App
Flutter · Android
Super Admin
Laravel Web
↓ HTTPS · signed URLs · offline queue ↓
Nginx · Rate Limiting · Auth Gateway
Auth & OTP
Case Engine
Evidence & Media
Assignment
Location Trail
Report Templates
Audit Log
MySQL 8
Redis
Private S3 Bucket
WhatsApp API
SMS Gateway
Firebase FCM
Google Maps

Why This Stack

Flutter, Android-only

Two apps from one shared codebase and component library — roughly 40% less work than two native builds. Android-only halves QA and store effort now; iOS stays a later option, not a rewrite.

Laravel

Auth, queues, media handling, PDF generation and audit logging all exist as mature packages. The report template engine is the only genuinely custom backend module.

WhatsApp-first OTP

Higher delivery and open rates than SMS in tier-2/3 India, with SMS as automatic fallback so no user is ever locked out by a single channel failing.

Offline queue on-device

A local SQLite queue means field capture never depends on signal. This is the difference between an app investigators use and one they abandon at the first dead zone.

Sangam Investigation  ·  Confidential Product Requirements Document  ·  Prepared by Scale Us