medium complexity extracted Notes Confidence: 100%
16
Components
2
Shared
0
User Stories
Yes
Analyzed

Description

Notes consolidates list browsing, searching, viewing, creating, and editing of personal and contact-linked notes into a single coherent feature for peer mentors and coordinators. Users can capture observations from conversations, home visits, and follow-ups with structured editing, link notes to specific contacts, and quickly retrieve them through search and filtering. The feature supports offline-first capture with background sync, ensuring notes written in the field are never lost even on unreliable connections.

Sources & reasoning

Blueprint explicitly merges notes-list + note-editor into a single 'Notes' feature under the Notes area. Matrix rows in §4 mark notes and basic search across notes as universal needs. Target_release set to 'Core Product' since §4 places Notes in Phase 2 (NICE) and the area is not in the MVP always-on set in §5.

  • docs/source/likeperson.md · line 112-113
    | Basic search (contact og notater) | âś“ | âś“ | âś“ | âś“ | âś“ | MUST | 1 | | Notater | âś“ | âś“ | âś“ | âś“ | âś“ | NICE | 2 |
  • | notes | Notes | Notes List, Note Editor |
  • docs/source/likeperson.md · line 227-228
    Offline-first persistence (Drift + SQLCipher encrypted local DB, mutation outbox, sync queue with retry/backoff, ID mapping for offline-created entities, conflict resolver)

Analysis

Business Value

Notes give peer mentors and coordinators a lightweight place to record context that does not fit into structured activity registration - observations, follow-up reminders, conversation snippets - which is essential for sustained, person-centered support. Across all four workshop organizations, search and notes were marked as universal needs (matrix rows in §4), confirming that ad-hoc capture is core to the peer mentor workflow rather than an org-specific extra. By bundling list, search, and editor into one feature, the platform delivers a familiar notes experience with minimal cognitive load, supports continuity across shift handovers, and reduces the risk of important context being lost between coordinators and mentors when cases evolve over time.

Implementation Notes

Implemented in Flutter using Riverpod for state and Drift + SQLCipher for encrypted offline storage, with a mutation outbox pushing creates and edits through the shared Next.js REST API. Notes are persisted in the `notes` table linked to `users` and optionally to `contacts`, supporting both personal and contact-bound notes; the query service powers list pagination and basic full-text search across title and body. The editor screen reuses AppTextField primitives and design tokens to meet WCAG 2.2 AA (touch targets, contrast, screen reader labels). Optimistic mutations with rollback keep the list responsive offline, and conflict resolution defers to last-write-wins on the server with audit logging via the shared `audit_logs` table.

Quality Assurance

Peer Mentor (primary) · Coordinator (same flow)
1
Scenarios
7
UAT Steps
19
A11y Annotations
3
Role Boundaries
Peer Mentor (Likeperson)

Peer Mentor (Likeperson)

Quick UAT

  1. Logg inn i Meander-mobilappen som Likeperson og naviger til Notater fra hovedmenyen.
  2. Bekreft at notatlisten viser kun dine egne notater i omvendt kronologisk rekkefølge.
  3. Skriv et søkeord i søkefeltet og bekreft at listen filtreres til notater som inneholder ordet.
  4. Trykk 'Nytt notat', skriv inn fri tekst, knytt notatet til en valgfri kontakt, og trykk 'Lagre'.
  5. Bekreft at det nye notatet vises øverst i listen med riktig tidsstempel og kontaktkobling.
  6. Ă…pne notatet, trykk 'Rediger', endre teksten og lagre pĂĄ nytt; bekreft at oppdatert tidsstempel vises.
  7. Ă…pne notatet igjen, trykk 'Slett' og bekreft sletting; notatet skal forsvinne fra listen.

Quick UAT — Accessibility

  1. Logg inn i Meander-mobilappen som Likeperson og naviger til Notater fra hovedmenyen.
    • Screen reader VoiceOver/TalkBack annonserer 'Notater, fane' og sideoverskrift nĂĄr skjermen ĂĄpnes.
    • Keyboard / focus Notater-fanen nĂĄs via tab/swipe-navigasjon i bunnmeny.
    • Touch target Notater-faneknapp er minst 24x24 CSS-piksler.
  2. Bekreft at notatlisten viser kun dine egne notater i omvendt kronologisk rekkefølge.
    • Screen reader Hvert listeelement annonseres med tittel/utdrag og dato.
    • Focus visibility Synlig fokusring pĂĄ hvert listeelement ved tastatur- eller svitsj-navigasjon.
    • Zoom Listen forblir brukbar ved 200% zoom uten horisontal scrolling.
  3. Skriv et søkeord i søkefeltet og bekreft at listen filtreres til notater som inneholder ordet.
    • Screen reader Søkefeltet har label 'Søk i notater'; resultattall annonseres.
    • Keyboard / focus Søkefeltet nĂĄs med Tab; Esc tømmer feltet.
    • Live region 'X notater funnet' annonseres polite nĂĄr filteret oppdateres.
  4. Trykk 'Nytt notat', skriv inn fri tekst, knytt notatet til en valgfri kontakt, og trykk 'Lagre'.
    • Screen reader Tekstfeltet har label 'Notattekst, obligatorisk'; kontaktvelger har label 'Knytt til kontakt, valgfri'.
    • Focus visibility Fokus flyttes til tekstfeltet ved ĂĄpning av editoren; Lagre-knappen har synlig fokusring.
    • Touch target Lagre- og Kontakt-velger-knapper er minst 24x24 CSS-piksler.
  5. Bekreft at det nye notatet vises øverst i listen med riktig tidsstempel og kontaktkobling.
    • Screen reader Tidsstempel og kontaktnavn leses som del av listeelementet.
    • Live region 'Notat lagret' annonseres polite etter lagring.
  6. Ă…pne notatet, trykk 'Rediger', endre teksten og lagre pĂĄ nytt; bekreft at oppdatert tidsstempel vises.
    • Focus visibility Fokus flyttes tilbake til tekstfeltet i redigeringsmodus.
    • Live region 'Notat oppdatert' annonseres polite etter lagring.
  7. Ă…pne notatet igjen, trykk 'Slett' og bekreft sletting; notatet skal forsvinne fra listen.
    • Focus visibility Bekreftelsesdialog ĂĄpnes; fokus settes pĂĄ 'Avbryt' som standard for ĂĄ hindre utilsiktet sletting.
    • Live region 'Notat slettet' annonseres polite etter bekreftelse.
    • Contrast Slett-knapp har minst 4.5:1 kontrast og kommuniserer handlingen med bĂĄde ikon og tekst — ikke kun farge.

Role Boundaries

3 role(s) must NOT access this feature
  • Organization Administrator

    Org Admin logger ikke inn pĂĄ mobilappen som admin-rolle; Notater-fanen er ikke tilgjengelig i Admin Web Portal. Det finnes ingen admin-visning av andre brukeres notater.

  • Global Administrator

    Global Admin har kun tilgang til Admin Web Portal og ser ikke Notater-funksjonen. Direkte kall mot Notes-API uten gyldig peer-mentor- eller coordinator-rolle returnerer 403.

  • Prospective Buyer

    Prospektiv kjøper er uautentisert på sales-website; Notater-funksjonen er ikke eksponert. Direkte API-kall returnerer 401.

Expected End State

Notatet er opprettet, redigert og slettet av eieren alene. Notater er synlige kun for den autentiserte brukeren som eier dem, søkbare i egen liste, og - der relevant - knyttet til en kontakt uten kryss-lekkasje mellom brukere eller roller.

User Stories

No user stories have been generated for this feature yet.