docs: Add comprehensive development backlog
- 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:
463
docs/BACKLOG.md
Normal file
463
docs/BACKLOG.md
Normal 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
|
||||
Reference in New Issue
Block a user