Lunaria is an innovative Flutter application that combines artificial intelligence with menstrual health tracking to provide personalized wellness experiences. Meet Luna π, your virtual companion who understands your cycle and provides tailored recommendations for exercise, nutrition, and overall well-being.
- π€ AI-Powered Analysis: Advanced menstrual cycle prediction and health insights
- π° Luna Virtual Assistant: Interactive chat companion powered by Gemini AI
- π Smart Calendar: Intelligent cycle tracking with phase-based recommendations
- πββοΈ Personalized Workouts: Exercise recommendations based on your cycle phase
- πͺ Fitness Tracking: Comprehensive health monitoring and goal setting
- π₯ Community Support: Connect with others on similar wellness journeys
- π Health Analytics: Detailed insights into your menstrual patterns and symptoms
- Flutter 3.x - Cross-platform mobile development
- Provider - State management
- Material Design 3 - Modern UI components
- Supabase - Authentication and database
- Google Gemini AI - Conversational AI for Luna
- GitHub AI Service - Additional AI capabilities
- News API - Health and wellness articles
- YouTube API - Fitness video content
flutter: 3.x
provider: ^6.1.2
supabase_flutter: ^2.5.6
google_generative_ai: ^0.4.3
http: ^1.2.1
shared_preferences: ^2.2.3
intl: ^0.19.0- Flutter SDK (3.0 or higher)
- Dart SDK
- Android Studio / VS Code
- Git
git clone https://github.com/dejanazul/lunaria.git
cd lunariaflutter pub getCreate a .env file in the root directory with the following variables:
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
GEMINI_API_KEY=your_gemini_api_key
HF_INFERENCE_KEY=your_huggingface_key
HF_INFERENCE_URL=your_huggingface_inference_url
NEWS_API_KEY=your_news_api_key
NEWS_BASE_URL=your_news_base_url
YOUTUBE_API_KEY=your_youtube_api_key
GITHUB_API_KEY=your_github_api_keyIf using VS Code, create .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Development",
"request": "launch",
"type": "dart",
"program": "lib/main.dart",
"toolArgs": [
"--dart-define=GEMINI_API_KEY=your_key",
"--dart-define=SUPABASE_URL=your_url",
"--dart-define=SUPABASE_ANON_KEY=your_key"
]
}
]
}flutter run --dart-define-from-file=env.jsonflutter run --release --dart-define-from-file=env.json# Make scripts executable
chmod +x scripts/generate-env-dev.sh
chmod +x scripts/run-dev.sh
# Run development
./scripts/run-dev.sh- Welcome screen with Luna, your AI companion
- Quick access to cycle tracking and health metrics
- Personalized daily recommendations
- Cookie-based gamification system
- Visual cycle tracking with color-coded phases
- Symptom logging and pattern recognition
- Predictive insights for upcoming cycles
- AI-powered menstrual cycle analysis
- Natural language conversations about health
- Personalized advice based on your cycle data
- 24/7 support and encouragement
- Context-aware responses
- Cycle-specific workout recommendations
- Video tutorials and exercise guides
- Progress tracking and achievements
- Personalized training programs
- Safe space for sharing experiences
- Customizable user profiles
- Typical day tracking
- Personal wellness journey
lib/
βββ authentication/ # Auth screens and profile management
βββ providers/ # State management (Provider pattern)
βββ screens/ # Main app screens
β βββ calendar/ # Calendar and cycle tracking
β βββ chat/ # Luna AI chat interface
β βββ train/ # Fitness and training screens
βββ services/ # API and backend services
βββ widgets/ # Reusable UI components
βββ helpers/ # Utility functions
βββ models/ # Data models
βββ constants/ # App constants and themes
βββ routes/ # Navigation configuration
- CalendarAiProvider: Manages menstrual cycle analysis and AI insights
- ChatHistoryProvider: Handles Luna AI conversations and context
- UserProvider: Authentication and user data management
- CookieProvider: Gamification and reward system
- LevelProvider: User progression and achievements
- GeminiService: Google Gemini AI integration for Luna
- GitHubAIService: Additional AI capabilities
- CalendarAIService: Supabase integration for cycle data
- AuthService: User authentication and registration
- Build for web:
flutter build web --release --dart-define-from-file=env.json- Deploy using Vercel CLI:
vercel --prod# Android
flutter build apk --release --dart-define-from-file=env.json
# iOS
flutter build ios --release --dart-define-from-file=env.json# Run all tests
flutter test
# Run specific test files
flutter test test/unit_tests/
flutter test test/widget_tests/We welcome contributions! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Follow the existing code style and patterns
- Add tests for new functionality
- Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow Dart/Flutter best practices
- Use meaningful variable and function names
- Comment complex logic
- Maintain consistent formatting
The project includes helpful build scripts in the scripts/ directory:
generate-env.sh: Generate environment configurationbuild.sh: Production build scriptrun-dev.sh: Development run script
-
Environment Variables Not Loading
- Ensure
.envfile exists in root directory - Check that all required variables are set
- Verify
env.jsonis generated correctly
- Ensure
-
Supabase Connection Issues
- Verify SUPABASE_URL and SUPABASE_ANON_KEY
- Check network connectivity
- Ensure Supabase project is active
-
AI Services Not Working
- Verify API keys are valid and have proper permissions
- Check rate limits and quotas
- Ensure network allows API calls
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter Team - For the amazing framework
- Google Gemini - For powering Luna's AI capabilities
- Supabase - For backend infrastructure and authentication
- Samsung AI Program - For inspiration and development support
- Open Source Community - For the incredible packages and tools
- Issues: Report bugs on GitHub Issues
- Discussions: Join our GitHub Discussions
- Developer: @dejanazul
Made with β€οΈ for women's health and wellness
Empowering women through AI-driven menstrual health insights
π Lunaria - Where Technology Meets Feminine Wellness π