How sauti-yetu/sightra works
Sightra is an assistive Django web application for blind and low-vision users. Its principal workflow sends a browser camera frame to the navigation stream, runs object detection and hazard prioritization, generates safety-first Gemini narration, and returns audio feedback. Separate product branches provide image reading, account authentication, maps, volunteer connection, settings, privacy/legal controls, and PWA support. Some links are supported by the README rather than sampled implementation; those are cited as documented relationships.
Main entry points: urls.py Django URL routing · views.py Navigation stream · vision/tasks.py Frame pipeline · core/tasks.py Frame narration
Components 24
Access and accounts
- Auth flows
sightra/apps/accounts/views.py - Session service
sightra/apps/accounts/services/session_service.py
Scene assistance
- Navigation stream
sightra/apps/navigation/views.py - Frame pipeline
sightra/apps/vision/tasks.py - YOLO detection
sightra/apps/vision/services.py - Hazard prioritization
sightra/apps/vision/priorities.py - Frame narration
sightra/apps/core/tasks.py - Gemini analysis
sightra/apps/core/services.py - Speech feedback
sightra/apps/audio/services.py - Reader endpoint
sightra/apps/vision/views.py - Image reader
sightra/apps/vision/reader_service.py
Companion features
- Live map
sightra/apps/navigation/views.py - Volunteer connect
sightra/apps/volunteer/views.py
Privacy and settings
- User settings
sightra/apps/settings/views.py - Privacy and legal
sightra/apps/privacy/views.py - Consent service
sightra/apps/privacy/services/consent_service.py - Privacy profiles
sightra/apps/privacy/models.py - Policy content
sightra/apps/privacy/content/policies.py
Web experience
- Django URL routing
sightra/sightra/urls.py - PWA assets
sightra/static/js/sw.js
Other components
- Blind or low-vision user
- Browser camera
- Supabase auth API
- Google Gemini
Connections 25
- Blind or low-vision user → Browser camera: uses camera
README.md - Browser camera → Navigation stream: posts frame
README.md - Navigation stream → Frame pipeline: processes frame
sightra/apps/navigation/views.py - Frame pipeline → YOLO detection: detects objects
sightra/apps/vision/tasks.py - YOLO detection → Hazard prioritization: ranks detections
sightra/apps/vision/services.py - Frame pipeline → Hazard prioritization: builds hazard cues
sightra/apps/vision/tasks.py - Navigation stream → Frame narration: requests analysis
sightra/apps/navigation/views.py - Frame narration → Frame pipeline: runs vision first
sightra/apps/core/tasks.py - Frame narration → Gemini analysis: analyzes scene
sightra/apps/core/tasks.py - Gemini analysis → Google Gemini: generates narration
- Navigation stream → Speech feedback: returns audio feedback
README.md - Reader endpoint → Image reader: analyzes image
sightra/apps/vision/views.py - Image reader → Google Gemini: reads image
- Blind or low-vision user → Django URL routing: opens features
sightra/sightra/urls.py - Django URL routing → Auth flows: routes auth
sightra/sightra/urls.py - Auth flows → Session service: sets session
sightra/apps/accounts/views.py - Session service → Supabase auth API: refreshes tokens
sightra/apps/accounts/services/session_service.py - Django URL routing → Live map: routes map
sightra/sightra/urls.py - Django URL routing → Volunteer connect: routes connect
sightra/sightra/urls.py - Django URL routing → User settings: routes settings
sightra/sightra/urls.py - Django URL routing → Privacy and legal: routes legal
sightra/sightra/urls.py - Privacy and legal → Consent service: checks consent
sightra/apps/privacy/views.py - Consent service → Privacy profiles: reads and writes
sightra/apps/privacy/services/consent_service.py - Privacy and legal → Policy content: serves policies
sightra/apps/privacy/views.py - Django URL routing → PWA assets: serves PWA
sightra/sightra/urls.py