App Structure Overview
BLOOMIYA has 7 main tabs across 75 screens (A-H Series):
| Tab |
Series |
Icon |
Purpose |
| Home | B-Series | 🏠 | Dashboard, announcements, notifications |
| Health | C-Series | ❤️ | Health metrics, wearables, 7 dimensions, food/water logging |
| Bloom (Center) | D-Series | 🌱 | AI Chat assistant, 13 personalities, insights |
| Living Proof | E-Series | ✓ | Verification status, confidence score, arbitration |
| Earnings | F-Series | 💰 | Daily earnings, 70/10/20 split, Bloom stages |
| Wallet | G-Series | 👛 | SubCoin balance, minting, HealthNIT vesting |
| Settings | H-Series | ⚙️ | Profile, security, family, privacy |
Backend Services
| Service |
Port |
Purpose |
| Auth Service | 8001 | Authentication, KYC, 2FA |
| Health Service | 8002 | Metrics, wearables, dimensions |
| Earnings Service | 8003 | Daily earnings, distributions |
| LivingProof Service | 8004 | Verification, confidence scores |
| Bloom Service | 8005 | AI chat, personalities |
| Minting Service | 8006 | SubCoin minting |
| Wallet Service | 8007 | Wallet, transactions |
1. Authentication Flow
1.1 Welcome Screen
app/(auth)/welcome.tsx
- Launch app for first time (fresh install)
- Verify animated logo displays
- Verify 7 health dimension icons visible
- Verify "Begin Your Journey" button present
- Verify "Sign In" link present
Expected: Welcome screen loads within 2 seconds. All UI elements render. Logo animation plays smoothly.
- Open app on small screen device (iPhone SE, small Android)
- Scroll through welcome screen
- Verify text not cut off on sides
- Verify dimension icons wrap properly
Expected: All content visible. No horizontal scrolling needed. Text wraps appropriately.
1.2 Sign Up
app/(auth)/sign-up.tsx
- Tap "Begin Your Journey"
- Complete quick personalization
- Enter valid email (not registered)
- Enter valid password (8+ chars, mixed case, number, special)
- Enter full name
- Select DOB (18+ years)
- Tap "Create Account"
Expected: Account created. Navigate to OTP verification. Email sent with code.
- Enter invalid email: "notanemail"
- Attempt to proceed
Expected: Error message: "Please enter a valid email address"
- Enter weak password: "123"
- Verify error shown
- Enter password without special char
- Verify requirements displayed
Expected: Password requirements shown. Cannot proceed with weak password.
- Enter email already registered
- Complete other fields
- Submit
Expected: Error: "Email already registered"
1.3 Sign In
app/(auth)/sign-in.tsx
- Tap "Sign In" on welcome
- Enter registered email
- Enter correct password
- Tap "Sign In"
Expected: User authenticated. Navigate to home (or OTP if 2FA enabled).
- Enter valid email
- Enter wrong password
- Tap "Sign In"
Expected: Error: "Invalid email or password". Stay on sign-in screen.
1.4 OTP Verification
app/(auth)/otp-verification.tsx
- Check email for OTP
- Enter 6-digit code
- Tap verify
Expected: OTP verified. Proceed to next step.
- Enter wrong OTP code
- Tap verify
Expected: Error: "Invalid OTP". Show remaining attempts.
- Tap "Resend OTP"
- Verify cooldown timer starts
- Check email for new code
Expected: New OTP sent. 60-second cooldown before next resend.
1.5 Password Reset
app/(auth)/password-reset.tsx
- Tap "Forgot Password"
- Enter registered email
- Tap "Send Reset Link"
Expected: Confirmation shown. Reset email sent.
1.6 KYC Flow
app/(auth)/kyc/
- Select ID type (Passport/License/National ID)
- Upload document front
- Upload document back (if required)
- Take selfie with liveness check
- Confirm personal details
- Review and submit
Expected: KYC submitted. Status: "Pending Review".
- Try uploading blurry image
- Try wrong file format
- Try file > 10MB
Expected: Appropriate error for each. Only valid images accepted.
- Start selfie capture
- Follow prompts (blink, turn head)
- Try with photo of photo (spoofing)
Expected: Live selfie passes. Photo spoofing rejected.
2. Home Tab
2.1 Home Dashboard
app/(tabs)/home/index.tsx
- Login and navigate to Home tab
- Verify health metrics display
- Check steps, heart rate, sleep cards
- Verify quick action buttons work
Expected: Dashboard loads with all metrics. Quick actions navigate correctly.
- Pull down on home screen
- Observe refresh indicator
- Wait for data reload
Expected: Refresh indicator shows. Data reloads.
- Tap "Add Water" quick action
- Select water amount
- Verify logged
- Check Log tab for same entry
Expected: Water logged. Synced between Home and Log screens.
2.2 Announcements
app/(tabs)/home/announcements.tsx
- Navigate to announcements
- Verify list loads
- Check priority ordering
- Tap to expand announcement
Expected: Announcements display in priority order.
2.3 Notifications
app/(tabs)/home/notifications-center.tsx
- Navigate to notifications
- View notification list
- Tap notification to mark read
Expected: Notifications display with timestamps. Mark as read works.
3. Health Tab
3.1 Health Overview
app/(tabs)/health/index.tsx
- Navigate to Health tab
- Verify wearable connection status
- Verify metrics cards display
- Check weekly activity chart
Expected: Wearable status shown. Metrics populated. Chart renders.
- Tap "Sync Now" button
- Observe loading state
- Wait for completion
- Verify data updates
Expected: Loading shows. Sync completes. Last sync time updates.
3.2 Wearables
app/(tabs)/health/wearables/index.tsx
iOS Only
- Navigate to wearables
- Tap "Connect Apple Health"
- Grant health permissions
- Verify connection success
Expected: Permission dialog shows. After grant, shows "Connected".
Android Only
- Navigate to wearables
- Tap "Connect Health Connect"
- Grant permissions
- Verify connection
Expected: Health Connect permissions shown. Connection established.
- Tap "Connect Fitbit"
- Complete OAuth in browser
- Verify redirect back to app
- Verify connected status
Expected: OAuth flow completes. Fitbit shows connected.
- Select connected wearable
- Tap "Disconnect"
- Confirm action
Expected: Wearable disconnected. Removed from list.
3.3 Daily Metrics
app/(tabs)/health/daily-metrics.tsx
- Navigate to daily metrics
- Verify steps breakdown
- Check heart rate stats
- Check sleep data
Expected: All metrics display with correct values.
3.4 Health Dimensions
app/(tabs)/health/dimensions.tsx
- Navigate to dimensions
- Verify all 7 display (Physical, Mental, Sleep, Nutrition, Social, Purpose, Financial)
- Check individual scores
- Verify trend indicators
Expected: All 7 dimensions visible with scores 0-100.
3.5 Manual Entry
app/(tabs)/health/manual-entry.tsx
- Open manual entry
- Enter steps: 5000
- Select date/time
- Save
Expected: Entry saved. Reflects in daily total.
- Log water from manual entry (500ml)
- Save entry
- Go to Log tab food screen
- Verify same water amount shows
Expected: Water synced between Health and Log screens.
3.6 Anomalies
app/(tabs)/health/anomalies.tsx
- Navigate to anomalies
- View detected anomalies
- Check severity levels
- Mark as reviewed
Expected: Anomalies listed with severity. Can mark as reviewed.
3.7 Workouts
app/(tabs)/health/workout-history.tsx, workout-session-tracker.tsx
- Navigate to workout history
- View past workouts
- Check duration, calories, type
Expected: Workouts display with correct details.
4. Bloom AI Tab
4.1 AI Chat Home
app/(tabs)/bloom/index.tsx
- Tap center Bloom button
- Verify AI chat home loads
- Check personality selector available
- Check conversation history displays
Expected: Bloom tab loads. Personality selector works. History visible.
- Tap personality selector
- View available personalities
- Select "Motivator"
- Verify selection persists
Expected: Personalities display. Selection saved. Avatar updates.
- Tap "New Conversation"
- Verify conversation screen opens
- Check AI greeting appears
Expected: New conversation created. AI greeting based on personality.
4.2 Conversation
app/(tabs)/bloom/[conversationId].tsx
- Type: "How can I improve my sleep?"
- Tap send
- Observe typing indicator
- Wait for AI response
Expected: Message sent. Typing indicator shows. AI responds with relevant advice.
- Have multi-turn conversation
- Close app completely
- Reopen and navigate to conversation
- Verify history preserved
Expected: All messages visible after reopening.
- Receive AI response
- Tap thumbs up/down
- Verify feedback recorded
Expected: Feedback icon changes. Feedback sent.
4.3 Insights & Recommendations
app/(tabs)/bloom/insights-plans.tsx, recommendations-cards.tsx
- Navigate to insights
- View AI-generated insights
- Check recommendations
Expected: Insights and recommendations display.
5. Living Proof Protocol (E-Series)
Patent-pending behavioral verification system with 30 pending patents
5.1 Living Proof Dashboard
app/(tabs)/livingproof/index.tsx
- Navigate to Living Proof tab
- Verify confidence score displays (0.5-1.5 range)
- Check verification status indicator
- Verify daily verification count
Expected: Dashboard loads with confidence score and verification status.
- View confidence score on dashboard
- Verify score is within 0.5-1.5 range
- Check score trend indicator (up/down/stable)
- Tap to view score breakdown by dimension
Expected: Score displays correctly. Breakdown shows 7 dimension contributions.
5.2 Verification Status
app/(tabs)/livingproof/verification-status.tsx
- Navigate to verification history
- View list of past verifications
- Check timestamps and status
- Filter by verification type
Expected: History displays with timestamps. Filtering works.
- Attempt to submit suspicious data patterns
- Submit data at impossible intervals
- Submit outlier health metrics
Expected: System flags suspicious activity. Confidence score adjusts. Warning shown.
5.3 Arbitration
app/(tabs)/livingproof/arbitration.tsx
- Navigate to arbitration section
- View any pending cases
- Check case details and evidence
Expected: Cases display with status. Evidence viewable.
- Select flagged verification
- Tap "Submit Appeal"
- Provide additional evidence/explanation
- Submit appeal
Expected: Appeal submitted. Status changes to "Under Review".
6. Earnings System (F-Series)
Daily earnings from $0.10 to $1.00 based on verified healthy behaviors
6.1 Earnings Dashboard
app/(tabs)/earnings/index.tsx
- Navigate to Earnings tab
- Verify daily earnings display ($0.10-$1.00)
- Check 70/10/20 distribution breakdown
- Verify Bloom Stage indicator
Expected: Dashboard shows daily earnings, distribution split, and current Bloom stage.
- View distribution breakdown
- Verify 70% to User display
- Verify 10% to Family Pool display
- Verify 20% to Platform display
- Check calculations are accurate
Expected: Distribution shows correct percentages. Math is accurate.
6.2 Bloom Stages
app/(tabs)/earnings/bloom-stages.tsx
- View current Bloom stage
- Verify stage name (SEEDLING/SPROUT/FLOURISH/THRIVE/RADIANT)
- Check progress to next stage
- View stage benefits/multipliers
Expected: Current stage displays. Progress bar shows advancement.
- Note current stage multiplier
- Check earnings calculation includes multiplier
- View multiplier breakdown
Expected: Multiplier applied to earnings correctly.
6.3 Family Multiplier
app/(tabs)/earnings/family-multiplier.tsx
- Navigate to family multiplier section
- View current multiplier (1.0x-1.3x range)
- Check family member contributions
- Verify multiplier calculation
Expected: Family multiplier displays. Member contributions visible.
6.4 180-Day Cliff
app/(tabs)/earnings/cliff-countdown.tsx
- View 180-day cliff countdown (new users)
- Check days remaining display
- Verify locked earnings indicator
- Check unlock date
Expected: Countdown displays accurately. Unlock date shown.
6.5 Earnings Ledger
app/(tabs)/earnings/ledger.tsx
- Navigate to earnings ledger
- View daily earnings history
- Filter by date range
- Check transaction details
Expected: History displays with dates. Filtering works. Details accurate.
7. Wallet & Minting (G-Series)
SubCoin balance, minting, and HealthNIT vesting
7.1 Wallet Dashboard
app/(tabs)/wallet/index.tsx
- Navigate to Wallet tab
- Verify SubCoin balance displays
- Check HealthNIT vesting balance
- Verify wallet address shown
Expected: Balances display. Wallet address visible (truncated).
- Tap "Connect Wallet"
- Select wallet type (MetaMask, WalletConnect)
- Approve connection in wallet app
- Verify connection success
Expected: Wallet connected. Address displays. Status: Connected.
7.2 SubCoin Minting
app/(tabs)/wallet/minting.tsx
- Navigate to minting section
- View mintable SubCoin amount
- Check minting eligibility
- View minting schedule
Expected: Mintable amount displays. Eligibility status shown.
- Tap "Mint" button (if eligible)
- Confirm minting transaction
- Wait for blockchain confirmation
- Verify balance updated
Expected: Transaction submitted. Balance updates after confirmation.
7.3 HealthNIT Vesting
app/(tabs)/wallet/vesting.tsx
- Navigate to vesting section
- View total HealthNIT allocation
- Check vesting schedule/timeline
- View unlocked vs locked amounts
Expected: Vesting schedule displays. Unlock dates visible.
7.4 Transaction History
app/(tabs)/wallet/transactions.tsx
- Navigate to transactions
- View list of transactions
- Filter by type (mint, transfer, reward)
- Tap to view on block explorer
Expected: Transactions list displays. Explorer link works.
8. Settings Tab (H-Series)
8.1 Profile
app/(tabs)/settings/index.tsx
- Navigate to Settings tab
- View profile info
- Check AI personality display
- Check navigation buttons
Expected: Profile loads. All sections accessible.
- Tap profile photo
- Select from camera/gallery
- Save
Expected: Photo uploaded. Updates across app.
8.2 Security Settings
app/(tabs)/settings/security-settings.tsx
- Navigate to security settings
- Toggle 2FA on
- Verify with OTP
- Confirm enabled
Expected: 2FA enabled. Next login requires OTP.
- Toggle biometric on
- Authenticate with Face ID/Touch ID
- Close and reopen app
- Verify biometric prompt
Expected: Biometric enrolled. App launch shows prompt.
- Enter current password
- Enter new password
- Confirm new password
- Save and logout
- Login with new password
Expected: Password changed. New password works.
8.3 Family
app/(tabs)/settings/family/
- Navigate to family settings
- Tap "Add Family Member"
- Enter email
- Select relationship
- Send invitation
Expected: Invitation sent. Pending shows in list.
8.4 Guardians
app/(tabs)/settings/guardians/
- Navigate to guardians (for minor account)
- Invite guardian email
- Verify invitation sent
Expected: Guardian invitation works. COPPA compliance.
8.5 Data Export
app/(tabs)/settings/data-download-portability.tsx
- Navigate to data download
- Select data to export
- Request export
- Wait for email
Expected: Export requested. Email sent with download link.
8.6 Notifications
app/(tabs)/settings/notifications.tsx
- Navigate to notifications
- Toggle notification types
- Set quiet hours
- Save preferences
Expected: Preferences saved. Applied to future notifications.
8.7 Help & About
app/(tabs)/settings/help-support.tsx, about-legal.tsx
- Navigate to help
- Search FAQ
- Contact support
Expected: FAQ searchable. Support contact works.
- Navigate to about
- Verify app version (2.0.5)
- View Terms of Service
- View Privacy Policy
Expected: Version correct. Legal docs viewable.
9. Wearable Integration
| Platform |
iOS |
Android |
Status |
| Apple Health | ✅ | ❌ | Supported |
| Google Health Connect | ❌ | ✅ | Supported |
| Fitbit | ✅ | ✅ | Supported |
| Garmin | 🔜 | 🔜 | Coming Soon |
- Record known activity on wearable
- Trigger sync in app
- Compare app data with wearable
Expected: App data matches wearable exactly.
- Connect wearable
- Close app (background)
- Generate new health data
- Reopen app after 1 hour
Expected: Data synced in background.
10. Blockchain Integration
Multi-chain architecture: Polygon (primary) and Arbitrum (secondary)
10.1 Network Connection
- Open wallet/settings
- Check Polygon network status
- Verify connection indicator
- Check block height updates
Expected: Polygon shows "Connected". Block height updates.
- Check Arbitrum network status
- Verify fallback connection
- Test network switching
Expected: Arbitrum available as secondary. Fallback works.
10.2 Smart Contract Interactions
- View SubCoin balance
- Verify balance matches contract state
- Check token metadata (name, symbol, decimals)
Expected: Balance accurate. Metadata correct.
- Initiate a transaction (mint/transfer)
- Wait for pending status
- Verify confirmation count
- Check final confirmation
Expected: Transaction confirmed. Status updates in real-time.
10.3 Error Handling
- Disable network connection
- Attempt blockchain operation
- Verify error message
- Re-enable and verify recovery
Expected: Graceful error. Recovery on reconnect.
- Attempt transaction with insufficient gas
- Verify error message
- Check suggested gas amount
Expected: Clear error message. Gas suggestion provided.
11. Regression Checklist
Pre-Release Checklist
- Welcome screen loads correctly
- Sign up flow completes
- Sign in works
- OTP verification functions
- Password reset sends email
- KYC submission works
- Home dashboard loads metrics
- Health data syncs from wearables
- Manual health entry saves
- 7 Health dimensions display correctly
- Bloom AI chat responds
- Personality selection persists
- Living Proof confidence score displays
- Verification status updates
- Anti-gaming detection works
- Daily earnings calculate correctly
- 70/10/20 distribution displays
- Bloom stage progression works
- 180-day cliff countdown shows
- Wallet balance displays
- SubCoin minting works
- HealthNIT vesting schedule shows
- Blockchain connection status shows
- Transaction history displays
- Profile photo upload works
- Security settings toggle
- 2FA enable/disable works
- Data export triggers email
- App icon displays correctly
- No crashes on any screen
- Logout clears session
Device Matrix
| Device |
OS |
Screen |
Status |
| iPhone 15 Pro | iOS 17 | 6.1" | ☐ Pending |
| iPhone SE | iOS 17 | 4.7" | ☐ Pending |
| Samsung S23 | Android 14 | 6.1" | ☐ Pending |
| Pixel 4a | Android 13 | 5.81" | ☐ Pending |