Implemented a full sensor health monitoring system for WP sensors that tracks connectivity, WiFi signal strength, communication quality, and overall device health. Features: - Health status calculation (excellent/good/fair/poor/critical) - WiFi signal quality monitoring (RSSI-based) - Communication statistics tracking (success rate, response times) - BLE connection metrics (RSSI, attempt/failure counts) - Time-based status (online/warning/offline based on last seen) - Health data caching and retrieval Components: - Added SensorHealthMetrics types with detailed health indicators - Implemented getSensorHealth() and getAllSensorHealth() in BLEManager - Created SensorHealthCard UI component for health visualization - Added API endpoints for health history and reporting - Automatic communication stats tracking on every BLE command Testing: - 12 new tests for health monitoring functionality - All 89 BLE tests passing - No linting errors This enables proactive monitoring of sensor health to identify connectivity issues, poor WiFi signal, or failing devices before they impact user experience. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
WellNuoLite @ 9f12830850
WellNuo - Caregiving App
WellNuo is a React Native/Expo app for monitoring and caring for loved ones (beneficiaries).
Tech Stack
- React Native with Expo SDK 54
- Expo Router for file-based navigation
- TypeScript
Get started
-
Install dependencies
npm install -
Start the app
npx expo start
Authentication Flow
The app uses email-based OTP authentication with two distinct paths:
Existing User (Login)
login.tsx -> Enter email -> welcome-back.tsx -> verify-otp.tsx -> Main App
- User enters email on login screen
- System checks if email exists in database
- If exists: navigates to "Welcome Back" screen, sends OTP
- User enters OTP code
- After verification: navigates to main app (tabs)
New User (Registration)
login.tsx -> Enter email -> verify-email.tsx (auto-sends OTP) -> verify-otp.tsx -> enter-name.tsx -> add-loved-one.tsx -> Main App
- User enters email on login screen
- System checks if email exists in database
- If NOT exists: navigates to "Verify Email" screen
- OTP is automatically sent when screen loads
- User can optionally enter a partner/referral code (6-digit numeric)
- User proceeds to OTP verification
- After verification: enters their name
- Then adds their first beneficiary (or skips)
- Finally navigates to main app
Partner/Referral Code
Partner codes are 6-digit numeric codes for marketing/referrals:
- Only available during NEW user registration (verify-email screen)
- NOT shown for existing users logging in
- Visual: 6 separate cells with hidden TextInput for keyboard
- Only accepts digits (non-numeric characters are filtered out)
- Test code "123456" available for development
Key Files
Authentication
app/(auth)/login.tsx- Email entry screenapp/(auth)/verify-email.tsx- OTP sending for new users + partner codeapp/(auth)/welcome-back.tsx- OTP sending for existing usersapp/(auth)/verify-otp.tsx- OTP verificationapp/(auth)/enter-name.tsx- Name entry for new usersapp/(auth)/add-loved-one.tsx- Add first beneficiary
Main App
app/(tabs)/index.tsx- Beneficiary list (home)app/(tabs)/voice.tsx- Voice assistantapp/(tabs)/account.tsx- Account settings
Services
services/api.ts- API serviceservices/sherpaTTS.ts- Text-to-Speech (stub for Expo Go)contexts/AuthContext.tsx- Authentication contextcontexts/BeneficiaryContext.tsx- Beneficiary context
Development Notes
Expo Go Limitations
Some features are stubbed when running in Expo Go:
expo-speech-recognition- Uses Alert fallback instead of native speechsherpa-onnx-tts- Uses expo-speech instead of native TTS
Running on Simulators
Use specific UDID for each port:
IOS_SIMULATOR_UDID=FCED72EF-3ADE-47D5-AC67-5C9B0DE59D7E npx expo start --port 8082 --ios
See ~/Desktop/dev instructions/SIMULATORS.md for full port-to-UDID mapping.
Description
Languages
JavaScript
49.7%
HTML
39.1%
TypeScript
10.9%
Python
0.1%