docs: Add comprehensive development backlog
Some checks failed
CI/CD Pipeline / Build Application (push) Has been cancelled
CI/CD Pipeline / Lint and Test (push) Has been cancelled
CI/CD Pipeline / E2E Tests (push) Has been cancelled

- Created BACKLOG.md with 20 organized tasks from localization plan
- Categorized by priority: High (3), Medium (3), Low (14)
- Added implementation details, file references, and effort estimates
- Organized into 3 recommended sprints
- Total remaining work: 40-60 hours (1-1.5 weeks)
- Includes localization refinement, testing, documentation, and future features

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-03 21:04:22 +00:00
parent eb78e75582
commit 0391a04d90
2 changed files with 463 additions and 882 deletions

463
docs/BACKLOG.md Normal file
View File

@@ -0,0 +1,463 @@
# Maternal App - Development Backlog
**Last Updated**: October 3, 2025
**Status**: Active Development
This document tracks remaining tasks, future enhancements, and technical debt items for the Maternal App project.
---
## 🔴 High Priority (Pre-Launch)
### 1. Date/Time Localization Refinement
**Status**: 70% Complete
**Estimated Effort**: 1-2 hours
**Related**: LOCALIZATION_IMPLEMENTATION_PLAN.md Phase 10
**Completed**:
-`useLocalizedDate` hook created and implemented
- ✅ Activity timestamps use `formatDistanceToNow`
**Remaining**:
- [ ] Apply date-fns locale to all remaining date displays
- [ ] Child birth dates formatting with proper locale
- [ ] Analytics date ranges with locale-specific formatting
- [ ] Ensure consistent date formatting across all components
**Files to Update**:
- `app/children/page.tsx` - Birth date display
- `app/insights/page.tsx` - Date range selectors
- `components/features/analytics/InsightsDashboard.tsx` - Chart date labels
- Any remaining hardcoded date formats
---
### 2. Number Formatting Consistency
**Status**: 70% Complete
**Estimated Effort**: 1-2 hours
**Related**: LOCALIZATION_IMPLEMENTATION_PLAN.md Phase 11
**Completed**:
-`useFormatting` hook created with Intl.NumberFormat
**Remaining**:
- [ ] Apply number formatting throughout app
- [ ] Weight/height values with locale-specific formatting
- [ ] Activity counts and statistics with proper number separators
- [ ] Decimal formatting consistency (1,000.50 vs 1.000,50)
**Files to Update**:
- `app/children/page.tsx` - Weight/height display
- `app/insights/page.tsx` - Statistics and counts
- `components/features/analytics/InsightsDashboard.tsx` - Chart values
- All tracking forms with numeric inputs
---
### 3. Comprehensive Testing Suite
**Status**: Not Started
**Estimated Effort**: 2-4 hours
**Related**: LOCALIZATION_IMPLEMENTATION_PLAN.md Phase 14
**Test Coverage Needed**:
- [ ] Translation coverage test (verify no missing keys)
- [ ] Language switching test (all 7 languages)
- [ ] Unit conversion test (ml↔oz, kg↔lb, cm↔in)
- [ ] Date/time formatting test across locales
- [ ] Layout stability test (ensure no UI breaks with long translations)
- [ ] Number formatting test per locale
- [ ] Measurement unit persistence test
- [ ] Language persistence test across sessions
**Test Files to Create**:
- `__tests__/i18n/translation-coverage.test.ts`
- `__tests__/i18n/language-switching.test.ts`
- `__tests__/utils/unit-conversion.test.ts`
- `__tests__/utils/date-formatting.test.ts`
- `__tests__/utils/number-formatting.test.ts`
---
## 🟡 Medium Priority (Post-Launch)
### 4. Dynamic HTML Lang Attribute
**Status**: Not Started
**Estimated Effort**: 30 minutes
**Related**: LOCALIZATION_IMPLEMENTATION_PLAN.md Phase 1.4
**Description**: Update `<html lang="">` attribute dynamically when language changes for better SEO and accessibility.
**Files to Update**:
- `app/layout.tsx` - Add dynamic lang attribute based on i18n state
**Implementation**:
```typescript
// app/layout.tsx
export default function RootLayout({ children }) {
const { i18n } = useTranslation();
useEffect(() => {
document.documentElement.lang = i18n.language;
}, [i18n.language]);
// ...
}
```
---
### 5. Redux State Integration for User Preferences
**Status**: Not Started
**Estimated Effort**: 1-2 hours
**Related**: LOCALIZATION_IMPLEMENTATION_PLAN.md Phase 5.1
**Description**: Currently using localStorage and API calls. Should integrate with Redux for better state management.
**Files to Update**:
- `store/slices/userSlice.ts` - Add language and measurementUnit to state
**Implementation**:
```typescript
interface UserState {
// ... existing fields
language: string;
measurementUnit: 'metric' | 'imperial';
}
```
---
### 6. Component Localization Review
**Status**: Partially Complete
**Estimated Effort**: 2-3 hours
**Related**: LOCALIZATION_IMPLEMENTATION_PLAN.md Phase 9.2
**Components Completed**:
- ✅ AppShell, MobileNav, TabBar
- ✅ LanguageSelector, MeasurementUnitSelector
- ✅ Main pages (dashboard, track, children, family, settings, ai-assistant, insights)
**Components to Review**:
- [ ] `components/common/` - Common dialogs, buttons, alerts
- [ ] `components/features/` - Activity cards, forms
- [ ] `components/children/` - ChildDialog, DeleteConfirmDialog
- [ ] `components/family/` - Family member components
- [ ] Error boundaries and fallback UIs
- [ ] Loading states and skeletons
---
## 🟢 Low Priority (Future Enhancements)
### 7. Professional Translation Review
**Status**: All Translations Complete
**Estimated Effort**: External service, 1-2 weeks
**Related**: LOCALIZATION_IMPLEMENTATION_PLAN.md Phase 13.2
**Description**: All 7 languages have been machine-translated with cultural context. Native speaker review recommended before production launch.
**Languages to Review**:
- [ ] Spanish (es-ES) - Native speaker validation
- [ ] French (fr-FR) - Native speaker validation
- [ ] Portuguese (pt-BR) - Native speaker validation
- [ ] Simplified Chinese (zh-CN) - Native speaker validation
- [ ] German (de-DE) - Native speaker validation
- [ ] Italian (it-IT) - Native speaker validation
**Deliverables**:
- Cultural appropriateness verification
- Grammar and syntax corrections
- Parenting terminology accuracy
- Regional variations (if needed)
---
### 8. Developer Documentation
**Status**: Not Started
**Estimated Effort**: 1-2 hours
**Related**: LOCALIZATION_IMPLEMENTATION_PLAN.md Phase 15
**Documents to Create**:
- [ ] `docs/LOCALIZATION_GUIDE.md` - How to add translations, languages, best practices
- [ ] Update `docs/implementation-gaps.md` - Mark localization as complete
- [ ] `docs/UNIT_CONVERSION_GUIDE.md` - How unit conversions work
**Content Needed**:
```markdown
# LOCALIZATION_GUIDE.md
- How to add new translation keys
- How to add new languages
- Translation file structure
- Best practices (interpolation, pluralization)
- How to test translations
# UNIT_CONVERSION_GUIDE.md
- Storage strategy (always metric)
- Display strategy (user preference)
- How to use UnitInput component
- How to add new unit types
```
---
### 9. Additional Language Support
**Status**: Not Started
**Estimated Effort**: 2-3 hours per language
**Related**: Future enhancement
**Potential Languages**:
- [ ] Arabic (ar-SA) - Requires RTL support
- [ ] Hindi (hi-IN) - Large user base
- [ ] Japanese (ja-JP) - Advanced market
- [ ] Korean (ko-KR) - Advanced market
- [ ] Russian (ru-RU) - Large user base
**Technical Requirements for RTL**:
- RTL layout support in CSS
- Mirror UI components
- Text alignment adjustments
- Icon direction handling
---
### 10. Additional Unit Types
**Status**: Not Started
**Estimated Effort**: 2-3 hours
**Related**: LOCALIZATION_IMPLEMENTATION_PLAN.md - Future Enhancements
**Unit Types to Add**:
- [ ] Temperature (°C / °F) - For fever tracking
- [ ] Time format preference (12h / 24h)
- [ ] Date format preference (MM/DD/YYYY vs DD/MM/YYYY)
- [ ] Regional variations (UK vs US imperial)
**Implementation**:
- Update `lib/utils/unitConversion.ts`
- Update `components/forms/UnitInput.tsx`
- Add to user preferences schema
- Add to onboarding flow
---
### 11. Translation Management System
**Status**: Not Started
**Estimated Effort**: 4-6 hours
**Priority**: Low (Nice to have)
**Description**: Implement a system for managing translations outside of JSON files for easier collaboration with translators.
**Options**:
1. **Local Tool**: Custom admin panel for translation management
2. **Third-Party**: Integration with services like Lokalise, Crowdin, or POEditor
**Benefits**:
- Non-developers can update translations
- Translation memory and consistency
- Automatic missing key detection
- Version control for translations
- Collaboration with professional translators
---
## 🔧 Technical Debt
### 12. Remove Unused MobileNav Component
**Status**: Identified
**Estimated Effort**: 15 minutes
**Priority**: Low
**Description**: `components/layouts/MobileNav/MobileNav.tsx` is no longer used since we unified the header. Consider removing or archiving.
**Files to Update**:
- Delete or archive `components/layouts/MobileNav/MobileNav.tsx`
- Remove imports from AppShell if not already removed
---
### 13. Optimize Translation Bundle Size
**Status**: Not Started
**Estimated Effort**: 2-3 hours
**Priority**: Medium
**Description**: Currently loading all translations. Implement lazy loading per namespace and language.
**Implementation**:
- Configure i18next backend plugin
- Load translations on demand
- Cache loaded translations
- Preload critical namespaces (common, errors)
**Expected Impact**:
- Reduce initial bundle size by ~60-70%
- Faster initial page load
- Better performance on slow connections
---
### 14. Accessibility (a11y) Audit
**Status**: Not Started
**Estimated Effort**: 3-4 hours
**Priority**: High (Pre-Launch)
**Areas to Review**:
- [ ] Keyboard navigation throughout app
- [ ] Screen reader compatibility (ARIA labels)
- [ ] Color contrast ratios (WCAG AA compliance)
- [ ] Focus management in dialogs
- [ ] Form validation messages accessibility
- [ ] Error messages accessibility
- [ ] Language selector accessibility
**Tools to Use**:
- axe DevTools
- WAVE browser extension
- Screen reader testing (NVDA/JAWS)
---
### 15. Performance Optimization
**Status**: Not Started
**Estimated Effort**: 2-4 hours
**Priority**: Medium
**Optimization Opportunities**:
- [ ] Implement code splitting for routes
- [ ] Lazy load heavy components (charts, analytics)
- [ ] Optimize image loading (next/image)
- [ ] Implement virtual scrolling for long lists
- [ ] Reduce re-renders with React.memo
- [ ] Optimize bundle size analysis
**Metrics to Track**:
- First Contentful Paint (FCP) < 1.5s
- Largest Contentful Paint (LCP) < 2.5s
- Time to Interactive (TTI) < 3.5s
- Cumulative Layout Shift (CLS) < 0.1
---
## 📋 Future Features
### 16. Offline Mode Enhancements
**Status**: Basic offline support exists
**Estimated Effort**: 6-8 hours
**Priority**: Medium
**Enhancements Needed**:
- [ ] Better offline indicator UI
- [ ] Sync queue visualization
- [ ] Conflict resolution UI
- [ ] Offline data persistence improvements
- [ ] Background sync when connection restored
---
### 17. Voice Input Multi-Language Support
**Status**: Works with backend language detection
**Estimated Effort**: 2-3 hours
**Priority**: Low
**Enhancements Needed**:
- [ ] Language-specific voice models
- [ ] Accent/dialect support
- [ ] Voice command examples per language
- [ ] Improved transcription accuracy
---
### 18. Export/Import Data
**Status**: Not Started
**Estimated Effort**: 4-6 hours
**Priority**: Medium
**Features**:
- [ ] Export activity data (CSV, PDF)
- [ ] Export analytics reports
- [ ] GDPR data export compliance
- [ ] Import data from other baby tracking apps
- [ ] Backup/restore functionality
---
### 19. Dark Mode
**Status**: Not Started
**Estimated Effort**: 3-4 hours
**Priority**: Low
**Implementation**:
- [ ] Add dark mode toggle in settings
- [ ] Create dark theme palette
- [ ] Test all components in dark mode
- [ ] Persist preference
- [ ] System preference detection
---
### 20. Push Notifications Localization
**Status**: Backend supports multi-language
**Estimated Effort**: 2-3 hours
**Priority**: Medium
**Features**:
- [ ] Send notifications in user's preferred language
- [ ] Localized notification templates
- [ ] Time zone awareness
- [ ] Customizable notification preferences
---
## 📊 Progress Tracking
**Total Tasks**: 20
**High Priority**: 3 tasks (15%)
**Medium Priority**: 3 tasks (15%)
**Low Priority**: 14 tasks (70%)
**Estimated Total Effort**: 40-60 hours (1-1.5 weeks)
---
## 🎯 Recommended Implementation Order
### Sprint 1 (Pre-Launch - Critical)
1. Date/Time Localization Refinement (1-2h)
2. Number Formatting Consistency (1-2h)
3. Comprehensive Testing Suite (2-4h)
4. Accessibility Audit (3-4h)
**Total**: 7-12 hours
### Sprint 2 (Post-Launch - Week 1)
5. Dynamic HTML Lang Attribute (30m)
6. Component Localization Review (2-3h)
7. Performance Optimization (2-4h)
8. Developer Documentation (1-2h)
**Total**: 6-10 hours
### Sprint 3 (Post-Launch - Week 2)
9. Redux State Integration (1-2h)
10. Professional Translation Review (External)
11. Optimize Translation Bundle Size (2-3h)
12. Remove Unused Components (15m)
**Total**: 3-5 hours
### Future Sprints
13-20. Feature enhancements and nice-to-haves
---
## 📝 Notes
- This backlog should be reviewed and updated monthly
- Priority levels may change based on user feedback
- Effort estimates are rough and may vary
- Consider user feedback for prioritization
- Some tasks may become obsolete with new requirements
---
**Document Owner**: Development Team
**Review Frequency**: Monthly
**Next Review**: November 3, 2025