User Interface medium complexity mobile
1
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

Adaptation of the standard activity wizard that visibly indicates the coordinator is recording on behalf of another person. Displays a persistent 'Recording as: [Peer Mentor Name]' banner throughout the wizard steps and passes the attributed actor's ID alongside the coordinator's recorder ID when submitting.

Feature: Bulk & Proxy Registration

proxy-activity-wizard

Summaries

The Proxy Activity Wizard closes a critical data completeness gap by empowering coordinators to record peer mentor participation when mentors cannot do so themselves — whether due to limited device access, low digital literacy, or time constraints. Without this capability, legitimate program activity goes unrecorded, directly undermining outcome metrics reported to funders and program leadership. By capturing these activities under the coordinator's recorder identity while attributing them to the correct peer mentor, the organization protects grant compliance, strengthens audit trails, and ensures that the full scope of program engagement is accurately reflected in reporting dashboards. The persistent attribution banner is a deliberate design safeguard that makes proxy recording transparent and accountable, reducing the risk of data disputes or misattribution claims.

This component extends program reach without adding administrative overhead, making it a cost-effective mechanism for improving data fidelity across the entire peer mentor network.

The Proxy Activity Wizard carries medium development complexity, but risk is meaningfully reduced by its dependency on the existing activity-wizard-core component, which provides the standard multi-step wizard flow. The primary development effort involves layering the proxy attribution banner — a persistent UI element that must remain visible across all wizard steps — and modifying the payload construction to include both the coordinator's recorder ID and the attributed peer mentor's ID. The component is scoped exclusively to mobile execution contexts, so cross-platform concerns are minimal. The main scheduling risk is coordination with the proxy-registration-service team, as submission logic depends on that service being stable and integrated.

QA must cover scenarios where mentor IDs are invalid or missing, attribution banners render correctly on small screen sizes, and submission payloads contain both IDs under all form state combinations. Regression testing against activity-wizard-core is essential to confirm that proxy-specific changes do not degrade standard wizard behavior.

The Proxy Activity Wizard is a mobile-scoped UI component that extends activity-wizard-core by injecting proxy-specific behavior at two key points: the display layer and the submission payload. Initialization via initializeWithMentor(mentorId, coordinatorId) establishes the proxy session context, which displayAttributionBanner(mentorName) then surfaces as a persistent banner rendered at a fixed position above the standard wizard steps throughout navigation. The core wizard steps — type, date, time, duration, summary — are consumed directly from activity-wizard-core without modification, keeping the component's own surface area small. buildActivityPayload(formData, mentorId, coordinatorId) is the critical integration point: it augments the standard activity form data with both recorded_by_user_id (coordinator) and peer_mentor_id (attributed actor) before handing off to submitProxyActivity(payload), which delegates to proxy-registration-service.

Error handling via handleValidationError(error) must distinguish between field-level validation failures and proxy-specific authorization errors. State management must ensure mentorId and coordinatorId persist across wizard step navigation without re-initialization. When evolving this component, avoid duplicating wizard step logic from activity-wizard-core — all changes to shared step behavior should propagate from the core dependency.

Responsibilities

  • Display persistent proxy attribution banner showing attributed peer mentor name
  • Reuse standard activity wizard steps (type, date, time, duration, summary)
  • Inject recorded_by_user_id (coordinator) and peer_mentor_id (attributed actor) into submission payload

Interfaces

initializeWithMentor(mentorId, coordinatorId)
displayAttributionBanner(mentorName)
buildActivityPayload(formData, mentorId, coordinatorId)
submitProxyActivity(payload)
navigateWizardStep(step)
handleValidationError(error)

Relationships

Dependencies (1)

Components this component depends on