Goal
Expand OnTime analytics beyond the initial preference flow and schedule_created event, while preserving the current privacy boundaries and opt-out behavior.
Scope
- Add event schema validation for all Product Usage Events.
- Add milestone event coverage for core product workflows.
- Add analytics QA/debug tooling for release verification.
- Define dashboard metrics that answer product questions.
- Prepare future experimentation only after a concrete experiment is approved.
Tasks
Privacy Requirements
- Do not collect email, display name, OAuth ID, FCM token, access token, refresh token, schedule names, schedule notes, place names, preparation step names, request bodies, response bodies, raw exception strings, stack traces, or free text.
- Do not add automatic screen tracking.
- Do not add marketing or personalization events without separate approval.
- Keep analytics disabled when preference state is unknown or load failed.
Validation
flutter analyze
- Focused tests for event catalog validation.
- Focused BLoC/Cubit tests for each new event.
- Focused tests proving analytics failures do not fail user workflows.
- My Page preference regression tests.
flutter test
Done
- All new events are documented in
docs/Analytics-Event-Catalog.md.
- Every emitted event has a behavior test at the owning workflow boundary.
- Invalid event names and invalid parameters are rejected or dropped before reaching Firebase.
- Analytics collection still respects build gate and confirmed user preference.
- QA/debug instructions exist for verifying event emission.
Goal
Expand OnTime analytics beyond the initial preference flow and
schedule_createdevent, while preserving the current privacy boundaries and opt-out behavior.Scope
Tasks
Add event catalog validation in
TrackProductUsageEventUseCase.schema_version,workflow,result,platform,app_version.Expand schedule workflow events.
schedule_create_startedwhen the create form initializes.schedule_updatedafter schedule update succeeds.schedule_deletedafter deletion succeeds at a stable BLoC or use-case boundary.Expand onboarding and auth events.
onboarding_completedafter onboarding succeeds.sign_up_completedafter successful sign-up.login_completedafter successful sign-in.Expand notification and alarm events.
notification_permission_resultafter the permission flow resolves.alarm_openedwhen an alarm launch payload opens a schedule route.alarm_failedonly with stable, allowlisted error categories.schedule_finishedafter schedule finish succeeds.Add analytics preference event coverage.
analytics_preference_changedonly after a preference update succeeds.Add analytics QA/debug support.
Define dashboards and product questions.
Prepare experimentation only when approved.
Privacy Requirements
Validation
flutter analyzeflutter testDone
docs/Analytics-Event-Catalog.md.