Luna is a modern, privacy-first period and hormone health tracker app built with React Native and Expo. It features beautiful UI, cycle predictions, mood and symptom tracking, AI chat, and more — all inspired by the Figma design.
- Cycle Overview: Animated cycle ring, phase predictions, and quick log.
- Daily Log: Log period flow, symptoms, mood, and notes.
- Insights: Charts and analytics for your cycle, symptoms, and moods.
- Care Center: Wellness resources, meditation, and health tips.
- AI Chat: Ask Luna AI about your health, symptoms, and cycle.
- Luna Plus: Premium features, cloud sync (Firebase), and more.
- Offline-first: Local encrypted SQLite storage for privacy.
- Biometric Lock: Face ID / Touch ID support for secure access.
- Accessibility: Scalable fonts, screen reader labels, and high-contrast UI.
- Animations: Smooth transitions and gestures with Reanimated.
- React Native (with Expo)
- React Navigation (bottom tabs)
- React Native Paper (UI components)
- SQLite (expo-sqlite, encrypted)
- Firebase (modular, optional cloud sync)
- Victory Native (charts)
- Reanimated & Gesture Handler (animations)
- TypeScript
- Node.js >= 18
- Yarn or npm
- Expo CLI (
npm install -g expo-cli)
- Clone the repo:
git clone <repo-url> cd luna-period-tracker
- Install dependencies:
yarn install # or npm install - Start the app:
expo start
- Run on device:
- Use the Expo Go app (iOS/Android) or an emulator/simulator.
- Add your Firebase config to
src/services/firebase.tsand enable sync in settings.
- See
App.tsxandsrc/screens/BiometricLockScreen.tsxfor Face ID / Touch ID integration usingexpo-local-authentication.
src/
components/ # Reusable UI components
constants/ # Theme, colors, spacing
contexts/ # App-wide context providers
navigation/ # Navigation setup
screens/ # Main app screens
services/ # Firebase, API, etc.
utils/ # Utility functions
- All screens use scalable fonts and proper accessibility labels.
- High-contrast color palette and screen reader support.
MIT