How samogdovin193-dotcom/hearing-screening-app works
This is a browser-based Slovak/Romani hearing-screening and speech-audiometry app. Users choose language and speaker/headphone listening mode, calibrate as needed, run a randomized picture-card word test, then review thresholds, answers, and calibration comparison. Settings manage per-language volume, selected words, and custom word media. The README documents these capabilities; unsampled page implementations are represented at their listed paths, so uncertain call-level wiring is omitted.
Main entry points: App.tsx Route application · Settings.tsx Settings · ActiveTest.tsx Active test · testWords.ts Test-word selection
Components 20
Navigation
- Route application
src/App.tsx - Home
src/pages/Home.tsx - Test mode choice
src/pages/TestSelection.tsx - Ear choice
src/pages/TestEarSelection.tsx - Instructions
src/pages/Manual.tsx
Screening test
- Test setup
src/pages/StartGame.tsx - Active test
src/pages/ActiveTest.tsx - Test-flow state
src/hooks/useTestFlow.ts - Test finish
src/pages/Finish.tsx - Results analysis
src/pages/Results.tsx
Calibration
- Calibration screen
src/pages/Calibration.tsx - Calibration operations
src/hooks/useCalibration.ts
Words and settings
- Settings
src/pages/Settings.tsx - Test-word selection
src/lib/testWords.ts - Romani media
public/assets/rom - Slovak media
public/assets/sk
Local persistence
- Custom-word records
src/lib/wordsDB.ts - Calibration records
src/lib/db.ts - Browser storage
Other components
- Participant
Connections 33
- Participant → Route application: opens
- Route application → Home: routes
- Route application → Test mode choice: routes
- Route application → Ear choice: routes
- Route application → Instructions: routes
- Route application → Calibration screen: routes
- Route application → Test setup: routes
- Route application → Active test: routes
- Route application → Test finish: routes
- Route application → Results analysis: routes
- Route application → Settings: routes
- Participant → Home: chooses language
- Participant → Test mode choice: selects mode
- Participant → Ear choice: selects ear
- Participant → Settings: configures
- Participant → Calibration screen: calibrates
- Participant → Active test: answers cards
- Test setup → Active test: begins test
- Active test → Test-flow state: uses test state
- Test-flow state → Test-word selection: loads selected words
- Test-word selection → Custom-word records: loads custom words
- Test-word selection → Slovak media: uses Slovak media
- Test-word selection → Romani media: uses Romani media
- Test-flow state → Browser storage: reads volume settings
- Active test → Test finish: ends rounds
- Test finish → Results analysis: continues to results
- Results analysis → Browser storage: reads saved result
- Results analysis → Calibration records: reads comparison data
- Calibration screen → Calibration operations: manages calibration
- Calibration operations → Calibration records: reads and writes
- Settings → Custom-word records: manages custom words
- Settings → Calibration records: clears calibration
- Settings → Browser storage: stores settings