How reaalsatyam/whistleblower works
WhistleBlower collects reports through web and Android clients, supports administrative review and status tracking, and provides an image/video AI analysis service. A separate backend route module implements IPFS upload and blockchain verification. The README also describes audio detection, but the sampled service has audio dispatch commented out; model and Android wiring is not fully evidenced here, so uncertain connections are omitted. The web report store is local JSON and uploaded files, not the relational database described as a scalability consideration.
Main entry points: server.js Report API · AdminDashboard.jsx Admin dashboard · app.py Evidence AI API · routes.js Evidence routes
Components 22
Web reporting
- Report form
WebApp/frontend/src/components/ReportForm.jsx - Report API
WebApp/backend/server.js - Local report store
WebApp/backend/server.js
Review and tracking
- Admin dashboard
WebApp/frontend/src/components/AdminDashboard.jsx - Status lookup
WebApp/frontend/src/pages/Status.jsx - Admin login
WebApp/frontend/src/components/AdminLogin.jsx - AI review controls
WebApp/frontend/src/components/AdminDashboard.jsx
Evidence analysis
- Evidence AI API
WebApp/evidence_service/app.py - Image detector
WebApp/evidence_service/models/image_detector.py - Video detector
WebApp/evidence_service/models/video_detector.py - Audio detector
WebApp/evidence_service/models/audio_detector.py
Decentralized logging
- Evidence routes
WebApp/backend/routes.js - IPFS uploader
WebApp/backend/ipfs.js - Chain access
WebApp/backend/blockchain.js - Registry contract
WebApp/backend/contracts/Whistleblower.sol
Android client
- Mobile app
AndroidApp/app/src/main/java/com/example/whistleblower/MainActivity.java - Mobile API clients
AndroidApp/app/src/main/java/com/example/whistleblower/api - Mobile administration
AndroidApp/app/src/main/java/com/example/whistleblower/AdminDashboardActivity.java
Other components
- Report submitter
- Administrator
- IPFS network
- EVM network
Connections 18
- Report submitter → Report form: submits to
- Report form → Report API: posts report
- Report API → Local report store: persists reports
- Administrator → Admin dashboard: reviews reports
- Admin dashboard → Report API: loads reports
- Admin dashboard → Report API: updates status
- Report submitter → Status lookup: checks status
- Status lookup → Report API: requests status
- Admin dashboard → Report API: fetches evidence
- Admin dashboard → AI review controls: starts analysis
- AI review controls → Evidence AI API: posts media
- Evidence AI API → Image detector: dispatches images
- Evidence AI API → Video detector: dispatches videos
- Evidence routes → IPFS uploader: uploads file
- Evidence routes → Chain access: records hash
- IPFS uploader → IPFS network: stores evidence
- Chain access → EVM network: calls registry
- EVM network → Registry contract: executes