An offline-first mobile application that acts as a shared digital baby book and daily activity tracker, bridging the information gap between working parents and at-home caregivers.
β οΈ AI Assistance Disclosure: This project was developed with significant assistance from AI pair programming tools (Claude/Kiro AI IDE). AI was used for:
- Component architecture and code generation
- UI component library implementation
- Documentation generation
- Code structure and best practices guidance
The project concept, feature design, user flows, and technical decisions were human-driven.
- Role-Based Authentication: Mock login system for Parent and Caregiver roles
- Caregiver Mode: One-tap logging interface with 4 large buttons
- π§ Wet Diaper
- π© Dirty Diaper
- πΌ Feed
- π€ Sleep
- Parent Dashboard:
- Daily activity counter (resets at midnight)
- Chronological activity timeline
- Real-time updates
- Baby Book: Baby profile and immunization records
- Local Persistence: AsyncStorage for offline-first functionality
- Clean UI: Production-ready React Native components
- QR Code Medical Passport
- Firebase Cloud Sync
- Growth Charts
- Video Calls with Pediatricians
- AI Symptom Checker
- Framework: React Native with Expo
- Navigation: React Navigation (Stack + Bottom Tabs)
- State Management: React Context API
- Local Storage: AsyncStorage
- Platform: Cross-platform (iOS & Android)
- Node.js (v14 or higher)
- npm or yarn
- Expo CLI (optional, will be installed via npx)
-
Install Dependencies
npm install
-
Start Development Server
npm start
Or use Expo CLI directly:
npx expo start
-
Run on Device/Emulator
- iOS: Press
iin the terminal or scan QR code with Expo Go app - Android: Press
ain the terminal or scan QR code with Expo Go app - Web: Press
win the terminal (for testing only)
- iOS: Press
- Login as "Sarah Johnson" (Parent)
- Access 3 tabs:
- Dashboard: View daily activity summary and timeline
- Baby Book: View baby profile and immunization records
- Profile: Manage settings and logout
- Login as "Maria Santos" (Caregiver)
- Access simplified one-tap logging interface
- Tap large buttons to log activities instantly
- View today's activity summary at the top
PediaPocket/
βββ App.js # Root component with providers
βββ src/
β βββ context/
β β βββ AuthContext.js # User authentication & session
β β βββ DataContext.js # Baby data & activity logs
β βββ navigation/
β β βββ RootNavigator.js # Role-based routing
β β βββ ParentNavigator.js # Parent tab navigation
β βββ screens/
β β βββ LoginScreen.js # Mock role selector
β β βββ CaregiverScreen.js # One-tap logging UI
β β βββ DashboardScreen.js # Parent dashboard
β β βββ BabyBookScreen.js # Baby profile & vaccines
β β βββ ProfileScreen.js # User profile & settings
β βββ services/
β βββ storage.js # AsyncStorage wrapper
β βββ mockData.js # Seed data
β βββ dataService.js # CRUD operations
βββ package.json
βββ app.json
βββ README.md
{
uid: "user_parent_1",
role: "parent" | "caregiver",
name: "Sarah Johnson",
email: "sarah@example.com"
}{
babyId: "baby_1",
parentId: "user_parent_1",
name: "Emma Johnson",
birthdate: "2026-01-15T00:00:00.000Z"
}{
logId: "1234567890_abc123",
babyId: "baby_1",
type: "wet_diaper" | "dirty_diaper" | "feed" | "sleep",
timestamp: "2026-09-09T10:30:00.000Z",
loggedBy: "Maria Santos"
}{
vaccineId: "vaccine_1",
babyId: "baby_1",
vaccineName: "Hepatitis B",
dateAdministered: "2026-01-16T00:00:00.000Z",
notes: "Birth dose"
}-
App Initialization
- AuthContext loads default data and checks for saved user session
- DataContext loads baby data and activity logs from AsyncStorage
-
Caregiver Logs Activity
- Tap button β DataContext.addLog()
- New log saved to AsyncStorage
- State updates trigger UI refresh
- Daily counter increments automatically
-
Parent Views Dashboard
- DataContext provides getTodayLogs() and getDailyCount()
- Timeline shows chronological activities
- Counter resets at midnight (client-side logic)
- Login as "Maria Santos" (Caregiver)
- Tap "Feed" button 3 times
- Tap "Wet Diaper" button 2 times
- Observe immediate feedback and counter updates
- Logout from caregiver
- Login as "Sarah Johnson" (Parent)
- Navigate to Dashboard tab
- Verify timeline shows all logged activities
- Verify daily counter matches logged activities
- Log several activities
- Force close the app
- Restart the app
- Verify all logs persist across app restarts
Completion: 95% - Fully functional, minor assets needed
Remaining Tasks:
- Generate app icon and splash screen (5 minutes)
- Open
assets/generate-placeholders.htmlin browser - Download icon.png, adaptive-icon.png, splash.png, favicon.png
- Place files in
assets/folder
- Open
- Run
npx expo start --clearto test with new assets
Known Limitations:
- Mock authentication (no real login system)
- Single baby per app instance
- No image uploads
- No push notifications
- Client-side date filtering (no pagination)
- Setup Firebase project
- Implement Firebase Authentication
- Replace AsyncStorage with Firestore
- Add real-time sync capabilities
- Implement offline queue for failed syncs
- QR Code generation for medical visits
- Push notifications for caregivers
- Photo uploads for baby book
- Multi-baby support
- Caregiver invitation system
- Onboarding flow
- Dark mode support
- Localization (i18n)
- Analytics integration
- App store submission
This MVP was built with a strict 50-credit budget, prioritizing:
- Clean, production-ready component structure
- Core functionality over extensive testing
- Mock state over live backend setup
- Efficient code generation to minimize iterations
- Expo over bare React Native: Faster setup, no native build needed for prototype
- Context API over Redux: Simpler state management for MVP scope
- AsyncStorage over Firebase: Demonstrates offline-first without cloud credentials
- Mock login over real auth: Focus on UI/UX flow rather than security for prototype
This is a hackathon MVP prototype. For production deployment:
- Replace mock authentication with Firebase Auth
- Migrate AsyncStorage to Cloud Firestore
- Add proper error handling and validation
- Implement comprehensive testing
- Add security rules and data encryption
This is a prototype project for demonstration purposes.
This project was developed with significant AI pair programming assistance using Claude (Anthropic) via the Kiro AI IDE. The collaboration model was:
Human Contributions:
- Product vision and feature requirements
- User experience design decisions
- Architecture and technical strategy
- Code review and acceptance
- Testing and validation
- Problem definition and context
AI Contributions:
- Code generation and implementation
- Component library architecture
- Documentation generation
- Best practices guidance
- Bug identification and fixes
- Boilerplate and repetitive code
This disclosure is made in the spirit of transparency for hackathon evaluation. The use of AI tools represents a modern development workflow where:
- The human remains the architect and decision-maker
- AI serves as an intelligent code assistant
- All code is reviewed, understood, and owned by the developer
- The combination enables rapid prototyping while maintaining quality
- Framework: React Native with Expo 57
- AI Tools: Claude (Anthropic), Kiro AI IDE
- Development: Human-guided, AI-assisted pair programming
Built for FirstCommit Hackathon π