Mobile App Feature Parity Plan
Overview
This document outlines the plan to bring the React Native mobile app to feature parity with the web application. The plan covers all features added since the last mobile app push, including DreamPro, Encouragement Drops, Badge System, and WorkoutWindow enhancements.
Current Mobile App Status
✅ Already Implemented
- Authentication (Sign In/Sign Up)
- Dashboard with journal entries
- Entry editor and detail views
- Notebooks (list, detail, editor)
- Goals (list, detail, editor)
- Stream view
- Settings screen
- WorkoutWindow setup screen
- WorkoutWindow check-in screen
- Action button (floating)
- Satisfaction slider (floating)
- Positive note display (floating)
❌ Missing Features (Need Implementation)
Phase 1: DreamPro System
1.1 Dream Management Screens
Priority: High
-
Dream List Screen (
screens/dreampro/DreamsScreen.tsx)- Display all user dreams in a list/grid
- Show progress bars, status badges, category icons
- Pull-to-refresh
- Filter by status (active, paused, completed, abandoned)
- Navigation to dream detail
-
Dream Detail Screen (
screens/dreampro/DreamDetailScreen.tsx)- Display dream information (title, description, category, target date)
- Progress visualization (percentage, steps completed/total)
- Next step highlight card
- Steps list with status indicators
- Actions: Edit, Delete, Add Step, Complete Step
- Integration buttons: Add to WorkoutWindow, Add as Action
-
Dream Editor Screen (
screens/dreampro/DreamEditorScreen.tsx)- Create/Edit dream form
- Title, description inputs
- Category picker (with icons)
- Target date picker
- Visibility selector (private, public, team)
- Status selector
1.2 Step Management
Priority: High
-
Step Editor Component (
components/dreampro/StepEditor.tsx)- Add/Edit step form
- Title, description inputs
- Estimated hours input
- Dependency selector (other steps)
- Step order management
-
Step List Component (
components/dreampro/StepList.tsx)- Display steps in order
- Status indicators (not_started, in_progress, completed, blocked)
- Drag-to-reorder (optional)
- Quick actions: Complete, Add to WorkoutWindow
1.3 Navigation Integration
Priority: Medium
-
Add DreamPro routes to
MainNavigator.tsx- Dreams list screen
- Dream detail screen
- Dream editor screen
-
Add DreamPro link to Settings screen
-
Add DreamPro tab or section in Dashboard (optional)
1.4 Action Button Integration
Priority: Medium
-
Update
ActionPanel.tsxto show DreamPro next steps- Fetch active dreams and next steps
- Display next steps section
- Allow quick selection to add as action
- Auto-populate description from step
-
Add "dreampro" category to action categories
Phase 2: Encouragement Drops System
2.1 Drop Management
Priority: High
-
Drop Sender Component (
components/drops/DropSender.tsx)- Modal/sheet for sending drops
- Drop type selector (encouragement, media, science)
- Template library browser
- Custom drop input
- Remaining drops counter
- Recipient selection (from Stream or user search)
-
Drop Templates Screen (
screens/drops/DropTemplatesScreen.tsx)- Browse approved templates
- Filter by type
- Search functionality
- Usage count display
-
Drops Received Screen (
screens/drops/DropsReceivedScreen.tsx)- List of drops received
- Filter by type
- Sender information
- Timestamp
- Link to associated entry (if any)
2.2 Stream Integration
Priority: High
-
Update
StreamScreen.tsxto show drop sending option- Add drop button to entry cards
- Show drop sender modal on tap
- Display badge indicators on entries
-
Add drop received notifications
- Show badge when new drops received
- Notification banner or badge count
2.3 Drop Status Display
Priority: Medium
- Drop Counter Component (
components/drops/DropCounter.tsx)- Display remaining drops for today
- Show in navigation or header
- Update in real-time
Phase 3: Badge System
3.1 Badge Display Components
Priority: Medium
-
Badge Display Component (
components/badges/BadgeDisplay.tsx)- Show user badge (emoji, name, level)
- Progress bar to next level
- Tooltip/modal with badge details
- Badge colors and styling
-
Badge Leaderboard Component (
components/badges/BadgeLeaderboard.tsx)- Top users by badge level
- User's current rank
- Progress to next badge
3.2 Integration Points
Priority: Medium
- Add badge display to Stream entry cards
- Add badge display to user profiles
- Add badge section to Settings screen
- Show badge in navigation/header (optional)
Phase 4: WorkoutWindow Enhancements
4.1 Additional Screens
Priority: High
-
WorkoutWindow Dashboard Screen (
screens/workout-window/WorkoutWindowDashboardScreen.tsx)- Today's check-in status
- Team stats (Red vs Blue)
- Quick actions (Check In, View Chain, View Mosaic, View Battle)
- Recent activity
-
Chain View Screen (
screens/workout-window/ChainViewScreen.tsx)- Display chain (before, current, after users)
- Squad information
- Team color indicator
- Check-in status for each person
- Pass baton visualization
-
Mosaic View Screen (
screens/workout-window/MosaicViewScreen.tsx)- Display daily low-poly mosaic SVG
- Interactive (tap sections to see user details)
- Stats display (completion rate, etc.)
- Date selector
-
Battle View Screen (
screens/workout-window/BattleViewScreen.tsx)- Current week battle
- Team robot stats (Attack, Defense, Speed, Special)
- Bad guy power
- Battle outcome
- Battle log
- Battle history
4.2 WorkoutWindow Setup Enhancements
Priority: Medium
- Update
WorkoutWindowSetupScreen.tsxto show DreamPro steps- Display available dream steps
- One-tap add to workout window
- Link to DreamPro detail
4.3 Navigation Updates
Priority: Medium
-
Add WorkoutWindow routes to
MainNavigator.tsx- Dashboard
- Chain view
- Mosaic view
- Battle view
-
Update Settings screen to link to WorkoutWindow dashboard
Phase 5: Stream Enhancements
5.1 WorkoutWindow Status Integration
Priority: High
- Update
StreamScreen.tsxto fetch and display workout window statuses- Bulk fetch statuses for all users in stream
- Display status badges on entry cards
- Green for resolved, yellow for pending
- Tap to view workout window details
5.2 Badge Integration
Priority: Medium
- Display badges on entry cards in Stream
- Show badge emoji/icon
- Badge name on hover/tap
- Badge level indicator
5.3 DreamPro Integration
Priority: Low
- Show public dreams in Stream (optional)
- Fixed panel or section
- Progress indicators
- Link to dream detail
Phase 6: Action Button Enhancements
6.1 DreamPro Next Steps
Priority: Medium
- Update
ActionPanel.tsxto show DreamPro next steps- Fetch active dreams and next steps
- Display in collapsible section
- Quick selection to add as action
- Visual distinction (purple theme)
6.2 Enhanced Action Categories
Priority: Low
- Add "dreampro" category to action categories
- Update category icons/emojis
Phase 7: API Integration
7.1 API Service Updates
Priority: High
- Update
services/api.tswith new endpoints:- DreamPro endpoints (
/api/dreampro/*) - Encouragement Drops endpoints (
/api/encouragement-drops/*) - Badge endpoints (
/api/encouragement-drops/badges/*) - WorkoutWindow enhanced endpoints
- DreamPro endpoints (
7.2 Type Definitions
Priority: High
- Add TypeScript types for:
- Dream and DreamStep interfaces
- Drop interfaces (DropTemplate, DropSent, UserDrops)
- Badge interfaces (Badge, BadgeDefinition, BadgeMilestone)
- WorkoutWindow enhanced types (Chain, Squad, Mosaic, Battle)
Phase 8: UI/UX Enhancements
8.1 Component Library
Priority: Medium
- Create reusable components:
- ProgressBar component
- StatusBadge component
- CategoryPicker component
- DatePicker component (if not exists)
- ImagePicker component (for check-ins)
8.2 Navigation Improvements
Priority: Medium
- Add bottom tab for WorkoutWindow (optional)
- Add bottom tab for DreamPro (optional)
- Or add to Settings/Dashboard as sections
8.3 Visual Consistency
Priority: Low
- Match web app color schemes:
- DreamPro: Purple theme
- WorkoutWindow: Orange/Red theme
- Badges: Color-coded by level
- Drops: Type-specific colors
Implementation Order
Sprint 1: Core DreamPro (Week 1-2)
- Dream list screen
- Dream detail screen
- Dream editor screen
- Step management components
- Navigation integration
- API integration
Sprint 2: WorkoutWindow Enhancements (Week 2-3)
- WorkoutWindow dashboard screen
- Chain view screen
- Mosaic view screen
- Battle view screen
- DreamPro integration in setup
Sprint 3: Encouragement Drops (Week 3-4)
- Drop sender component
- Drop templates screen
- Drops received screen
- Stream integration
- Drop counter component
Sprint 4: Badge System & Stream Enhancements (Week 4-5)
- Badge display components
- Badge leaderboard
- Stream workout window statuses
- Stream badge display
- Action button DreamPro integration
Sprint 5: Polish & Testing (Week 5-6)
- UI/UX refinements
- Performance optimization
- Error handling
- Testing on iOS and Android
- Bug fixes
Technical Considerations
Dependencies
- Verify all required packages are installed:
react-native-svg(for mosaic display)@react-native-community/datetimepicker(for date/time pickers)expo-image-picker(for photo uploads in check-ins)react-native-gesture-handler(for drag-to-reorder, if implemented)
Performance
- Implement pagination for long lists (dreams, steps, drops)
- Use React Query for caching and optimistic updates
- Optimize image loading in Stream
- Lazy load components where appropriate
Offline Support
- Consider offline-first approach for viewing data
- Queue actions when offline
- Sync when connection restored
Testing
- Unit tests for new components
- Integration tests for API calls
- E2E tests for critical flows
- Test on both iOS and Android
- Test on different screen sizes
File Structure
apps/mobile/src/
├── screens/
│ ├── dreampro/
│ │ ├── DreamsScreen.tsx
│ │ ├── DreamDetailScreen.tsx
│ │ └── DreamEditorScreen.tsx
│ ├── drops/
│ │ ├── DropTemplatesScreen.tsx
│ │ └── DropsReceivedScreen.tsx
│ └── workout-window/
│ ├── WorkoutWindowDashboardScreen.tsx
│ ├── ChainViewScreen.tsx
│ ├── MosaicViewScreen.tsx
│ └── BattleViewScreen.tsx
├── components/
│ ├── dreampro/
│ │ ├── StepEditor.tsx
│ │ ├── StepList.tsx
│ │ └── DreamCard.tsx
│ ├── drops/
│ │ ├── DropSender.tsx
│ │ └── DropCounter.tsx
│ └── badges/
│ ├── BadgeDisplay.tsx
│ └── BadgeLeaderboard.tsx
└── services/
└── api.ts (updated with new endpoints)
Success Criteria
- All DreamPro features available on mobile
- All Encouragement Drops features available on mobile
- Badge system fully integrated
- WorkoutWindow enhancements complete
- Stream shows all status indicators
- Action button includes DreamPro integration
- UI/UX matches web app quality
- Performance is acceptable on both iOS and Android
- All features tested and working
Notes
- Prioritize features based on user feedback and usage patterns
- Consider mobile-specific UX improvements (e.g., swipe gestures, pull-to-refresh)
- Ensure accessibility (screen readers, keyboard navigation)
- Follow React Native best practices and design patterns
- Maintain consistency with existing mobile app design language