Project Requirements

Executive Summary

Social workers need a secure, offline-friendly way to capture client interviews and complete required documentation efficiently without slowing down field work. FieldNotes AI provides an AI-assisted mobile and web platform that records and transcribes interviews on-device, summarizes key points, and automatically populates agency forms through a secure, streamlined workflow. The primary users are frontline social workers and field practitioners, with supervisors and administrators supported in future versions. The app is used during or immediately after client meetings to capture recordings, notes, and forms offline, with all data encrypted locally and synchronized to a secure Microsoft Azure-hosted backend for storage, compliance, and audit logging. By automating documentation while ensuring FOIP, HIA, and PIPA compliance, the system improves efficiency, accuracy, and client care.

Project Glossary

  • Administrator - An agency staff member who manages users, templates, and submitted case documentation.

  • Case - A collection of all information related to a single client interaction, including recordings, notes, transcripts, and completed forms.

  • Client - An individual receiving services from a social worker whose information is documented in the system.

  • Consent - Permission recorded from a client allowing the practitioner to capture and store interview information.

  • Data Upload - The process of sending locally saved information to the central system once internet connectivity becomes available.

  • Form - A structured digital document used to record case details and meet agency reporting requirements.

  • Form Template - A predefined version of a form that standardizes how information is collected across cases.

  • Connection Status - A real-time indicator showing whether the application has internet connectivity, with status messages informing users when WiFi or internet connection is unavailable.

  • Practitioner - A frontline social worker who conducts interviews and documents client information using the application.

  • Recording Session - An audio capture of a client interview that can later be reviewed and transcribed.

  • Summary (AI Summary) - A brief overview of important points automatically generated using AI from an interview transcript to help practitioners complete documentation faster.

  • Transcript - The text version of a recorded interview used for review and editing.

User Stories

US-01.01 - Secure Login as Practitioner

As a practitioner, I want to log in securely, so that only authorized staff can access client data.

Acceptance Tests

  1. Practitioner can see email and password to log in
  2. Practitioner with correct credentials is granted access
  3. Practitioner with incorrect credentials sees an error message
  4. Practitioner is kept logged in after successful login
  5. Practitioner is redirected to their dashboard after successful logi

US-01.02 - Secure Logout as Practitioner

As a practitioner, I want to log out securely, so that my session ends and my data remains protected.

Acceptance Tests

  1. Practitioner can see and use a logout button
  2. Practitioner is returned to the login screen after logging out

US-01.03 - Reset Password

As a practitioner, I want to reset my password, so that I can regain access if I forget it.

Acceptance Tests

  1. "Forgot password" option is available on the login screen
  2. A time-limited reset link is sent to the user's email
  3. User can set a new password using the link
  4. User can sign in with the new password

US-01.04 - Admin Create Practitioner

As an administrator, I want to create practitioner accounts using their work email, so that approved staff can access the system as practitioners.

Acceptance Tests

  1. Admin can open a user-creation form for practitioners
  2. Form accepts a work email and required contact fields
  3. A practitioner account is created and marked with the practitioner role
  4. The new practitioner sees appropriate practitioner access when they first log in

US-01.05 - Admin Create Admin

As an administrator, I want to create other administrator accounts, so that agency administrators can manage users and configuration.

Acceptance Tests

  1. Admin can open a user-creation form for administrators
  2. Form accepts an admin work email and required fields
  3. A new account is created and assigned the admin role
  4. The new admin sees appropriate admin access when they first log in

US-01.06 - Secure Login as Admin

As an administrator, I want to log in securely to the admin console, so that only authorized admins can access management features.

Acceptance Tests

  1. Admin can see email and password to log in
  2. Admin with correct credentials is granted access to admin dashboard
  3. Admin with incorrect credentials sees an error message

US-01.07 - Secure Logout as Admin

As an administrator, I want to log out of the admin console, so that my admin session ends and management features are protected.

Acceptance Tests

  1. Admin can see and use a logout button in the header
  2. Admin is returned to the login screen after logging out

US-01.08 - Role-Based Access

As an administrator, I want roles assigned to users, so that permissions are controlled.

Acceptance Tests

  1. Each user has an assigned role (admin or practitioner)
  2. Admin-only areas are accessible only to users with the admin role
  3. Practitioners cannot access admin features

US-01.09 - Admin Delete Practitioner

As an administrator, I want to delete practitioner accounts, so that I can remove staff who are no longer with the agency.

Acceptance Tests

  1. Admin can select a practitioner and choose to delete their account
  2. A confirmation prompt warns about permanent deletion and shows assigned cases
  3. Warning message informs admin that deleting practitioner with active assignments will unassign them from all cases
  4. Deleted practitioners can no longer log in and don't appear in user lists

US-02.01 - View Assigned Cases

As a practitioner, I want to see my assigned cases, so that I can quickly select which case I am working on.

Acceptance Tests

  1. Client list displays on practitioner dashboard
  2. Only shows cases assigned to logged-in practitioner
  3. Displays basic info (name, case ID)

US-02.02 - Edit Client Profile

As a practitioner, I want to update client information, so that records stay accurate.

Acceptance Tests

  1. Edit button on client profile
  2. Can update editable fields (contact info)
  3. Changes save to database
  4. Success message shown

US-02.03 - View Client Profile

As a practitioner, I want to view client details, so that I understand the client's history before a session.

Acceptance Tests

  1. Client info displayed
  2. Shows past sessions/notes
  3. Read-only
  4. Available offline

US-02.04 - Admin Create Case

As an administrator, I want to create a new case, so that client work can be organized and tracked.

Acceptance Tests

  1. Admin can open case creation form
  2. Admin can enter case details
  3. Case saves to database
  4. Appears in case list immediately

US-02.05 - Admin Assign Practitioners

As an administrator, I want to assign practitioners to a case, so that they can work on it.

Acceptance Tests

  1. Admin can select a case to manage assignments
  2. Admin can assign and unassign practitioners to the case
  3. Assignments are saved and visible to admins
  4. Assigned practitioners see the case in their client/case list

US-02.06 - Search Clients

As a practitioner, I want to search my assigned clients by name, case ID, or keywords, so that I can quickly find the client I need while in the field.

Acceptance Tests

  1. Search bar present at the top of the client list
  2. Search by client name, case ID
  3. Results update as the user types

US-02.07 - View Case Overview

As a practitioner, I want to open a case and view its overview page, so that I can see the case details and associated sessions in one place.

Acceptance Tests

  1. Given I am logged in and viewing my assigned cases, when I click on a case, then I am navigated to that case’s overview page.
  2. Given I am on a case overview page, when the page loads, then the case details are displayed.
  3. Given recordings exist for the case, when the overview page loads, then all sessions (recordings) associated with that case are displayed.
  4. Given no recordings exist for the case, when the overview page loads, then a “No sessions available” message is shown.

US-02.08 - Filter Clients

As a practitioner, I want to filter my assigned clients by date, status, or location, so that I can narrow the client list to a manageable set.

Acceptance Tests

  1. Filter options available on the client list
  2. Applying filters updates the client list correctly
  3. A "Clear filters" action resets client filters

US-02.09 - Search Cases

As a practitioner, I want to search cases by case ID, client name, or keywords, so that I can quickly locate the case I need while working in the field.

Acceptance Tests

  1. Search bar present at the top of the case list
  2. Search by case ID, client name
  3. Results update as the user types

US-02.10 - Filter Cases

As a practitioner, I want to filter cases by date, status, location, or assigned practitioner, so that I can narrow the case list to relevant items.

Acceptance Tests

  1. Filter options available on the case list
  2. Applying filters updates the case list correctly
  3. A "Clear filters" action resets case filters

US-02.11 - Admin Create Client

As an administrator, I want to create a new client, so that their information can be stored and associated with cases.

Acceptance Tests

  1. Admin can open client creation form
  2. Admin can enter client details
  3. Client saves to database
  4. Appears in client list immediately

US-02.12 - Admin Delete Case

As an administrator, I want to delete cases, so that I can remove outdated or incorrectly created cases from the system.

Acceptance Tests

  1. Admin can select a case and choose to delete it
  2. A confirmation prompt warns about permanent deletion
  3. All associated data (recordings, notes, forms) is permanently removed
  4. Deleted cases no longer appear in case lists or searches

US-02.13 - Admin Delete Client

As an administrator, I want to delete client records, so that I can remove clients who are no longer receiving services or were created in error.

Acceptance Tests

  1. Admin can select a client and choose to delete them
  2. A confirmation prompt warns about permanent deletion and shows associated cases
  3. Warning message informs admin that deleting client with active cases will also delete all associated case data
  4. Deleted clients no longer appear in client lists or searches

As a practitioner, I want to record client consent before recording, so that privacy requirements are met.

Acceptance Tests

  1. Consent prompt appears before starting a recording
  2. Recording cannot start until consent is given
  3. The consent choice and time are recorded and viewable

As a practitioner, I want to see past consent records, so that compliance is clear.

Acceptance Tests

  1. Consent history is accessible from the case or session view
  2. Each entry shows date, time, and consent status
  3. Consent entries are linked to the related session

US-04.01 - Record and Save Session

As a practitioner, I want to record and save an audio recording, so that client conversations are captured accurately and stored for later documentation.

Acceptance Tests

  1. Practitioner can start a recording with a single action
  2. Practitioner can stop a recording with a single action
  3. The recording is saved on the device
  4. The recording is associated with the client/case
  5. Recording is safely saved when internet connection is unavailable

US-04.02 - Pause and Resume Recording

As a practitioner, I want to pause and resume a recording, so that I can temporarily stop capturing sensitive or irrelevant moments without creating multiple files.

Acceptance Tests

  1. A Pause control is available during recording
  2. Resume continues the same recording file
  3. The interface clearly indicates paused vs recording states
  4. No recorded audio is lost when pausing and resuming

US-04.03 - Playback Recording

As a practitioner, I want to replay recordings, so that I can review the session.

Acceptance Tests

  1. Saved recordings can be played from the session or case view
  2. Playback includes basic controls (play, pause, seek)

US-04.04 - Delete Recording

As a practitioner, I want to delete a recording, so that incorrect files are removed.

Acceptance Tests

  1. A delete action prompts for confirmation
  2. Deleted recordings are moved to a recoverable Trash
  3. Trashed recordings are not available in the active list
  4. Confirmation explains the restoration timeframe

US-04.05 - Restore Deleted Recording

As a practitioner, I want to restore accidentally deleted recordings from trash, so that I can recover important data before permanent deletion.

Acceptance Tests

  1. Trash is accessible from the recordings area
  2. Each trashed item shows the deletion date
  3. A Restore option returns items to the active list with their original details
  4. There is an option to permanently empty the Trash

US-04.06 - Recording Quality Check

As a practitioner, I want to see an indication of audio input during recording, so that I can confirm the microphone is capturing audio properly.

Acceptance Tests

  1. A visible indicator shows audio level during recording
  2. The audio level indicator updates in real time to reflect microphone input activity
  3. If the audio level remains very low for a sustained period during recording, the app displays a warning indicating that the microphone input may be too quiet
  4. The warning does not interrupt the recording process

US-05.01 - Take Notes

As a practitioner, I want to write notes during sessions, so that I can capture observations.

Acceptance Tests

  1. A notes editor is available on the session page
  2. Notes are saved automatically while editing
  3. Notes are accessible when connectivity is limited

US-05.02 - Edit Notes

As a practitioner, I want to edit my notes later, so that I can refine documentation.

Acceptance Tests

  1. Notes can be edited after creation
  2. Saving updates the stored note
  3. The last-edited timestamp is shown

US-05.03 - Generate Transcript

As a practitioner, I want a transcript generated automatically, so that I can read the conversation as text.

Acceptance Tests

  1. A Generate Transcript action is available after recording
  2. A transcript is produced and displayed on the session page
  3. The transcript can be saved with the session
  4. The transcript seperates each speaker in the session

US-05.04 - Highlight Transcript

As a practitioner, I want to highlight important sections, so that key details stand out.

Acceptance Tests

  1. Users can highlight selected transcript text
  2. Highlights are visually distinct and persist across views
  3. Highlights remain after reloading the session

US-05.05 - Annotate Transcript

As a practitioner, I want to add annotations to the transcript, so that I can clarify information without altering the original record.

Acceptance Tests

  1. Transcript text is read-only by default
  2. Selecting text offers an option to add an annotation
  3. Annotations are saved alongside the transcript

US-05.06 - Delete Notes

As a practitioner, I want to delete session notes, so that I can remove incorrect or unnecessary notes.

Acceptance Tests

  1. A delete action prompts for confirmation
  2. Deleted notes are moved to a recoverable Trash
  3. Trashed notes are not available in the active list
  4. Confirmation explains the restoration timeframe

US-06.01 - Generate Interview Summary

As a practitioner, I want an AI summary, so that documentation is faster.

Acceptance Tests

  1. A Generate Summary action produces a short interview summary
  2. The summary is editable by the practitioner
  3. Generated summaries are clearly labeled as generated

US-06.02 - Regenerate Summary

As a practitioner, I want to regenerate summaries, so that I can improve results.

Acceptance Tests

  1. A Regenerate option is available for existing summaries
  2. The regenerated summary replaces the previous version and is saved

US-06.03 - Export Summary and Form

As a practitioner, I want to export case data as PDF and TXT files, so that I can share records with other agencies or keep external copies.

Acceptance Tests

  1. Practitioner can select one or more types of case data to export
  2. Export options include PDF and TXT formats
  3. Exported files include all relevant data for the selected types
  4. PDF exports maintain proper formatting and are readable

US-07.01 - Upload Form Template

As an administrator, I want to upload form templates, so that my organization's forms can be used.

Acceptance Tests

  1. Admins can upload document templates
  2. Uploaded templates appear in the form selection list
  3. Templates can be selected when creating or filling a form

US-07.02 - Auto-Fill Forms

As a practitioner, I want forms pre-filled from notes and transcripts, so that typing is reduced.

Acceptance Tests

  1. Form fields can be pre-populated from session notes and transcripts
  2. Pre-filled fields remain editable by the practitioner
  3. Auto-filled fields are clearly indicated

US-07.03 - Review Form

As a practitioner, I want to review forms, so that I can verify accuracy.

Acceptance Tests

  1. A review view shows all form fields before submission
  2. Required but empty fields are highlighted for the user
  3. User can return to edit the form from the review view

US-07.04 - Submit Form

As a practitioner, I want to submit forms, so that documentation is finalized.

Acceptance Tests

  1. A Submit action is available on the review page
  2. Submission requires confirmation from the user
  3. Submitted forms are marked as submitted and show a submission time

US-07.05 - Admin Unsubmit Form

As an administrator, I want to unsubmit a practitioner's submitted form, so that they can fix mistakes and resubmit it after corrections.

Acceptance Tests

  1. Admin can view submitted forms and select to unsubmit them
  2. Unsubmitted forms return to unsubmitted/edit status for the practitioner
  3. Practitioner can edit and submit the form again

US-08.01 - Online Connection Status Check

As a practitioner, I want to see my internet connection status, so that I know when I'm connected or disconnected from WiFi/internet.

Acceptance Tests

  1. The app displays a clear status message when not connected to WiFi or internet
  2. Users are informed about features that require an internet connection when offline

US-08.02 - Conflict Resolution (Last-Write-Wins)

As a practitioner, I want sync conflicts resolved automatically using the most recent version, so that I don't lose work and syncing happens seamlessly in the background.

Acceptance Tests

  1. When simultaneous edits conflict, the system keeps the most recent change
  2. Conflict resolutions are recorded for review
  3. Users are notified when a conflict is resolved automatically

US-09.01 - Emergency SOS

As a practitioner, I want an SOS button, so that I can quickly call for help.

Acceptance Tests

  1. An SOS button is accessible from main screens
  2. A confirmation is required before placing a call
  3. The SOS action initiates a call using the device's phone app

US-09.02 - Set Emergency Contact

As a practitioner, I want to configure my emergency contact, so that alerts reach the right number.

Acceptance Tests

  1. Users can set an emergency contact from the settings page
  2. The phone number is validated for correct format
  3. The emergency contact is saved for future use

US-09.03 - Capture Location

As a practitioner, I want my location captured, so that help can find me.

Acceptance Tests

  1. The app requests location permission on first use
  2. Location is captured when a session starts
  3. Location is saved with the session record

US-09.04 - Delete Emergency Contact

As a practitioner, I want to remove my saved emergency contact, so that my SOS contact list stays accurate.

Acceptance Tests

  1. The practitioner can delete a saved emergency contact from the Emergency Contact settings screen
  2. A confirmation prompt is shown before the contact is deleted
  3. After deletion, the contact no longer appears on the screen

US-10.01 - Activity Logs

As an administrator, I want actions logged, so that compliance is met.

Acceptance Tests

  1. Key user actions (login, edit, delete) are recorded in an activity log
  2. Each log entry includes the user, action, and time
  3. Logs are available for administrative review

US-10.02 - Audit Export

As an administrator, I want to export logs, so that audits can be completed.

Acceptance Tests

  1. Admins can export activity logs in a common format
  2. Export can be filtered
  3. Exports include user, action, and timestamp fields

US-10.03 - Admin Dashboard

As an administrator, I want to access a centralized admin dashboard, so that I can manage practitioners, clients, and cases, export logs and view activity logs.

Acceptance Tests

  1. The admin dashboard is accessible only to admins
  2. Dashboard provides quick actions for common admin tasks (e.g., create case, create user)
  3. Navigation allows access to user and case management
  4. Dashboard presents the information needed for management tasks

MoSCoW

Must Have

  • US-01.01 - Secure Login as practitioner
  • US-01.02 - Secure Logout as practitioner
  • US-01.06 - Secure Login as Admin
  • US-01.07 - Secure Logout as Admin
  • US-01.04 - Admin Create Practitioner
  • US-01.05 - Admin Create Admin
  • US-01.08 - Role-Based Access
  • US-02.01 - View Assigned Cases
  • US-02.03 - View Client Profile
  • US-02.04 - Admin Create Case
  • US-02.11 - Admin Create Client
  • US-02.05 - Admin Assign Practitioners
  • US-02.07 - View Case Overview
  • US-03.01 - Record Consent
  • US-04.01 - Record and Save Session
  • US-04.02 - Pause and Resume Recording
  • US-04.03 - Playback Recording
  • US-05.01 - Take Notes
  • US-05.02 - Edit Notes
  • US-05.03 - Generate Transcript
  • US-06.01 - Generate Interview Summary
  • US-07.02 - Auto-Fill Forms
  • US-07.03 - Review Form
  • US-07.04 - Submit Form
  • US-08.01 - Connection Status Check
  • US-09.01 - Emergency SOS
  • US-09.02 - Set Emergency Contact

Should Have

  • US-01.03 - Reset Password
  • US-01.09 - Admin Delete Practitioner
  • US-02.02 - Edit Client Profile
  • US-02.12 - Admin Delete Case
  • US-02.13 - Admin Delete Client
  • US-04.04 - Delete Recording
  • US-05.04 - Highlight Transcript
  • US-05.06 - Delete Notes
  • US-06.03 - Export Summary and Form
  • US-07.01 - Upload Form Template
  • US-07.05 - Admin Unsubmit Form
  • US-08.02 - Conflict Resolution (Last-Write-Wins)
  • US-09.03 - Capture Location
  • US-09.04 - Delete Emergency Contact
  • US-10.03 - Admin Dashboard

Could Have

  • US-02.06 - Search Clients
  • US-02.08 - Filter Clients
  • US-02.09 - Search Cases
  • US-02.10 - Filter Cases
  • US-04.05 - Restore Deleted Recording
  • US-06.02 - Regenerate Summary

Would Like But Won't Get

  • US-10.01 - Activity Logs
  • US-10.02 - Audit Export
  • US-03.02 - View Consent History
  • US-04.06 - Recording Quality Check
  • US-05.05 - Annotate Transcript

Similar Products

  • FieldWorker

    • Social Service Case Management & Case Notes
    • Voice-to-text and audio note recording for case notes; can inspire on-device audio capture, transcription triggers, and attaching recordings to cases.
    • Mobile-first UX for documenting in the field; useful for designing offline-friendly, minimal-tap practitioner workflows similar to our 90‑second intake goal.
    • Case management features (client records, goals, outcomes, reporting); offers patterns for data models (Client, Case, Note, Outcome) that backend can adopt or simplify.
    • Compliance-oriented forms and reports; can guide your dynamic form templates and audit-ready data export formats for FOIP/HIA/PIPA-compliant reporting.
  • PatientNotes

    • AI-assisted documentation platform for clinicians and social workers
    • AI transcription of sessions into detailed notes and summaries; very close to your on-device recording, transcription, and summarization flow for interviews.
    • Automatic generation of structured reports, letters, and case notes; good model for mapping extracted entities into agency-specific form templates in your workflow engine.
    • Multi-platform access (phone, tablet, desktop, telehealth integrations); can inform your auth/session design for practitioners using both mobile app and web console.
  • Magic Notes

    • AI recording tool used in social work practice
    • Real-time audio recording during visits with auto-generated draft notes afterwards; directly parallels your "record, then summarize and pre-fill forms" practitioner workflow.
    • Template-based outputs (e.g., assessments, case notes) from one recording; useful pattern for configurable output templates tied to agency forms and jurisdictions.
    • Designed for frontline practitioners under heavy admin load; reinforces your focus on minimal taps, clear prompts, and reducing documentation time to protect worker capacity.

Open-source Projects

  • OSCaR - Open Source Case-management and Record-keeping

    • Github: https://github.com/Children-in-Families/oscar-web
    • Open-source case management and reporting system for social service organizations.
    • We can use it as a reference for structuring our core entities (Client, Case, Session, Admin).
    • Customizable programs and forms; relevant to how we design our templates and workflows.
    • Reporting and dashboards; helpful for designing admin review, dashboard, and monitoring tools.
    • Role-based secure access; aligns with our privacy-by-design and auditable architecture.
  • Open Data Kit (ODK) - ODK Collect

    • Github: https://github.com/getodk/collect
    • Open-source, offline-first mobile data collection platform designed for field environments.
    • We can reference its encrypted offline data capture model for secure on-device interview recording and storage.
    • Structured form system (XForms); relevant to designing configurable, versioned interview templates.
    • Device-to-server synchronization; supports our requirement for delayed secure sync when connectivity is restored.
    • Self-hosted deployment options; aligns with our emphasis on data sovereignty and compliance (FOIP, HIA, PIPA).
  • CommCare HQ

    • Github: https://github.com/dimagi/commcare-hq
    • Open-source, case-based mobile platform used by frontline health and social service workers.
    • We can use its case-based data model to structure longitudinal client records across multiple interviews.
    • Guided workflow engine; informs how we design structured, step-by-step interview processes.
    • Offline-first mobile architecture; supports practitioners operating in low-connectivity environments.
    • Role-based permissions and supervisory dashboards; aligns with our secure, auditable workflow design.

Technical Resources

Backend

Stack: Caddy, Kong, Supabase (Auth, Database, Storage)

  • Caddy (Docs): https://caddyserver.com/docs
  • Kong (Docs): https://docs.konghq.com
  • Supabase (Docs): https://supabase.com/docs

Deployment

Stack: Azure App Service, Azure Container Instances, AKS, Docker

  • Azure App Service (Docs): https://learn.microsoft.com/azure/app-service/
  • Azure Container Instances (Docs): https://learn.microsoft.com/azure/container-instances/
  • Azure Kubernetes Service (AKS) (Docs): https://learn.microsoft.com/azure/aks/
  • Docker (Docs): https://docs.docker.com/

Frontend

Stack: React Native, Expo Go

  • React Native (Docs): https://reactnative.dev/docs/getting-started
  • Expo Go (Docs): https://docs.expo.dev/

Detailed List of Technologies

Mobile Application Layer

  • React Native - Cross-platform mobile development framework for iOS and Android.
  • Expo Go - Development and emulation environment for rapid testing and iteration.
  • supabase-js - JavaScript client used to securely connect the mobile app to Supabase backend services (Auth, Storage, PostgreSQL).

API Gateway & Reverse Proxy Layer

  • Caddy - HTTPS-enabled reverse proxy for secure routing and TLS management.
  • Kong - API gateway for authentication enforcement, rate limiting, logging, and request control.

Backend & Data Layer

  • Supabase Auth - User authentication and role-based (RLS) access control.
  • Supabase Storage - Secure object storage for audio files, transcripts, and attachments.
  • Supabase PostgreSQL - Primary relational database for structured case data and metadata.

AI & External Services

  • Axios - HTTP client used for secure communication with external AI services.
  • Azure Speech-to-Text - Speech transcription for client interview recordings.
  • Azure OpenAI (ChatGPT) - AI summarization and structured form population.

Infrastructure & Deployment

  • Docker - Containerization of backend services.
  • Azure App Service / Azure Container Instances / AKS - Cloud deployment environment depending on scaling requirements.