Build the in-app notifications foundation, the ASHA rejection notification, and the Supervisor 2-day verification reminder as one deliverable.

XMLWordPrintable

    • Type: Story
    • Resolution: Unresolved
    • Priority: Medium
    • 2.11
    • Affects Version/s: None
    • None
    • FLW Mobile App
    • All

      User story · Persona: All app users (ASHA, ASHA Supervisor, CHO, ANM). All app users need a single place to see notifications they have received, plus the two most urgent triggers wired up (ASHA rejection feedback and the 2-day Supervisor verification reminder), so that the foundation can be validated end-to-end while the highest-priority operational gaps close on day one. 

      Ship the full Phase 1 work unit. Build the bell icon and panel, the dispatch engine, and the dispatch log, and wire two triggers (ASHA rejection and Supervisor 2-day reminder) end-to-end so the foundation is provable in production. Hardcoded copy and cadence; no deeplinks; in-app only.

      • Foundation UI (bell and panel): Bell icon in the app header, top-right, beside the existing language toggle. Unread-count badge updates on read, dismiss, or clear. Tapping the bell opens the Notification panel listing every notification for the logged-in user in reverse-chronological order, with title, short message, timestamp, and read or unread state per row. Empty state ("No notifications yet") when there are none.
      • Foundation interactions: Tap to mark-as-read (persists across sessions). Swipe-to-dismiss removes the row from the panel. "Clear notifications" button pinned at the bottom of the panel; on confirm, soft-clears every notification for the logged-in user. The dispatch log records are not deleted.
      • Foundation dispatch engine and logging: Single dispatch service that recipient-specific triggers call. Service takes recipient ID, recipient role, event type, title, and body. Notifications are scoped to the logged-in user (a Supervisor must never see another Supervisor's notifications, and similarly for ASHA, CHO, and ANM). Persist every dispatch (event type, recipient ID and role, channel = in-app, timestamp, delivery status) and every user interaction (viewed, dismissed, cleared) in the notification log. No attribution linkage yet.
      • Trigger A · ASHA rejection notification: Fires once per ASHA-month rejection event, the moment any ASHA Supervisor, CHO, or ANM submits a Reject action. Title: "Your monthly claim was rejected". Body: month-year plus selected rejection reasons; full remarks included (or truncated with full text shown on open). Payload carries the chosen reasons (one or more from the 8-reason set) and remarks (mandatory when the reason is Other). In-app only. Event type: "ASHA Claim Rejected". No deeplink in Phase 1; resubmission still happens via existing ASHA app navigation.
      • Trigger B · Supervisor 2-day verification reminder: For each ASHA-month claim submitted by an ASHA, schedule a reminder for the mapped Supervisor 2 days after the ASHA's submission timestamp. If the Supervisor verifies or rejects before the 2 days elapse, cancel the scheduled reminder. After the initial reminder fires, if the ASHA-month is still Pending with Supervisor, repeat every 2 days until the Supervisor verifies or rejects, or the configured Supervisor verification cut-off elapses (auto-routing then takes over). Title: "Pending verifications for <Month YYYY>". Body: consolidated count of ASHAs and activities pending verification (one consolidated reminder per cycle, not one per ASHA). In-app only. Event type: "Supervisor Verification Reminder". No deeplink in Phase 1.
      • Affected modules: FLW Android app (header bell icon, notification panel). Notification service (dispatch engine, scheduler, two event handlers). Notification log datastore. ASHA-month Reject API (calls dispatch on success).

              Assignee:
              Nikhil Ananda Fegade
              Reporter:
              Ritam Dubey
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: