# Maternal App - AI-Powered Parenting Assistant An AI-powered mobile application designed to help parents manage childcare for children aged 0-6 years. Features intelligent tracking, real-time family sync, and AI-powered parenting support using LLMs. ## ๐Ÿš€ Project Status **Phase 0: Development Environment Setup** โœ… **COMPLETED** - โœ… React Native mobile app initialized with Expo - โœ… NestJS backend API initialized - โœ… Docker Compose infrastructure configured - โœ… ESLint & Prettier configured - โœ… Environment variables set up - โœ… All services running **Next Phase:** Phase 1 - Foundation & Authentication (Week 1-2) ## ๐Ÿ—๏ธ Architecture ### Mobile Application - **Framework:** React Native + Expo (TypeScript) - **State Management:** Redux Toolkit with offline-first architecture - **UI Components:** React Native Paper (Material Design) - **Navigation:** React Navigation ### Backend API - **Framework:** NestJS (Node.js + TypeScript) - **API Style:** Hybrid REST + GraphQL + WebSocket - **Authentication:** JWT with refresh tokens ### Infrastructure - **Database:** PostgreSQL 15 (port 5555) - **Cache/Queue:** Redis 7 (port 6666) - **Document Store:** MongoDB 6 (port 27777) - **Object Storage:** MinIO (ports 9002/9003) ## ๐Ÿ“‹ Prerequisites - **Node.js:** v18+ LTS - **npm:** v8+ - **Docker:** Latest - **Docker Compose:** Latest - **Expo CLI:** Installed globally (optional) ## ๐Ÿ› ๏ธ Installation & Setup ### 1. Clone and Install ```bash # Clone the repository cd maternal-app # Install mobile app dependencies cd maternal-app npm install cd .. # Install backend dependencies cd maternal-app-backend npm install cd .. ``` ### 2. Start Infrastructure Services ```bash # Start all Docker services (PostgreSQL, Redis, MongoDB, MinIO) docker compose up -d # Verify services are running docker compose ps # View logs if needed docker compose logs -f ``` **Service Ports (modified to avoid conflicts):** - PostgreSQL: `localhost:5555` - Redis: `localhost:6666` - MongoDB: `localhost:27777` - MinIO API: `localhost:9002` - MinIO Console: `localhost:9003` ### 3. Configure Environment Variables Backend environment file is already created at `maternal-app-backend/.env`. Update API keys as needed: ```bash # Edit backend .env file cd maternal-app-backend nano .env # or use your preferred editor ``` **Important:** Add your AI service API keys: - `OPENAI_API_KEY` - For GPT-4 integration - `ANTHROPIC_API_KEY` - For Claude integration (optional) - `GOOGLE_AI_API_KEY` - For Gemini integration (optional) ## ๐Ÿš€ Running the Application ### Start Backend API ```bash cd maternal-app-backend # Development mode with hot-reload npm run start:dev # Production mode npm run start:prod # Watch mode npm run start:watch ``` Backend will be available at: `http://localhost:3000` ### Start Mobile App ```bash cd maternal-app # Start Expo development server npm start # Or run directly on iOS simulator npm run ios # Or run directly on Android emulator npm run android # Or run in web browser npm run web ``` ## ๐Ÿงช Testing ### Backend Tests ```bash cd maternal-app-backend # Run unit tests npm test # Run tests with coverage npm run test:cov # Run E2E tests npm run test:e2e # Run tests in watch mode npm run test:watch ``` ### Mobile App Tests ```bash cd maternal-app # Run tests npm test ``` ## ๐Ÿ“ Project Structure ``` maternal-app/ โ”œโ”€โ”€ docs/ # Comprehensive documentation โ”‚ โ”œโ”€โ”€ maternal-app-tech-stack.md โ”‚ โ”œโ”€โ”€ maternal-app-implementation-plan.md โ”‚ โ”œโ”€โ”€ maternal-app-api-spec.md โ”‚ โ”œโ”€โ”€ maternal-app-ai-context.md โ”‚ โ””โ”€โ”€ ... (12 more detailed docs) โ”œโ”€โ”€ maternal-app/ # React Native mobile app โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”œโ”€โ”€ components/ โ”‚ โ”‚ โ”œโ”€โ”€ screens/ โ”‚ โ”‚ โ”œโ”€โ”€ services/ โ”‚ โ”‚ โ”œโ”€โ”€ redux/ โ”‚ โ”‚ โ”œโ”€โ”€ navigation/ โ”‚ โ”‚ โ””โ”€โ”€ types/ โ”‚ โ”œโ”€โ”€ package.json โ”‚ โ””โ”€โ”€ .eslintrc.js โ”œโ”€โ”€ maternal-app-backend/ # NestJS backend API โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”œโ”€โ”€ modules/ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ auth/ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ users/ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ families/ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ... โ”‚ โ”‚ โ”œโ”€โ”€ common/ โ”‚ โ”‚ โ””โ”€โ”€ database/ โ”‚ โ”œโ”€โ”€ package.json โ”‚ โ””โ”€โ”€ .env โ”œโ”€โ”€ docker-compose.yml # Infrastructure services โ”œโ”€โ”€ .env.example # Environment template โ”œโ”€โ”€ CLAUDE.md # AI assistant guidance โ””โ”€โ”€ README.md # This file ``` ## ๐Ÿ—„๏ธ Database Management ### Connect to PostgreSQL ```bash # Using docker exec docker exec -it maternal-postgres psql -U maternal_user -d maternal_app # Or use your preferred PostgreSQL client Host: localhost Port: 5555 Database: maternal_app User: maternal_user Password: maternal_dev_password_2024 ``` ### Connect to MongoDB ```bash # Using mongosh mongosh "mongodb://maternal_admin:maternal_mongo_password_2024@localhost:27777/maternal_ai_chat?authSource=admin" ``` ### Connect to Redis ```bash # Using redis-cli redis-cli -p 6666 ``` ### Access MinIO Console Open browser: `http://localhost:9003` Login credentials: - Username: `maternal_minio_admin` - Password: `maternal_minio_password_2024` ## ๐Ÿ“š Development Workflow ### Branch Naming - `feature/` - New features - `bugfix/` - Bug fixes - `hotfix/` - Critical fixes - `docs/` - Documentation updates ### Commit Messages (Conventional Commits) ```bash feat: add voice input for feeding tracker fix: resolve timezone sync issue docs: update API documentation test: add unit tests for sleep predictor ``` ### Code Quality ```bash # Lint mobile app cd maternal-app npm run lint # Lint backend cd maternal-app-backend npm run lint # Format code npm run format ``` ## ๐Ÿ” Security Notes - **Never commit `.env` files** - they are gitignored - Change all default passwords in production - Rotate JWT secrets regularly - Keep API keys secure and never expose them in client code ## ๐Ÿ“– Documentation Comprehensive documentation is available in the `/docs` directory: 1. **Technical Stack** - Complete technology choices and libraries 2. **Implementation Plan** - 8-phase development roadmap with AI role guidance 3. **API Specification** - REST/GraphQL/WebSocket endpoint specs 4. **AI Context Management** - LangChain configuration and prompt templates 5. **State Management** - Redux architecture with offline support 6. **UI/UX Design System** - Material Design with warm color palette 7. **Testing Strategy** - Unit, integration, and E2E testing approach 8. **Database Migrations** - Schema design and migration scripts 9. **Environment Configuration** - Docker and environment setup 10. **Error Handling** - Error codes and logging standards 11. **Mobile Deployment** - iOS/Android build and release process 12. **Voice Processing** - Voice input patterns and NLP ## ๐ŸŽฏ MVP Features (6-8 Weeks) ### Core Features 1. **Tracking**: Feeding, sleep, diapers with voice input 2. **AI Assistant**: 24/7 contextual parenting support 3. **Family Sync**: Real-time updates via WebSocket 4. **Pattern Recognition**: Sleep predictions, feeding trends 5. **Analytics**: Daily/weekly summaries, exportable reports ### Supported Languages - English (en-US) - Spanish (es-ES) - French (fr-FR) - Portuguese (pt-BR) - Simplified Chinese (zh-CN) ## ๐Ÿค Development Commands Cheat Sheet ```bash # Infrastructure docker compose up -d # Start all services docker compose down # Stop all services docker compose logs -f # View logs # Backend cd maternal-app-backend npm run start:dev # Start with hot-reload npm run build # Build for production npm test # Run tests npm run lint # Lint code # Mobile cd maternal-app npm start # Start Expo npm run ios # Run on iOS npm run android # Run on Android npm test # Run tests npm run lint # Lint code ``` ## ๐Ÿ› Troubleshooting ### Ports Already in Use If you see port conflict errors, the docker-compose.yml uses non-standard ports: - PostgreSQL: 5555 (not 5432) - Redis: 6666 (not 6379) - MongoDB: 27777 (not 27017) ### Docker Services Not Starting ```bash # Check service status docker compose ps # View specific service logs docker compose logs # Restart a specific service docker compose restart ``` ### Mobile App Won't Start ```bash # Clear Expo cache cd maternal-app rm -rf .expo npm start --clear ``` ## ๐Ÿ“ž Next Steps 1. **Phase 1**: Implement authentication system (Week 1-2) - JWT authentication with device fingerprinting - User registration and login - Password reset flow - Multi-language support setup 2. **Phase 2**: Child profiles & family management (Week 2-3) 3. **Phase 3**: Core tracking features (Week 3-4) 4. **Phase 4**: AI assistant integration (Week 4-5) 5. **Phase 5**: Pattern recognition & analytics (Week 5-6) 6. **Phase 6**: Testing & optimization (Week 6-7) 7. **Phase 7**: Beta testing & launch prep (Week 7-8) ## ๐Ÿ“„ License [Add your license here] ## ๐Ÿ™ Acknowledgments Built following comprehensive technical documentation and industry best practices for parenting apps. --- **For detailed implementation guidance, see `/docs/maternal-app-implementation-plan.md`**