# Business Requirements Specification (BRS)

## Afterthoughts

## How to Read This Document

This document outlines the key features and data requirements for Afterthoughts. Pay attention to four main aspects for each feature:

**Data**: Information shown in the app or stored for functionality (e.g., user profiles, messages, recipient details).

**Source**: Where information originates:

* User-provided (entered by users during registration or use)

* System-generated (created automatically, like unique IDs)

* Admin-managed (entered or controlled by administrators)

**Scope**: Who can access or modify information:

* Create: Who can add this data

* Read: Who can view this data

* Update: Who can modify this data

* Delete: Who can remove this data

**Conditions**: Rules or restrictions for data modification:

* Time-based restrictions

* Status-based conditions

* Approval processes

* Verification requirements

As you review, consider:

* Is all required information listed?

* Is the source of each piece correct?

* Are the right roles able to access each type of information?

* Are conditions for data modification correctly defined?

## 1\. Introduction

Afterthoughts is a sensitive and purposeful application designed to notify loved ones in the event of a user's passing. The app provides a secure way for individuals to prepare personalized notifications, private messages, videos, or letters that will be shared with specific recipients upon confirmation of their passing. The goal is to ensure that communication, memorial messages, and invitations to services reach intended recipients \-- even those estranged or outside of traditional family or friend communication channels \-- while reducing the burden on surviving family members and ensuring dignity and intention in final communications.

All messages and content within the platform are user-driven. Users must create and manage all of their own content, including written letters, private messages, and video recordings. Recipients are not required to register on the app; they simply agree to receive messages once the profile creator activates the account. All recipients the user chooses will receive an acceptance text or email to receive notifications, and they will have the option to create their own account once learning of the app. There is no integration with third-party services for automatic passing verification; the designated administrator (a person chosen by the user/profile creator) is responsible for manually confirming the passing of the user through the app. Notifications are delivered via in-app notifications, email notifications, and text notifications. The recurring messages feature is unlocked through a one-time in-app purchase processed via Apple App Store or Google Play; no other payments are handled within the app.

## 2\. App Overview & Scope

### 2.1 Purpose

Afterthoughts enables individuals to prepare and store personalized messages, videos, and letters that are securely delivered to designated recipients upon manual confirmation of the user's passing.

### 2.2 Key Features

* User registration and authentication with email and social sign-in options

* Profile management with personal details and account settings

* Message creation and management (written letters, private notes, video recordings, and recurring messages unlocked via one-time in-app purchase)

* Media vault for secure storage of prepared content

* Recipient management with contact organization and group assignments

* Passing confirmation workflow for the designated administrator to confirm the user's passing

* Notification system for automated delivery of messages via in-app, email, and text notifications

* Scheduled and conditional delivery (birthdays, anniversaries, specific dates after passing)

* Administrator designation for a trusted individual (and optional backup) authorized to confirm passing and access limited account information

* Secure user file folder for storing insurance policy numbers, final wishes, and other account information accessible to the administrator after confirmation

* Service, reception, and funeral information added by the administrator (time, date, location)

* One-time in-app purchase (IAP) to unlock the recurring messages feature for the user's account

* Recipient experience for viewing messages via secure links (through email or text)

* Settings and privacy controls

* Admin panel for user management, content moderation, category management, and legal compliance

### 2.3 User Types

* **User / Profile Creator**: General app users who create and manage personalized messages, designate recipients, set delivery conditions, and designate the administrator authorized to confirm their passing. The user/profile creator has total control over all messages, recipients, and everything within their account.

* **Recipient**: Individuals who accept to receive notifications from a user/profile creator. Recipients are not required to register on the app. Upon being added by a user, recipients receive an acceptance text or email to opt in to receiving notifications. Recipients may optionally create their own account after learning of the app, but a recipient's account is entirely separate and provides no access to or ability to change the inviting user's account.

* **Administrator (designated by User)**: The person designated by the user/profile creator to access a limited, view-only portion of the profile (the secure file folder containing insurance policy numbers, final wishes, and other account information). The administrator activates the notifications button so recipients can receive notice of death, may add a personal message, and adds pertinent information about the service, reception, and funeral (time, date, location). Only one administrator may be designated, with an optional backup.

* **Platform Admin**: Platform administrators who manage user-selectable content (categories), review and approve content and users, manage legal compliance, and oversee content moderation.

### 2.4 Data Source Scope

* **User-Provided Data**: Account information, profile details, messages (letters, notes, videos, recurring messages), recipient lists, recipient groups, delivery conditions, administrator designations, secure file folder contents (insurance policy numbers, final wishes, account information)

* **Administrator-Provided Data**: Passing confirmations, personal message added at time of confirmation, service/reception/funeral details (time, date, location)

* **System-Generated Data**: User IDs, message IDs, timestamps, notification logs, delivery status records, verification tokens, secure message links, recipient acceptance status, recurring messages feature entitlement status (derived from IAP receipt)

* **Platform-Admin-Managed Data**: Message categories, content approval statuses, user account statuses, privacy policy, terms and conditions

### Detailed Feature Descriptions

User Registration & Authentication

**Capabilities:**

* Account creation with email and password

* Social sign-in options (Google, Apple)

* Email verification for account activation

* Secure login with credential validation

* Password recovery via email with question/answer verification

**Details:**

* New users register with email, password, display name, and a security question/answer

* Social sign-in available through Google and Apple accounts

* Email verification required to activate account

* Login supports email/password and social sign-in methods

* Password recovery sends reset link to registered email address and requires question/answer verification

* Terms of service and privacy policy acceptance required during registration

**Why:**  
Secure account creation and authentication protect the sensitive nature of the content stored within the app and ensure only authorized users access their personal messages and recipient information.

Profile Management

**Capabilities:**

* View and edit personal profile information

* Manage account settings and preferences

* View account activity and statistics

* Update notification preferences

**Details:**

* Profile includes display name, email, profile photo, and bio

* Account statistics display:

* Number of messages created

* Number of recipients designated

* Number of verification contacts assigned

* Users can update their display name, profile photo, and bio at any time

* Notification preference settings for email and in-app notifications

* Option to deactivate account

**Why:**  
Profile management gives users control over their personal information and allows them to track their progress in preparing messages for their loved ones.

Message Creation & Management

**Capabilities:**

* Create written letters, private notes, video messages, and recurring messages

* Recurring messages are preset and automatically sent to loved ones after the user's death to acknowledge birthdays, anniversaries, and other yearly special occasions

* The recurring messages feature is unlocked through a one-time in-app purchase on the user's account

* Assign messages to specific recipients or recipient groups

* Edit and update messages before delivery

* Organize messages by type and recipient

* Save drafts for later completion

**Details:**

* Message formats supported:

* Written letters (long-form text)

* Private notes (short-form text)

* Video recordings (uploaded or recorded in-app)

* Recurring messages (preset to repeat on yearly occasions such as birthdays and anniversaries after passing; requires one-time in-app purchase to unlock the feature)

* Each message is assigned to one or more recipients

* Messages can be categorized using admin-managed categories

* Draft functionality allows users to save incomplete messages

* Messages stored securely in the user's media vault

* Users can preview how messages will appear to recipients

* Messages can be edited or deleted at any time before delivery is triggered

* All message content is created and managed entirely by users

**Why:**  
The core purpose of Afterthoughts is to allow users to prepare meaningful, personalized communications for their loved ones, supporting multiple formats to accommodate different preferences and emotional expressions, and alerting friends and family of the user's death as soon as possible to lessen the burden on the next of kin to notify everyone and explain details of the death.

Media Vault

**Capabilities:**

* Secure storage for all user-created messages and media

* Organization and browsing of stored content

* Storage status and usage overview

* Content management actions (view, edit, delete)

**Details:**

* Central repository for all messages, letters, notes, videos, and recurring messages

* Content organized by:

* Message type (letter, note, video, recurring)

* Recipient assignment

* Creation date

* Delivery status (draft, ready/accepted) — messages are only marked as delivered once the administrator confirms the death of the account holder

* Users can browse, search, and filter vault contents

* Quick actions for editing, previewing, and deleting content

* Vault dashboard displays summary of total messages, pending drafts, and assigned recipients

**Why:**  
A centralized vault gives users a clear overview of all prepared content and confidence that their messages are securely stored and organized for delivery when the time comes.

Recipient Management

**Capabilities:**

* Add and organize contacts as recipients

* Create recipient groups (family, friends, colleagues)

* Assign message and media permissions per recipient

* Manage recipient contact information and notification preferences

* Send acceptance prompts to recipients via email or text

**Details:**

* Recipients added with:

* Name

* Email address

* Phone number (used for text-based acceptance prompts and notifications)

* Relationship label (family, friend, colleague, other)

* Recipients organized into customizable groups

* Per-recipient permissions control which messages each person receives

* Acceptance system sends an acceptance prompt to new recipients via email or text, asking them to opt in to receiving notifications

* Recipients are not required to register on the app to receive messages

* If a recipient chooses to register, they do so under their own account, which is entirely separate and provides no access to or ability to change the inviting user's account

* Recipient list displays acceptance status (accepted, pending) for each contact

* Users can edit or remove recipients at any time

* Recipients notified discreetly with no obligation beyond acceptance

**Why:**  
Managing recipients with granular permissions ensures that each person receives only the messages intended for them, respecting the user's wishes for what is shared and with whom.

Passing Confirmation Workflow

**Capabilities:**

* Designate a trusted administrator (and optional backup) authorized to confirm passing

* Manual confirmation process through the app with an additional verification step

* Confirmation triggers automated message delivery

* Confirmation status tracking and logging

* Limited, view-only administrator access to a secure user file folder containing insurance policy numbers, final wishes, and other account information (e.g., bank account information)

* Administrator can add service, reception, and funeral information (time, date, location) and an optional personal message at the time of confirmation

**Details:**

* Users designate one administrator, with the option to designate one backup

* The administrator can confirm a user's passing by:

* Accessing the app

* Navigating to the confirmation screen

* Pressing the confirmation button and completing an additional verification step

* No third-party services are integrated for automatic verification; this is entirely manual

* Upon confirmation, the system triggers the notification and message delivery workflow

* Confirmation is logged with timestamp and confirming administrator details

* Confirmation status is visible to the platform admin for oversight

* Upon confirmation, the administrator gains limited, view-only access to the user's secure file folder

* The platform does not manage any legal compliance related to confirming the passing of a user

**Why:**  
A manual, user-driven confirmation process keeps the app simple and avoids reliance on external verification services, while ensuring that message delivery is triggered only by a trusted individual the user has specifically authorized. The secure file folder and service information capabilities give the administrator the practical tools needed to handle final arrangements on the user's behalf.

Notification & Delivery System

**Capabilities:**

* Automated sending of notifications via in-app, email, and text notifications

* Delivery of messages to designated recipients upon passing confirmation

* Scheduled and conditional delivery based on dates

* Delivery status tracking

**Details:**

* Notifications triggered automatically after passing confirmation

* Delivery channels:

* In-app notifications for recipients who have created an account

* Email notifications

* Text notifications

* Scheduled delivery options:

* Specific dates (birthdays, anniversaries)

* Relative dates after passing (e.g., 30 days after, 1 year after)

* Immediate delivery upon confirmation

* Each message delivery is logged with status (pending, sent, viewed)

* Recipients receive a secure link to view message content via email and text

* No integration with external services such as social media platforms

**Why:**  
The notification system is the mechanism that fulfills the app's core promise: delivering the user's prepared messages to their loved ones at the right time and through the right channels, without requiring recipients to register for the app.

Recipient Experience

**Capabilities:**

* View received messages via secure links

* Access message content through email, text, or in-app notifications

* Optionally create a full profile and use the app

* View service details and RSVP to invitations

**Details:**

* Recipients receive notifications via email, text, or in-app when messages are delivered

* Email or text notifications contain a secure link to view message content

* Message viewing screen displays:

* Sender's name and profile photo

* Message content (text, letter, or video)

* Date of delivery

* Any accompanying notes or context

* Recipients can RSVP or acknowledge receipt of messages

* Recipients may optionally create their own full profile to prepare their own messages

* Viewing does not require downloading the app when accessed via email or text secure link

**Why:**  
A thoughtful recipient experience ensures that the user's final messages are received with dignity and clarity, while giving recipients the option to engage further with the platform if they choose.

Administrator Designation

**Capabilities:**

* Designate one trusted person as administrator, with an optional backup, authorized to confirm passing

* Manage administrator designations

**Details:**

* Users select an administrator from their recipients or by entering a new contact

* One administrator may be designated, with one optional backup

* The backup serves as the secondary contact if the primary administrator is unable to act

* Users can add, remove, or replace the administrator at any time

* The designated administrator receives a notification explaining their role upon designation

* Only the designated administrator (or backup, if invoked) can access the confirmation workflow for that user

* Only the designated administrator gains limited, view-only access to the user's secure file folder upon confirmation

**Why:**  
Allowing the user to choose who can confirm their passing and access their secure file folder ensures the process is controlled by a single trusted person (with a backup for resilience), maintaining the integrity and intentionality of the entire system.

Settings & Privacy Controls

**Capabilities:**

* Manage account security settings

* Control notification preferences

* Manage privacy options

* Access legal documents (privacy policy, terms and conditions)

* Account deactivation

**Details:**

* Security settings:

* Change password

* Manage connected social accounts

* View active sessions

* Notification preferences:

* Email notification toggle

* Text notification toggle

* In-app notification toggle

* Notification frequency settings

* Privacy options:

* Profile visibility controls

* Data export request

* Legal documents accessible from settings:

* Privacy policy

* Terms and conditions

* Account deactivation option with confirmation

**Why:**  
Comprehensive settings give users full control over their account security, notification preferences, and privacy, which is critical for an app handling sensitive personal content.

Recurring Messages Unlock (In-App Purchase)

**Capabilities:**

* One-time in-app purchase to unlock the recurring messages feature

* Purchase persists permanently on the user's account once completed

* Restore purchases option for users reinstalling the app or switching devices

**Details:**

* The recurring messages feature is gated behind a one-time, non-consumable in-app purchase

* Purchases are processed through Apple App Store (StoreKit) on iOS and Google Play Billing on Android, per platform requirements

* Once purchased, the entitlement is tied to the user's account and unlocks the feature permanently

* Users who already purchased can restore their entitlement on a new device via the standard platform restore flow

* If a purchase is refunded by Apple or Google, the entitlement is removed and the feature is locked again

* Locked state: users can view the recurring messages feature card and a purchase prompt, but cannot save recurring messages to the vault

**Why:**  
The recurring messages feature represents premium functionality that warrants a one-time unlock, while keeping the rest of the app free to use. A one-time non-consumable purchase keeps the model simple: pay once, unlock forever, no subscriptions or expirations.

## 3\. Functional Requirements & Detailed User Stories

### 3.1 Authentication

#### *User Story: User Registration*

As a new user, I want to create an account so that I can begin preparing messages and designating recipients for delivery after my passing.

**Flow & Details:**

**Screen Elements:**

* Registration form with fields:

* Email address

* Password (with confirmation)

* Display name

* Security question and answer

* Submit button

* Link to login screen

* Terms of service acknowledgment

* Social sign-up options (Google, Apple)

**Flow:**

* User opens app and selects "Sign Up" on **Welcome Screen**

* User enters required information on **Registration Screen**

* System validates input data

* Account creation process initiated

* Email verification sent

* User redirected to **Profile Setup Screen**

**Data Requirements:**

* **User ID**

* Source: System-generated

* Scope: Read (All), Create (System), Update (None), Delete (None)

* Conditions: Cannot be modified once created; unique identifier for each user

* **Email Address**

* Source: User-provided

* Scope: Create (User), Read (User, Admin), Update (User), Delete (User)

* Conditions: Must be unique; used for login and communication

* **Password**

* Source: User-provided

* Scope: Create (User), Read (None), Update (User), Delete (User)

* Conditions: Users can reset or change their password

* **Display Name**

* Source: User-provided

* Scope: Create (User), Read (All), Update (User), Delete (User)

* Conditions: Visible to recipients; can be updated anytime

* **Security Question & Answer**

* Source: User-provided

* Scope: Create (User), Read (None), Update (User), Delete (User)

* Conditions: Required for password recovery verification; editable anytime

**Acceptance Criteria:**

* All required fields must be completed

* Email format validation

* Unique email address required

* Successful registration confirmation

* Email verification sent to provided address

* Terms of service must be accepted before account creation

* Security question and answer captured during registration

#### *User Story: User Login*

As a registered user, I want to log in to my account so that I can access my messages, recipients, and account settings.

**Flow & Details:**

**Screen Elements:**

* Login form with fields:

* Email address

* Password

* Login button

* Forgot password link

* Registration link

* Social login options

**Flow:**

* User opens app and selects "Log In" on **Welcome Screen**

* User enters credentials on **Login Screen**

* System validates input

* Successful login redirects to **Home Dashboard**

* Failed login displays error message

**Acceptance Criteria:**

* Valid credentials grant access to the user's account

* Invalid credentials display appropriate error message

* "Forgot password" initiates password reset flow via email

* Account lockout after multiple failed attempts

#### *User Story: Password Recovery*

As a user who forgot my password, I want to reset my password so that I can regain access to my account.

**Flow & Details:**

**Screen Elements:**

* Password recovery form

* Email input field

* Security question prompt and answer field

* Submit button

* Confirmation message

**Flow:**

* User clicks "Forgot Password" on **Login Screen**

* Enters registered email address on **Password Recovery Screen**

* System verifies account existence

* User is presented with their security question and provides their answer

* System verifies the answer

* Password reset email sent

* User receives reset link

* User sets new password

**Acceptance Criteria:**

* Valid email required

* Correct answer to security question required before reset link is sent

* Password reset link provided via email

* Confirmation message displayed

* Secure password reset process

### 3.2 Profile Management

#### *User Story: Profile Setup*

As a new user, I want to set up my profile after registration so that my recipients can identify me when they receive my messages.

**Flow & Details:**

**Screen Elements:**

* Profile photo upload

* Display name field (pre-filled from registration)

* Bio/about text field

* Continue button

* Skip option

**Flow:**

* User is directed to **Profile Setup Screen** after registration

* User uploads a profile photo (optional)

* User adds or edits their display name

* User writes a short bio (optional)

* User taps "Continue" to proceed to **Home Dashboard**

**Data Requirements:**

* **Profile Photo**

* Source: User-provided

* Scope: Create (User), Read (All Recipients, Admin), Update (User), Delete (User)

* Conditions: Optional; displayed alongside messages sent to recipients

* **Bio**

* Source: User-provided

* Scope: Create (User), Read (All Recipients, Admin), Update (User), Delete (User)

* Conditions: Optional; can be updated anytime

**Acceptance Criteria:**

* Profile photo upload accepts standard image formats

* Display name is required

* Bio is optional

* User can skip setup and complete it later from settings

* Profile information saved and visible on user profile

#### *User Story: View Profile*

As a user, I want to view my profile so that I can see my account details and activity.

**Flow & Details:**

**Screen Elements:**

* Profile header with avatar

* Display name and email

* Account statistics:

* Messages created count

* Recipients designated count

* Verification contacts assigned count

* Edit profile button

* Quick links to Message Vault, Recipients, Settings

**Flow:**

* User navigates to **Profile Screen** from navigation

* System displays current profile data

* User reviews information and statistics

* Option to navigate to related sections

**Acceptance Criteria:**

* Profile data displayed clearly

* Accurate activity and contribution statistics

* Edit option visible

* Quick navigation to related content

#### *User Story: Edit Profile*

As a user, I want to edit my profile so that I can update my personal information.

**Flow & Details:**

**Screen Elements:**

* Editable profile photo

* Editable display name field

* Editable bio field

* Save button

* Cancel button

**Flow:**

* User taps "Edit Profile" on **Profile Screen**

* System displays editable fields on **Edit Profile Screen**

* User modifies desired fields

* User taps "Save" to confirm changes

* System updates profile and returns to **Profile Screen**

**Acceptance Criteria:**

* All editable fields pre-populated with current data

* Changes saved upon confirmation

* Cancel option returns to profile without saving

* Updated information reflected immediately across the app

### 3.3 Message Creation & Management

#### *User Story: Create a Written Letter*

As a user, I want to create a written letter so that I can leave a meaningful long-form message for a specific recipient.

**Flow & Details:**

**Screen Elements:**

* Message title field

* Rich text editor for letter content

* Recipient selector (individual or group)

* Category selector (admin-managed categories)

* Delivery condition options:

* Immediate upon passing confirmation

* Specific date (birthday, anniversary)

* Relative date after passing

* Save as draft button

* Save to vault button

**Flow:**

* User taps "Create Message" on **Home Dashboard**

* User selects "Letter" format on **Message Format Selection Screen**

* User enters title and letter content on **Letter Creation Screen**

* User assigns one or more recipients or groups

* User selects a category (optional)

* User sets delivery conditions

* User taps "Save to Vault" to finalize or "Save Draft" to continue later

* System saves message to **Media Vault**

**Data Requirements:**

* **Message ID**

* Source: System-generated

* Scope: Read (User, Admin), Create (System), Update (None), Delete (None)

* Conditions: Unique identifier for each message

* **Message Title**

* Source: User-provided

* Scope: Create (User), Read (User, Assigned Recipients after delivery, Admin), Update (User), Delete (User)

* Conditions: Required field; editable before delivery

* **Message Content**

* Source: User-provided

* Scope: Create (User), Read (User, Assigned Recipients after delivery), Update (User), Delete (User)

* Conditions: Editable before delivery; not accessible to admin for privacy

* **Message Category**

* Source: Admin-managed (category list), User-provided (selection)

* Scope: Create (User selects), Read (User, Admin), Update (User), Delete (User)

* Conditions: Categories managed by admin; user selects from available options

* **Delivery Condition**

* Source: User-provided

* Scope: Create (User), Read (User, Admin), Update (User), Delete (User)

* Conditions: Must specify at least one delivery condition; editable before delivery

**Acceptance Criteria:**

* Letter content supports text formatting

* At least one recipient must be assigned

* Delivery condition must be set before saving to vault

* Drafts saved and accessible from Media Vault

* Saved messages visible in Media Vault with correct status

#### *User Story: Create a Private Note*

As a user, I want to create a short private note so that I can leave a brief personal message for a recipient.

**Flow & Details:**

**Screen Elements:**

* Note title field

* Text input for note content

* Recipient selector

* Category selector

* Delivery condition options

* Save as draft button

* Save to vault button

**Flow:**

* User taps "Create Message" on **Home Dashboard**

* User selects "Private Note" format on **Message Format Selection Screen**

* User enters title and note content on **Note Creation Screen**

* User assigns recipient(s)

* User sets delivery conditions

* User saves to vault or as draft

**Acceptance Criteria:**

* Note content saved and stored in Media Vault

* At least one recipient must be assigned

* Delivery condition must be set before saving to vault

* User can edit or delete notes at any time before delivery

#### *User Story: Create a Video Message*

As a user, I want to record or upload a video message so that I can leave a personal video for my loved ones.

**Flow & Details:**

**Screen Elements:**

* Video recording interface (in-app camera)

* Video upload option (from device gallery)

* Video preview player

* Message title field

* Recipient selector

* Category selector

* Delivery condition options

* Save to vault button

**Flow:**

* User taps "Create Message" on **Home Dashboard**

* User selects "Video" format on **Message Format Selection Screen**

* User chooses to record new video or upload existing on **Video Creation Screen**

* If recording: user records video using in-app camera

* If uploading: user selects video from device gallery

* User previews the video

* User enters a title and assigns recipients

* User sets delivery conditions

* User saves to vault

**Data Requirements:**

* **Video File**

* Source: User-provided

* Scope: Create (User), Read (User, Assigned Recipients after delivery), Update (User), Delete (User)

* Conditions: Stored securely in media vault; editable/replaceable before delivery

**Acceptance Criteria:**

* Video recording and upload options both functional

* Video preview available before saving

* At least one recipient must be assigned

* Delivery condition must be set before saving to vault

* Video saved and visible in Media Vault

#### *User Story: Create a Recurring Message*

As a user, I want to create a recurring message so that loved ones automatically receive a message on yearly special occasions (such as birthdays and anniversaries) after my passing.

**Flow & Details:**

**Screen Elements:**

* Message title field

* Message content field (text)

* Recipient selector (individual or group)

* Category selector

* Recurrence configuration:

* Occasion type (birthday, anniversary, custom yearly date)

* Date of the yearly occasion

* Start condition (begin recurring deliveries the year after passing, or starting on the next occurrence after passing)

* Save as draft button

* Save to vault button

**Flow:**

* User taps "Create Message" on **Home Dashboard**

* User selects "Recurring" format on **Message Format Selection Screen**

* System checks the user's recurring messages entitlement

* If the user has not yet purchased the entitlement, system navigates to **Recurring Messages Unlock Screen** to complete the one-time in-app purchase before continuing

* Once entitled, user enters title and content on **Recurring Message Creation Screen**

* User assigns recipient(s)

* User selects the yearly occasion and date

* User saves to vault or as draft

**Data Requirements:**

* **Recurrence Configuration**

* Source: User-provided

* Scope: Create (User), Read (User, Admin), Update (User), Delete (User)

* Conditions: Must specify a yearly date; editable before delivery is triggered

* **Recurring Messages Entitlement**

* Source: System-generated (derived from IAP receipt validation)

* Scope: Read (User, Admin), Create (System), Update (System), Delete (System on refund)

* Conditions: Required to save recurring messages to vault; persists permanently unless the underlying purchase is refunded by Apple or Google

**Acceptance Criteria:**

* Recurring messages feature entitlement is required before a recurring message can be saved to vault

* Users without the entitlement are routed through the unlock purchase flow on attempting to create a recurring message

* Recurrence date and occasion must be set before saving to vault

* At least one recipient must be assigned

* Recurring message saved and visible in Media Vault with recurring status

* Recurring messages are queued for automatic delivery on the specified yearly date(s) after passing is confirmed

#### *User Story: Unlock Recurring Messages Feature*

As a user, I want to purchase the recurring messages unlock so that I can permanently enable recurring messages on my account.

**Flow & Details:**

**Screen Elements:**

* Feature description and benefits

* Price display (sourced from the App Store / Play Store at runtime)

* "Unlock" button (initiates platform IAP flow)

* "Restore Purchases" link

* Terms and refund policy links

**Flow:**

* User taps "Recurring" format on **Message Format Selection Screen** (or any other entry point to the feature) without an existing entitlement

* System navigates to **Recurring Messages Unlock Screen**

* User reviews feature description and price

* User taps "Unlock" → system initiates the platform IAP flow (Apple StoreKit or Google Play Billing)

* User completes purchase through the platform

* System receives the purchase receipt and validates it

* On successful validation, system records the entitlement on the user's account

* User is returned to the **Recurring Message Creation Screen** to complete their message

* If the user has previously purchased on another device or reinstalled the app, they can tap "Restore Purchases" to recover the entitlement without paying again

**Data Requirements:**

* **IAP Purchase Receipt**

* Source: System-generated (returned by Apple App Store or Google Play)

* Scope: Read (System, Admin), Create (System), Update (None), Delete (None)

* Conditions: Used to validate and grant the recurring messages entitlement; stored for audit and restore purposes

**Acceptance Criteria:**

* Unlock screen displays current localized price from the App Store / Play Store

* Tapping "Unlock" initiates the platform-native IAP flow

* Successful purchase grants entitlement and returns the user to the recurring message creation flow

* Restore Purchases recovers the entitlement on reinstall or new device

* Failed or cancelled purchases leave the entitlement unchanged

* Refunded purchases (via Apple or Google) automatically remove the entitlement

#### *User Story: Edit a Message*

As a user, I want to edit a previously created message so that I can update its content, recipients, or delivery conditions.

**Flow & Details:**

**Screen Elements:**

* Editable message fields (title, content, recipients, category, delivery conditions)

* Save changes button

* Cancel button

* Delete message option

**Flow:**

* User navigates to **Media Vault** from **Home Dashboard**

* User selects a message to edit

* System displays message details on **Message Edit Screen**

* User modifies desired fields

* User taps "Save Changes"

* System updates message in vault

**Acceptance Criteria:**

* All message fields editable before delivery

* Changes saved upon confirmation

* Delivered messages cannot be edited

* Delete option removes message permanently with confirmation prompt

### 3.4 Media Vault

#### *User Story: Browse Media Vault*

As a user, I want to browse my media vault so that I can view and manage all of my prepared messages.

**Flow & Details:**

**Screen Elements:**

* Vault summary dashboard:

* Total messages count

* Drafts count

* Ready/Accepted count

* Filter options (by type, recipient, status, category)

* Search bar

* Message list with preview cards showing:

* Message title

* Message type icon (letter, note, video, recurring)

* Assigned recipient(s)

* Status (draft, ready/accepted)

* Creation date

**Flow:**

* User navigates to **Media Vault Screen** from **Home Dashboard** or navigation

* System displays vault summary and message list

* User filters or searches messages as needed

* User taps a message to view details or edit

**Acceptance Criteria:**

* All user-created messages displayed in vault

* Filters and search function correctly

* Message preview cards show relevant summary information

* Tapping a message opens detail view

* Pre-delivery statuses are limited to "draft" and "ready/accepted"; delivery occurs only after administrator confirms passing

### 3.5 Recipient Management

#### *User Story: Add a Recipient*

As a user, I want to add a recipient so that I can designate someone to receive my messages after my passing.

**Flow & Details:**

**Screen Elements:**

* Recipient form with fields:

* Name

* Email address

* Phone number

* Relationship label (family, friend, colleague, other)

* Group assignment (optional)

* Send acceptance prompt toggle (with channel option: email, text, or both)

* Save button

**Flow:**

* User navigates to **Recipient Manager Screen**

* User taps "Add Recipient"

* User enters recipient details on **Add Recipient Screen**

* User optionally assigns recipient to a group

* User toggles the acceptance prompt and selects email, text, or both

* User taps "Save"

* System saves recipient and sends an acceptance prompt via the selected channel(s) if toggled

**Data Requirements:**

* **Recipient ID**

* Source: System-generated

* Scope: Read (User, Admin), Create (System), Update (None), Delete (None)

* Conditions: Unique identifier for each recipient entry

* **Recipient Name**

* Source: User-provided

* Scope: Create (User), Read (User, Admin), Update (User), Delete (User)

* Conditions: Required field

* **Recipient Email**

* Source: User-provided

* Scope: Create (User), Read (User, Admin), Update (User), Delete (User)

* Conditions: Required; used for notifications and acceptance prompts

* **Recipient Phone Number**

* Source: User-provided

* Scope: Create (User), Read (User, Admin), Update (User), Delete (User)

* Conditions: Used for text-based acceptance prompts and notifications

* **Relationship Label**

* Source: User-provided

* Scope: Create (User), Read (User, Admin), Update (User), Delete (User)

* Conditions: Selected from predefined options; helps organize contacts

* **Acceptance Status**

* Source: System-generated

* Scope: Read (User, Admin), Create (System), Update (System), Delete (None)

* Conditions: Updated automatically when the recipient accepts to receive notifications via the prompt

**Acceptance Criteria:**

* Recipient saved with all required fields

* Acceptance prompt sent via the selected channel(s) when toggle is enabled

* Acceptance status reflected in recipient list

* Recipients are not required to register on the app to receive messages

#### *User Story: Manage Recipient Groups*

As a user, I want to organize my recipients into groups so that I can assign messages to multiple people at once.

**Flow & Details:**

**Screen Elements:**

* Group list display

* Create group button

* Group name field

* Recipient selector (add members to group)

* Edit and delete group options

**Flow:**

* User navigates to **Recipient Manager Screen**

* User taps "Groups" tab

* User taps "Create Group" to add a new group on **Create Group Screen**

* User enters group name and selects recipients to include

* User saves group

* Group available for message assignment

**Acceptance Criteria:**

* Groups created with unique names

* Recipients can belong to multiple groups

* Groups available as selection option during message creation

* Groups can be edited or deleted at any time

#### *User Story: View Recipient List*

As a user, I want to view my recipient list so that I can see who I have designated and their acceptance status.

**Flow & Details:**

**Screen Elements:**

* Recipient list with:

* Recipient name

* Relationship label

* Acceptance status indicator (accepted, pending)

* Group membership

* Number of messages assigned

* Search and filter options

* Sort options (name, relationship, status)

**Flow:**

* User navigates to **Recipient Manager Screen**

* System displays all recipients with status indicators

* User searches or filters as needed

* User taps a recipient to view details or edit

**Acceptance Criteria:**

* All recipients displayed with current information

* Acceptance status accurately reflected

* Search and filter options functional

* Tapping a recipient opens detail view

### 3.6 Passing Confirmation

#### *User Story: Designate the Administrator*

As a user, I want to designate a trusted person as the administrator (with an optional backup) so that they are authorized to confirm my passing, trigger message delivery, and access my secure file folder.

**Flow & Details:**

**Screen Elements:**

* Administrator selector (choose from recipients or add new contact)

* Backup administrator selector (optional)

* Save button

**Flow:**

* User navigates to **Settings Screen** and selects "Administrator"

* System displays the **Administrator Designation Screen** with current administrator (if any) and optional backup

* User selects the administrator and, optionally, a backup

* User taps "Save"

* System notifies the designated administrator (and backup) of their role

**Data Requirements:**

* **Administrator Designation**

* Source: User-provided

* Scope: Create (User), Read (User, Designated Administrator, Admin), Update (User), Delete (User)

* Conditions: Only one administrator may be designated; one optional backup may be designated; designation can be changed anytime

* **Backup Administrator Designation**

* Source: User-provided

* Scope: Create (User), Read (User, Designated Backup, Admin), Update (User), Delete (User)

* Conditions: Optional; activated only if the primary administrator is unable to act; editable anytime

**Acceptance Criteria:**

* Any recipient or newly entered contact can be designated as the administrator

* Only one administrator may be active at a time, with one optional backup

* The administrator (and backup) is notified of their designation

* At least one administrator must be designated before messages can be set to "ready/accepted" status

#### *User Story: Confirm Passing of a User*

As the designated administrator, I want to confirm the passing of the user who designated me so that their prepared messages can be delivered to recipients.

**Flow & Details:**

**Screen Elements:**

* List of users who designated this person as administrator

* Confirmation prompt with clear description of the action

* Additional verification step (e.g., security challenge before final confirmation)

* Confirm button

* Cancel button

* Confirmation acknowledgment screen

**Flow:**

* The administrator opens app and navigates to **Verification Dashboard**

* System displays users who have designated this person on **Verification Screen**

* Administrator selects the user whose passing they wish to confirm

* System displays confirmation prompt with details of what will happen

* Administrator taps "Confirm Passing"

* System presents an additional verification step that the administrator must complete

* System logs confirmation with timestamp and confirming administrator details

* System triggers the notification and message delivery workflow

* Administrator sees acknowledgment on **Confirmation Complete Screen**

**Data Requirements:**

* **Passing Confirmation Record**

* Source: User-provided (by the administrator)

* Scope: Create (Administrator), Read (Admin), Update (None), Delete (None)

* Conditions: Cannot be undone once confirmed; logged with timestamp and confirming administrator ID

**Acceptance Criteria:**

* Only the designated administrator (or backup, if invoked) can access the confirmation workflow

* Confirmation prompt clearly explains the consequences of the action

* An additional verification step must be completed before the confirmation is finalized

* Confirmation is logged with timestamp and confirming administrator

* Message delivery workflow triggered upon confirmation

* Confirmation cannot be reversed

#### *User Story: Administrator Access to Secure File Folder and Service Information*

As the designated administrator, I want to access the user's secure file folder and record service details after confirming their passing so that I can handle final arrangements and communicate them to recipients.

**Flow & Details:**

**Screen Elements:**

* Secure file folder viewer (view-only):

* Insurance policy numbers

* Final wishes

* Bank account and other account information

* Any other documents stored by the user

* Service details form:

* Service time, date, location

* Reception time, date, location

* Funeral time, date, location

* Optional personal message field (added by the administrator)

* Notifications activation button

* Save button

**Flow:**

* After confirming the user's passing on **Confirmation Complete Screen**, the administrator is taken to **Administrator Post-Confirmation Screen**

* Administrator views the user's secure file folder (view-only)

* Administrator enters service, reception, and funeral details

* Administrator optionally adds a personal message to be included with notifications

* Administrator activates the notifications button to send notice of death to recipients

**Data Requirements:**

* **Secure File Folder Contents**

* Source: User-provided

* Scope: Create (User), Read (User, Designated Administrator after confirmation, Admin), Update (User), Delete (User)

* Conditions: Contents are view-only for the administrator and only accessible after passing confirmation

* **Service / Reception / Funeral Details**

* Source: Administrator-provided

* Scope: Create (Administrator), Read (Administrator, Recipients, Admin), Update (Administrator), Delete (Administrator)

* Conditions: Editable by the administrator after confirmation; included in recipient notifications when notifications are activated

* **Administrator Personal Message**

* Source: Administrator-provided

* Scope: Create (Administrator), Read (Administrator, Recipients, Admin), Update (Administrator), Delete (Administrator)

* Conditions: Optional; included with notice-of-death notifications when notifications are activated

**Acceptance Criteria:**

* Secure file folder is view-only for the administrator

* Administrator can only access the secure file folder after confirming the user's passing

* Administrator can enter and edit service, reception, and funeral details

* Administrator can add an optional personal message

* Tapping the notifications activation button triggers notice-of-death notifications to all designated recipients

### 3.7 Notification & Delivery

#### *User Story: Automated Message Delivery*

As a system, I want to deliver messages to designated recipients upon passing confirmation so that users' final communications reach their intended audience.

**Flow & Details:**

**Screen Elements:**

* (System-driven process; no direct user screen interaction during delivery)

* Delivery status visible in admin panel and to the administrator

**Flow:**

* Passing confirmation is recorded

* System identifies all messages marked "ready/accepted" for the confirmed user

* System evaluates delivery conditions for each message:

* Immediate delivery messages are queued for sending

* Scheduled messages are queued for their designated dates

* Recurring messages are queued for their yearly occasion dates

* System sends in-app notifications to recipients who have created an account

* System sends email and text notifications to all recipients

* Email and text notifications contain secure link to view message content

* Delivery status updated for each message (pending, sent, viewed)

**Data Requirements:**

* **Delivery Status**

* Source: System-generated

* Scope: Read (Admin, Administrator), Create (System), Update (System), Delete (None)

* Conditions: Updated automatically as messages are sent and viewed

* **Notification Log**

* Source: System-generated

* Scope: Read (Admin), Create (System), Update (None), Delete (None)

* Conditions: Records all notification events with timestamps and delivery channel

**Acceptance Criteria:**

* All "ready/accepted" messages for the confirmed user are processed

* Immediate messages sent upon confirmation

* Scheduled messages queued for their designated delivery dates

* Recurring messages queued for their yearly occasion dates

* In-app, email, and text notifications sent to all assigned recipients

* Delivery status tracked and updated for each message

#### *User Story: Set Delivery Conditions*

As a user, I want to set delivery conditions for my messages so that they are delivered at the right time.

**Flow & Details:**

**Screen Elements:**

* Delivery condition selector:

* Immediate upon passing confirmation

* Specific date picker (for birthdays, anniversaries)

* Relative date selector (days/months/years after passing)

* Save button

**Flow:**

* During message creation or editing, user navigates to delivery condition section

* User selects delivery type on **Delivery Conditions Screen**

* If specific date: user selects date from date picker

* If relative date: user enters number and unit (days, months, years)

* User saves delivery condition with the message

**Acceptance Criteria:**

* At least one delivery condition required per message

* Specific date selection supports full calendar date picker

* Relative date supports days, months, and years

* Delivery condition visible in message details within Media Vault

### 3.8 Recipient Message Experience

#### *User Story: View Received Message*

As a recipient, I want to view a message sent to me so that I can read or watch the content left for me by the sender.

**Flow & Details:**

**Screen Elements:**

* Message view screen displaying:

* Sender's name and profile photo

* Message title

* Message content (text for letters/notes, video player for videos)

* Delivery date

* Option to acknowledge receipt

* Navigation to view other received messages

**Flow:**

* Recipient receives notification (in-app, email, or text) that a message is available

* Recipient taps notification or clicks secure link in email or text

* System displays message content on **Message View Screen**

* Recipient reads or watches the message

* Recipient optionally taps "Acknowledge" to confirm receipt

* Recipient can navigate to other received messages from **Received Messages Screen**

**Acceptance Criteria:**

* Message content displayed in appropriate format (text or video)

* Sender information visible

* Secure link accessible without app download (via web browser)

* Acknowledge option available

* All received messages accessible from recipient's account (if registered) or via secure link

#### *User Story: Recipient Acceptance via Prompt*

As a recipient, I want to accept receiving notifications from a user so that I can be notified of messages without needing to register for the app.

**Flow & Details:**

**Screen Elements:**

* Acceptance prompt delivered via email or text containing:

* Sender's name

* Brief explanation of the role

* Accept and decline options

* Optional link to create an account

**Flow:**

* Recipient receives acceptance prompt via email or text from a user

* Recipient taps the accept link to opt in to receiving notifications

* System updates the recipient's acceptance status in the inviting user's recipient list

* Recipient may optionally tap the "Create Account" link to register on the app

* If the recipient registers, they do so under their own account, entirely separate from the inviting user

**Acceptance Criteria:**

* Acceptance prompt directs recipient to a simple accept/decline action without requiring registration

* Acceptance status updated for the inviting user

* Recipient can choose to create their own account independently if they wish

* A recipient's account is entirely separate and provides no access to the inviting user's account

### 3.9 Settings & Privacy

#### *User Story: Manage Account Settings*

As a user, I want to manage my account settings so that I can control my security, notifications, and privacy preferences.

**Flow & Details:**

**Screen Elements:**

* Settings menu with sections:

* Account security (change password, connected accounts)

* Notification preferences (email, text, in-app toggles)

* Privacy options (profile visibility)

* Administrator link

* Legal documents (privacy policy, terms and conditions)

* Account deactivation

**Flow:**

* User navigates to **Settings Screen** from navigation or profile

* User selects desired settings section

* User modifies settings as needed

* Changes saved upon confirmation

**Acceptance Criteria:**

* All settings sections accessible and functional

* Changes saved and applied immediately

* Password change requires current password verification

* Account deactivation requires confirmation prompt

* Legal documents viewable from settings

## 4\. UI/UX Screens & Detailed User Flows

### 4.1 Authentication Screens

**Welcome Screen**

* Visual Hierarchy:

* Header: App logo and name "Afterthoughts"

* Body: App tagline and brief description

* Footer: "Sign Up" and "Log In" buttons, social sign-in options

* Key UI Elements:

* App logo

* Tagline text

* Sign Up button (primary)

* Log In button (secondary)

* Social sign-in buttons (Google, Apple)

* Interactions:

* Tap "Sign Up" → navigates to **Registration Screen**

* Tap "Log In" → navigates to **Login Screen**

* Tap social sign-in → initiates social authentication flow

**Registration Screen**

* Visual Hierarchy:

* Header: "Create Account" title with back button

* Body: Registration form fields

* Footer: Submit button, terms acceptance checkbox, link to login

* Key UI Elements:

* Email input field

* Password input field (with visibility toggle)

* Confirm password input field

* Display name input field

* Security question field

* Security answer field

* Terms of service checkbox

* Submit button

* "Already have an account? Log In" link

* Interactions:

* Enter registration details → validates in real time

* Tap submit → creates account and navigates to **Profile Setup Screen**

* Tap login link → navigates to **Login Screen**

**Login Screen**

* Visual Hierarchy:

* Header: "Welcome Back" title with back button

* Body: Login form fields

* Footer: Login button, forgot password link, registration link

* Key UI Elements:

* Email input field

* Password input field (with visibility toggle)

* Login button

* "Forgot Password?" link

* Social login options

* "Don't have an account? Sign Up" link

* Interactions:

* Enter credentials and tap login → navigates to **Home Dashboard**

* Tap "Forgot Password?" → navigates to **Password Recovery Screen**

* Tap sign up link → navigates to **Registration Screen**

**Password Recovery Screen**

* Visual Hierarchy:

* Header: "Reset Password" title with back button

* Body: Email input, security question prompt and answer field, instructions

* Footer: Submit button

* Key UI Elements:

* Instructional text

* Email input field

* Security question display and answer input field

* Submit button

* Back to login link

* Interactions:

* Enter email → system displays the security question

* Enter answer and tap submit → on correct answer, sends reset link and displays confirmation

* Tap back → returns to **Login Screen**

### 4.2 Home & Dashboard

**Home Dashboard**

* Visual Hierarchy:

* Header: App logo, profile avatar, notification bell icon

* Body: Quick action buttons, vault summary, pending tasks

* Footer: Bottom navigation bar

* Key UI Elements:

* Quick action buttons:

* Create Message

* Add Recipient

* View Vault

* Vault summary card:

* Total messages

* Drafts count

* Ready/Accepted count

* Pending tasks list:

* Unfinished drafts

* Recipients with pending acceptance

* Administrator not yet designated

* Bottom navigation: Home, Vault, Recipients, Profile, Settings

* Interactions:

* Tap "Create Message" → navigates to **Message Format Selection Screen**

* Tap "Add Recipient" → navigates to **Add Recipient Screen**

* Tap "View Vault" → navigates to **Media Vault Screen**

* Tap pending task → navigates to relevant screen

* Tap notification bell → navigates to **Notifications Screen**

### 4.3 Message Creation Screens

**Message Format Selection Screen**

* Visual Hierarchy:

* Header: "Create Message" title with back button

* Body: Format options displayed as cards

* Footer: Cancel button

* Key UI Elements:

* Letter format card (with icon and description)

* Private Note format card (with icon and description)

* Video format card (with icon and description)

* Recurring Message format card (with icon and description)

* Interactions:

* Tap format card → navigates to corresponding creation screen

* Tap back → returns to **Home Dashboard**

**Letter Creation Screen**

* Visual Hierarchy:

* Header: "New Letter" title with back and save buttons

* Body: Title field, rich text editor, recipient and category selectors

* Footer: Delivery conditions section, save options

* Key UI Elements:

* Title input field

* Rich text editor

* Recipient selector button

* Category selector dropdown

* Delivery condition selector

* "Save Draft" button

* "Save to Vault" button

* Interactions:

* Enter content → auto-save as draft periodically

* Tap recipient selector → opens recipient/group picker

* Tap category selector → opens admin-managed category list

* Tap delivery conditions → opens **Delivery Conditions Screen**

* Tap "Save to Vault" → validates and saves with "ready/accepted" status

**Note Creation Screen**

* Visual Hierarchy:

* Header: "New Note" title with back and save buttons

* Body: Title field, text input, recipient and category selectors

* Footer: Delivery conditions section, save options

* Key UI Elements:

* Title input field

* Text area for note content

* Recipient selector button

* Category selector dropdown

* Delivery condition selector

* "Save Draft" button

* "Save to Vault" button

* Interactions:

* Same interaction pattern as **Letter Creation Screen**

**Video Creation Screen**

* Visual Hierarchy:

* Header: "New Video" title with back button

* Body: Video recording/upload area, preview player

* Footer: Title, recipient, delivery conditions, save options

* Key UI Elements:

* Camera viewfinder (for recording)

* Record button

* Upload from gallery button

* Video preview player

* Title input field

* Recipient selector

* Delivery condition selector

* "Save to Vault" button

* Interactions:

* Tap record → starts video recording

* Tap upload → opens device gallery for video selection

* Preview recorded/uploaded video before saving

* Assign recipients and delivery conditions

* Save to vault

**Recurring Message Creation Screen**

* Visual Hierarchy:

* Header: "New Recurring Message" title with back and save buttons

* Body: Title field, content field, recipient and category selectors, recurrence configuration

* Footer: Save options

* Key UI Elements:

* Title input field

* Text area for message content

* Recipient selector button

* Category selector dropdown

* Occasion selector (birthday, anniversary, custom)

* Yearly date picker

* Start condition selector

* "Save Draft" button

* "Save to Vault" button

* Interactions:

* Enter content → auto-save as draft periodically

* Tap recipient selector → opens recipient/group picker

* Tap occasion selector → presents occasion options

* Tap date picker → opens yearly date selection

* Tap "Save to Vault" → validates and saves with "ready/accepted" status

**Recurring Messages Unlock Screen**

* Visual Hierarchy:

* Header: "Unlock Recurring Messages" title with back button

* Body: Feature description, benefits, price

* Footer: Unlock button, restore purchases link

* Key UI Elements:

* Feature description text and visual

* Bulleted list of what the unlock enables

* Price label (sourced live from App Store / Play Store)

* "Unlock" button (primary)

* "Restore Purchases" link (secondary)

* Terms and refund policy links

* Interactions:

* Tap "Unlock" → initiates platform IAP flow (Apple StoreKit or Google Play Billing)

* On successful purchase → grants entitlement and returns to **Recurring Message Creation Screen**

* Tap "Restore Purchases" → recovers entitlement from a previous purchase, if any

* Tap back → returns to **Message Format Selection Screen**

**Delivery Conditions Screen**

* Visual Hierarchy:

* Header: "Delivery Conditions" title with back button

* Body: Delivery type options, date selectors

* Footer: Save button

* Key UI Elements:

* Delivery type radio buttons:

* Immediate upon confirmation

* Specific date

* Relative date after passing

* Date picker (for specific date)

* Number input and unit selector (for relative date)

* Save button

* Interactions:

* Select delivery type → reveals relevant date input

* Set date/time parameters → save conditions

### 4.4 Media Vault Screens

**Media Vault Screen**

* Visual Hierarchy:

* Header: "My Vault" title with search icon

* Body: Summary cards, filter bar, message list

* Footer: Bottom navigation bar

* Key UI Elements:

* Summary cards (total, drafts, ready/accepted counts)

* Filter bar (type, recipient, status, category)

* Search input

* Message list with preview cards:

* Message title

* Type icon

* Recipient name(s)

* Status badge

* Creation date

* Floating action button for new message

* Interactions:

* Tap filter → applies filter to message list

* Tap search → opens search input

* Tap message card → navigates to **Message Detail Screen**

* Tap floating action button → navigates to **Message Format Selection Screen**

**Message Detail Screen**

* Visual Hierarchy:

* Header: Message title with back and edit buttons

* Body: Full message content, recipient list, delivery conditions

* Footer: Action buttons (edit, delete)

* Key UI Elements:

* Message title

* Message type indicator

* Full content display (text or video player)

* Assigned recipients list

* Category label

* Delivery condition details

* Status indicator

* Edit button

* Delete button

* Interactions:

* Tap edit → navigates to **Message Edit Screen**

* Tap delete → confirmation prompt, then removes message

* Tap recipient name → navigates to recipient detail

### 4.5 Recipient Management Screens

**Recipient Manager Screen**

* Visual Hierarchy:

* Header: "Recipients" title with search icon

* Body: Tab bar (All, Groups), recipient list

* Footer: Bottom navigation bar

* Key UI Elements:

* Tab bar: All Recipients, Groups

* Search input

* Filter options (relationship, status)

* Recipient list with:

* Name

* Relationship label

* Acceptance status badge

* Messages assigned count

* Add recipient button

* Interactions:

* Tap tab → switches between all recipients and groups view

* Tap recipient → navigates to **Recipient Detail Screen**

* Tap "Add Recipient" → navigates to **Add Recipient Screen**

* Tap group → navigates to **Group Detail Screen**

**Add Recipient Screen**

* Visual Hierarchy:

* Header: "Add Recipient" title with back button

* Body: Recipient form fields

* Footer: Save button, send acceptance prompt toggle

* Key UI Elements:

* Name input field

* Email input field

* Phone number input field

* Relationship label selector

* Group assignment selector

* Send acceptance prompt toggle

* Acceptance prompt channel selector (email, text, or both)

* Save button

* Interactions:

* Fill form and save → adds recipient to list

* Toggle acceptance prompt → sends acceptance prompt via the selected channel(s) upon save

**Recipient Detail Screen**

* Visual Hierarchy:

* Header: Recipient name with back and edit buttons

* Body: Contact details, acceptance status, assigned messages list

* Footer: Action buttons (edit, remove)

* Key UI Elements:

* Recipient name and relationship

* Email and phone

* Acceptance status

* Group memberships

* List of assigned messages

* Administrator status indicator (if designated as administrator)

* Edit button

* Remove button

* Interactions:

* Tap edit → navigates to edit recipient form

* Tap assigned message → navigates to message detail

* Tap remove → confirmation prompt, then removes recipient

### 4.6 Administrator & Confirmation Screens

**Administrator Designation Screen**

* Visual Hierarchy:

* Header: "Administrator" title with back button

* Body: Current administrator (if any), backup administrator (if any), selection options

* Footer: Save button

* Key UI Elements:

* Administrator selector (choose from recipients or add new contact)

* Backup administrator selector (optional)

* Instructional text explaining the administrator role and access granted upon confirmation

* Save button

* Interactions:

* Select administrator and optional backup

* Tap save → updates designations and notifies the administrator (and backup) of their role

**Verification Dashboard (for the Administrator)**

* Visual Hierarchy:

* Header: "Verification" title

* Body: List of users who designated this person as administrator

* Footer: Bottom navigation bar

* Key UI Elements:

* User cards showing:

* User name and photo

* Designation date

* Status (active, confirmed)

* Confirmation action button per user

* Interactions:

* Tap user card → navigates to **Confirmation Screen**

**Confirmation Screen**

* Visual Hierarchy:

* Header: "Confirm Passing" title with back button

* Body: User information, confirmation details, warning text, additional verification step

* Footer: Confirm and cancel buttons

* Key UI Elements:

* User name and profile photo

* Explanation of what confirmation triggers

* Warning text about irreversibility

* Additional verification challenge (e.g., security prompt) the administrator must complete before final confirmation

* "Confirm Passing" button (enabled only after the additional verification step is satisfied; requires deliberate action)

* Cancel button

* Interactions:

* Complete the additional verification step → enables the "Confirm Passing" button

* Tap "Confirm Passing" → system processes confirmation → navigates to **Confirmation Complete Screen**

* Tap cancel → returns to **Verification Dashboard**

**Confirmation Complete Screen**

* Visual Hierarchy:

* Header: Acknowledgment icon

* Body: Confirmation message and summary

* Footer: Continue to administrator tools button

* Key UI Elements:

* Acknowledgment message

* Summary of what will happen next

* "Continue" button leading to **Administrator Post-Confirmation Screen**

* Interactions:

* Tap "Continue" → navigates to **Administrator Post-Confirmation Screen**

**Administrator Post-Confirmation Screen**

* Visual Hierarchy:

* Header: User name with back button

* Body: Secure file folder viewer, service details form, personal message field

* Footer: Notifications activation button, save button

* Key UI Elements:

* Secure file folder section (view-only):

* Insurance policy numbers

* Final wishes

* Bank account and other account information

* Other documents stored by the user

* Service details form:

* Service time, date, location

* Reception time, date, location

* Funeral time, date, location

* Optional personal message field

* "Activate Notifications" button (sends notice-of-death to recipients with the service details and personal message)

* Save button

* Interactions:

* View secure file folder contents (read-only)

* Enter service, reception, and funeral details

* Optionally add a personal message

* Tap "Save" → stores entered details

* Tap "Activate Notifications" → triggers notice-of-death notifications to all recipients

### 4.7 Recipient Message Viewing Screens

**Received Messages Screen**

* Visual Hierarchy:

* Header: "Messages" title

* Body: List of received messages

* Footer: Bottom navigation bar

* Key UI Elements:

* Message list with:

* Sender name and photo

* Message title

* Message type icon

* Delivery date

* Read/unread status

* Interactions:

* Tap message → navigates to **Message View Screen**

**Message View Screen**

* Visual Hierarchy:

* Header: Sender name and photo with back button

* Body: Full message content

* Footer: Acknowledge button

* Key UI Elements:

* Sender profile photo and name

* Message title

* Message content (text display or video player)

* Delivery date

* Acknowledge receipt button

* Interactions:

* View message content

* Tap acknowledge → records receipt confirmation

* Tap back → returns to **Received Messages Screen**

### 4.8 Settings Screens

**Settings Screen**

* Visual Hierarchy:

* Header: "Settings" title

* Body: Settings menu sections

* Footer: Bottom navigation bar

* Key UI Elements:

* Account security section:

* Change password

* Connected accounts

* Notification preferences section:

* Email notifications toggle

* Text notifications toggle

* In-app notifications toggle

* Administrator link

* Privacy options section

* Legal documents section:

* Privacy policy link

* Terms and conditions link

* Account deactivation link

* Interactions:

* Tap setting item → navigates to relevant settings detail screen

* Tap administrator → navigates to **Administrator Designation Screen**

* Tap legal document → opens document viewer

* Tap deactivate → confirmation prompt

**Notifications Screen**

* Visual Hierarchy:

* Header: "Notifications" title with back button

* Body: Notification list ordered by date

* Footer: None

* Key UI Elements:

* Notification cards with:

* Notification type icon

* Description text

* Timestamp

* Read/unread indicator

* Interactions:

* Tap notification → navigates to relevant screen

* Swipe to dismiss or mark as read

## 5\. Admin Panel

### User Management

**View User List**

* List of all registered users

* Search and filter options (by name, email, registration date, status)

* User type indicators (User, Recipient, Administrator)

* Account status display (active, suspended, deactivated)

* Sort by registration date

**View User Details**

* User profile information (name, email, photo, bio)

* Account creation date

* Activity summary:

* Messages created count

* Recipients designated count

* Administrator designated indicator

* Recurring messages entitlement status (purchased, not purchased, refunded)

* Account status and history

* Activity logs

**User Actions**

* Deactivate/suspend user account

* Reset password capability

* Remove user content

* Reactivate account option

### Content & Category Management

**Category Management**

* View all message categories

* Create new categories

* Edit existing category names and descriptions

* Deactivate or delete categories

* Set category display order

**Content Review**

* View flagged or reported content

* Review message content for policy compliance

* Approve or remove content

* View content moderation history

### Passing Confirmation Oversight

**Confirmation Log**

* View all passing confirmations with details:

* Confirmed user name

* Confirming administrator name

* Confirmation timestamp

* Delivery status of triggered messages

* Search and filter confirmation records

* View delivery status for each confirmed user's messages

### Notification Management

**Notification Logs**

* View all notification events

* Filter by type (acceptance prompt, delivery, system)

* View delivery status (sent, failed, pending)

* Resend failed notifications

### Content Moderation

**User Content Review**

* View reported messages or content

* Review content details

* Remove inappropriate content

* Notify user of content removal

### Legal Content Management

**Privacy Policy Editor**

* View current privacy policy

* Edit policy content

* Save and publish changes

* Version history tracking

**Terms & Conditions Editor**

* View current terms

* Edit terms content

* Save and publish changes

* Version history tracking

## 6\. Integration & API Considerations

**Messaging Integration:**

* Email notification delivery for all outbound communications

* Text (SMS) notification delivery for acceptance prompts and message notifications

* Acceptance prompt emails and text messages sent to recipients

* Password reset emails

* Passing confirmation notification emails

* Message delivery notification emails and texts with secure links

**In-App Purchase Integration:**

* Apple App Store In-App Purchase (StoreKit) on iOS for the recurring messages unlock

* Google Play Billing on Android for the recurring messages unlock

* One-time, non-consumable product type

* Purchase receipt validation to grant the entitlement on the user's account

* Restore Purchases flow supported on both platforms

* Refund handling: when Apple or Google notifies the app of a refund, the corresponding entitlement is removed

**API-Specific Notes:**

* No integration with third-party services for automatic passing verification

* No integration with external social media platforms

* Payment processing is handled exclusively through Apple App Store In-App Purchase and Google Play Billing (no third-party payment processors)

* Email and text (SMS) are the primary external communication channels

* Notification delivery is limited to in-app notifications, email, and text (no other channels)

## 7\. Business Rules & Additional Considerations

**Data & Content Rules:**

* All messages and content must be created and managed by users

* Users are solely responsible for the accuracy and completeness of their messages

* Recipients are not required to register on the app to receive messages; they accept via an email or text prompt

* Recipients who choose to register do so under their own separate account, with no access to the inviting user's account

* Recipients can view messages via secure links delivered by email or text without downloading the app

* Admin manages user-selectable content such as message categories

**Passing Confirmation Rules:**

* Passing verification is handled entirely by the designated administrator manually through the app

* No third-party services are integrated for automatic passing verification

* Only the designated administrator (or backup, if invoked) can confirm a user's passing

* Only one administrator may be designated, with one optional backup

* Confirmation requires both the confirmation button press and an additional verification step

* Confirmation is irreversible once submitted

* Confirmation triggers the automated message delivery workflow

* Upon confirmation, the administrator gains limited, view-only access to the user's secure file folder

* The administrator may add service, reception, and funeral details and an optional personal message after confirmation

* The platform does not manage any legal compliance related to confirming the passing of a user

**Message Delivery Rules:**

* Messages are delivered only after passing confirmation by the designated administrator

* Delivery channels are limited to in-app notifications, email, and text notifications

* Scheduled messages are queued for their designated delivery dates after confirmation

* Recurring messages are queued for their yearly occasion dates after confirmation

* Immediate messages are sent as soon as passing is confirmed

* Messages can be edited or deleted by the user at any time before delivery is triggered

* Delivered messages cannot be modified

* Pre-delivery message statuses are limited to "draft" and "ready/accepted"

**Recipient Rules:**

* Recipients are not required to register on the app to receive notifications

* Recipients receive an acceptance prompt via email or text when added by a user

* Recipients can view messages via secure links in email or text without registering for the app

* Recipients may optionally create their own full profile and prepare their own messages, under a separate account

**Privacy & Safety:**

* Users control who receives their messages through explicit recipient designation

* Message content is private and accessible only to the creating user and designated recipients after delivery

* Admin can review content for policy compliance but message content privacy is maintained

* Users can report inappropriate behavior

* Admin can disable accounts that violate platform terms

**In-App Purchase Rules:**

* The recurring messages feature is unlocked through a one-time, non-consumable in-app purchase

* All purchases are processed through Apple App Store (StoreKit) on iOS and Google Play Billing on Android

* No third-party payment processors are integrated

* Once purchased, the entitlement persists permanently on the user's account unless the underlying purchase is refunded by Apple or Google

* Users may restore previous purchases on a new device or reinstall via the standard platform restore flow

* Refund decisions are made solely by Apple or Google; the platform does not process refunds directly

* A refund of the purchase results in automatic removal of the recurring messages entitlement

**Legal & Liability:**

* All legal liability is on the client

* Privacy Policy and Terms & Conditions managed through admin panel

* Users must accept terms during registration

* The platform does not confirm or verify the actual passing of a user; it only facilitates the manual confirmation process initiated by the designated administrator

* Payments are handled exclusively through Apple App Store and Google Play in-app purchase systems; no other payments are accepted within the app
