b4b2bfe74950a66769f92607f77932abf5e29e8f
Implement initial features for husband's companion app, including mock data service and husband notes screen. Refactor scripture and cycle services for improved stability and testability. Address iOS Safari web app startup issue by removing deprecated initialization. - Implemented MockDataService and HusbandNotesScreen. - Converted _DashboardTab and DevotionalScreen to StatefulWidgets for robust scripture provider initialization. - Refactored CycleService to use immutable CycleInfo class, reducing UI rebuilds. - Removed deprecated window.flutterConfiguration from index.html, resolving Flutter web app startup failure on iOS Safari. - Updated and fixed related tests.
Christian Period Tracker
A faith-centered period and fertility tracking app for Christian women and their husbands.
Features
Wife's App (Primary)
- Cycle Tracking - Period logging, predictions, and phase identification
- Symptom Logging - Mood, energy, cramps, and more
- Daily Devotionals - Phase-specific scripture and reflections
- NFP Support - BBT, cervical mucus tracking (for married users)
- Calendar View - Color-coded cycle visualization
- Private Data - All data stored locally on device
Husband's Companion App
- Cycle Overview - See where she is in her cycle
- Support Tips - Phase-specific ways to help
- Scripture - Verses for loving husbands
- Learning Library - Understanding her cycle, biblical manhood
Marital Status Awareness
The app adapts content based on relationship status:
- Single/Engaged: Health tracking only, no intimacy/fertility content
- Married: Full features including NFP, fertility window, partner sharing
Tech Stack
- Framework: Flutter 3.24+
- State Management: Riverpod
- Local Database: Hive (privacy-first, no cloud required)
- UI: Material 3 + Custom Design System
- Fonts: Outfit (UI), Lora (Scripture)
Getting Started
Prerequisites
- Flutter SDK 3.24+
- Dart 3.5+
Installation
# Clone the repository
cd christian_period_tracker
# Install dependencies
flutter pub get
# Generate Hive adapters (if needed)
dart run build_runner build --delete-conflicting-outputs
# Run the app
flutter run
Platforms
- ✅ iOS (iPhone + iPad)
- ✅ Android (Phone + Tablet)
- ✅ Web (Progressive Web App)
Project Structure
lib/
├── main.dart # App entry point
├── theme/
│ └── app_theme.dart # Color palette, typography
├── models/
│ ├── user_profile.dart # User & relationship status
│ ├── cycle_entry.dart # Daily tracking data
│ └── scripture.dart # Scripture database
├── screens/
│ ├── splash_screen.dart # Animated splash
│ ├── onboarding/ # Welcome, name, status, cycle setup
│ ├── home/ # Dashboard with cycle ring
│ ├── calendar/ # Month view with phase markers
│ ├── log/ # Symptom & period logging
│ ├── devotional/ # Daily scripture & reflection
│ └── husband/ # Husband companion screens
└── widgets/
├── cycle_ring.dart # Animated progress ring
├── scripture_card.dart # Phase-colored verse display
├── quick_log_buttons.dart # Quick action buttons
└── tip_card.dart # Contextual tips
Color Palettes
Wife's App
| Color | Hex | Usage |
|---|---|---|
| Blush Pink | #F8E1E7 |
Backgrounds, accents |
| Rose | #E8A0B0 |
Secondary actions |
| Sage Green | #A8C5A8 |
Primary, CTAs |
| Lavender | #D4C4E8 |
Tertiary, calm states |
| Cream | #FDF8F5 |
Scaffold background |
Husband's App
| Color | Hex | Usage |
|---|---|---|
| Navy Blue | #2C3E50 |
Primary |
| Steel Blue | #5D7B93 |
Secondary |
| Warm Cream | #F5F0E8 |
Background |
| Gold | #C9A961 |
Accents, scripture |
Privacy
- Local-first: All data stored on device using Hive
- No account required: Works fully offline
- Optional cloud sync: Future feature with end-to-end encryption
- Biometric lock: Planned for sensitive data
License
MIT
Contributing
Contributions welcome! Please read the contribution guidelines first.
Description
Languages
Dart
93.4%
C++
3.2%
CMake
2.6%
Swift
0.3%
HTML
0.3%
Other
0.2%