How maximejolivet/pomodoro-accessibility works
Pomodoro Accessibilité is a visual timer for neurodivergent users, available as an Angular/Capacitor app. The main workflow is to choose a timer mode or routine, control a countdown, receive milestone and completion cues, and review focus history and goals. The session service coordinates timer state and session progression; supporting layers provide persistence, preferences, localization, and device alerts. The README documents accessibility options and native-platform support. Some UI wiring and widget behavior are not shown in the sampled source, so uncertain connections are omitted.
Main entry points: session.service.ts Session coordinator · timer-page.component.ts Timer page · settings-sheet.component.ts Settings sheet · app.component.ts App shell
Components 28
App shell
- App shell
src/app/app.component.ts - App routes
src/app/app.routes.ts - Accessibility page
src/app/features/accessibility/accessibility-page.component.ts
Timer workflow
- Timer page
src/app/features/timer/timer-page.component.ts - Timer dial
src/app/features/timer/dial/timer-dial.component.ts - Timer controls
src/app/features/timer/controls/timer-controls.component.ts - Settings sheet
src/app/features/timer/sheet/settings-sheet.component.ts - Mode settings
src/app/features/timer/sheet/modes-tab.component.ts - Routine panel
src/app/features/timer/sheet/routines-panel.component.ts - Stats panel
src/app/features/timer/sheet/stats-tab.component.ts - Session coordinator
src/app/core/services/session.service.ts - Countdown engine
src/app/core/services/timer.service.ts - Timer modes
src/app/core/services/preset.service.ts - Routine data
src/app/core/services/routine.service.ts
Preferences and support
- History and goals
src/app/core/services/history.service.ts - Preferences
src/app/core/services/preferences.service.ts - Local storage helper
src/app/core/helpers/storage.ts - Localization
src/app/core/i18n/i18n.service.ts
Native integrations
- Local notifications
src/app/core/services/notification.service.ts - Sound cues
src/app/core/services/sound.service.ts - Haptic cues
src/app/core/services/haptics.service.ts - Spoken cues
src/app/core/services/speech.service.ts - Widget service
src/app/core/services/widget.service.ts - iOS widget bridge
ios/App/App/WidgetBridgePlugin.swift - Pomodoro widget
ios/App/PomodoroWidget/PomodoroWidget.swift
Other components
- Timer user
- Device platform
- Browser storage
Connections 31
- Timer user → App shell: opens
- App shell → App routes: hosts routes
- App routes → Timer page: loads
- App routes → Accessibility page: loads
- Timer user → Timer page: uses
- Timer page → Session coordinator: controls
- Timer page → Timer dial: renders
- Timer page → Timer controls: renders
- Timer page → Settings sheet: opens
- Settings sheet → Mode settings: shows
- Settings sheet → Routine panel: shows
- Settings sheet → Stats panel: shows
- Session coordinator → Countdown engine: controls
- Session coordinator → History and goals: records sessions
- Session coordinator → Timer modes: selects modes
- Session coordinator → Routine data: loads routines
- Session coordinator → Preferences: reads settings
- Session coordinator → Local notifications: schedules alerts
- Session coordinator → Sound cues: plays cues
- Session coordinator → Haptic cues: plays cues
- Session coordinator → Spoken cues: announces states
- History and goals → Local storage helper: persists history
- Preferences → Local storage helper: persists settings
- Localization → Local storage helper: reads language
- App shell → Preferences: applies theme
- Session coordinator → Localization: gets messages
- Local notifications → Device platform: uses native alerts
- Sound cues → Device platform: uses audio
- Haptic cues → Device platform: uses vibration
- Spoken cues → Device platform: uses speech
- iOS widget bridge → Pomodoro widget: bridges widget