How utkarshtiwari777/demo_verification_app works
This is an Android tanker-verification client paired with a FastAPI backend. The intended workflow is to receive a server-issued hand/target challenge, guide and analyze the user's camera interaction, submit the observed result, record and upload session evidence, and separately sample frames for server-authoritative tractor verification. The graph preserves those distinct stages and backend services. The README is empty and Android implementation excerpts were not supplied, so Android wiring is shown cautiously; backend wiring follows the sampled startup and API code.
Main entry points: main.py FastAPI app · sessions.py Session service · CameraPreview.kt Camera preview · evidence.py Evidence service
Components 27
Android client
- App entry
app/src/main/java/com/example/myapplication/MainActivity.kt - Verification UI
app/src/main/java/com/example/myapplication/verification/VerificationScreen.kt - Challenge flow
app/src/main/java/com/example/myapplication/verification/ChallengeFlow.kt - Camera preview
app/src/main/java/com/example/myapplication/camera/CameraPreview.kt - Hand analysis
app/src/main/java/com/example/myapplication/camera/HandLandmarkAnalyzer.kt - Phone alignment
app/src/main/java/com/example/myapplication/camera/PhoneAlignmentAnalyzer.kt - Frame router
app/src/main/java/com/example/myapplication/camera/VerificationFrameRouter.kt - Evidence recorder
app/src/main/java/com/example/myapplication/evidence/EvidenceRecorder.kt - Segment queue
app/src/main/java/com/example/myapplication/evidence/SegmentQueue.kt - Tractor sampler
app/src/main/java/com/example/myapplication/tractor/TractorSamplerCore.kt - Data repositories
app/src/main/java/com/example/myapplication/data/BackendRepository.kt - API client
app/src/main/java/com/example/myapplication/data/remote/ApiClient.kt - Session API
app/src/main/java/com/example/myapplication/data/remote/TractorApi.kt - Evidence API
app/src/main/java/com/example/myapplication/data/remote/EvidenceApi.kt
Backend API
- FastAPI app
backend/main.py - Verification routes
backend/verification_api.py
Session verification
- Challenge generator
backend/challenge.py - Session service
backend/sessions.py - Session store
backend/sessions.py
Evidence and tractor
- Evidence routes
backend/evidence_api.py - Evidence service
backend/evidence.py - Evidence files
backend/evidence.py - Tractor routes
backend/tractor_api.py - Tractor verifier
backend/tractor.py - Tractor detector
backend/detector.py - Model weights
backend/models/tractor_detector.pt
Other components
- User
Connections 32
- User → App entry: opens app
- App entry → Verification UI: shows UI
- Verification UI → Challenge flow: runs challenge
- Verification UI → Camera preview: starts camera
- Camera preview → Hand analysis: frames
- Camera preview → Phone alignment: frames
- Camera preview → Frame router: routes frames
- Frame router → Evidence recorder: records
- Frame router → Tractor sampler: samples
- Challenge flow → Data repositories: requests session
- Evidence recorder → Segment queue: queues segments
- Data repositories → API client: uses
- API client → Session API: calls
- API client → Evidence API: calls
- Session API → FastAPI app: HTTP
- Evidence API → FastAPI app: HTTP
- FastAPI app → Verification routes: mounts
- FastAPI app → Evidence routes: mounts
- FastAPI app → Tractor routes: mounts
- Verification routes → Session service: handles requests
- Session service → Challenge generator: generates challenge
- Session service → Session store: reads and writes
- FastAPI app → Session service: configures
- FastAPI app → Evidence service: configures
- FastAPI app → Tractor verifier: configures
- Evidence routes → Evidence service: handles requests
- Evidence service → Session service: validates session
- Evidence service → Evidence files: stores segments
- Tractor routes → Tractor verifier: handles requests
- Tractor verifier → Session service: validates session
- Tractor routes → Tractor detector: runs inference
- Tractor detector → Model weights: loads weights