Empowering Indonesian Gardeners with AI-Powered Plant Care Solutions
HortiKita is a comprehensive mobile application designed to revolutionize horticulture practices in Indonesia. Built with Flutter and powered by advanced AI technology, this app serves as your personal gardening companion, offering expert advice, comprehensive plant databases, and intelligent chat assistance for all your gardening needs.
To democratize horticultural knowledge and make sustainable gardening accessible to everyone in Indonesia through cutting-edge technology and community-driven insights.
- โ Production-Ready: Full email verification & secure authentication
- โ AI-Powered: Integration with Google Gemini 2.0 Flash
- โ Security-First: Environment-based API key management
- โ Scalable Architecture: Clean code with SOLID principles
- โ User-Focused: Modern UI/UX with accessibility in mind
- Instant Expert Advice: Get personalized plant care recommendations
- Multi-Modal Support: Text and image-based plant diagnosis
- Local Context: Advice tailored for Indonesian climate and conditions
- 24/7 Availability: Always ready to help with your gardening questions
- 1000+ Plant Species: Detailed information on vegetables, fruits, ornamentals, and herbs
- Step-by-Step Guides: Complete planting and care instructions
- Growth Tracking: Monitor your plants' development stages
- Disease & Pest Management: Identification and treatment guides
- Latest Research: Up-to-date horticultural findings and practices
- Seasonal Guides: Month-by-month planting calendars
- Organic Methods: Sustainable and eco-friendly gardening techniques
- Local Expertise: Content curated for Indonesian gardeners
- Secure Authentication: Email verification and robust user management
- Personal Dashboard: Track your favorite plants and articles
- Achievement System: Gamified learning experience
- Community Features: Connect with fellow gardening enthusiasts
- User Engagement Tracking: Understand your gardening journey
- Content Performance: See what works best for your plants
- Growth Analytics: Visualize your gardening progress
- Admin Dashboard: Comprehensive management tools
- Flutter 3.7.0+ - Cross-platform mobile framework
- Dart - Programming language optimized for UI
- Material Design 3 - Modern, accessible UI components
- Provider - Robust state management solution
- Firebase Suite:
- ๐ Authentication - Secure user management with email verification
- ๐๏ธ Cloud Firestore - Real-time NoSQL database
- ๐ Cloud Storage - Scalable file storage
- ๐ Analytics - User behavior insights
- Firestore Security Rules - Advanced data protection
- Google Gemini 2.0 Flash - Latest multimodal AI for intelligent responses
- Natural Language Processing - Understanding Indonesian gardening contexts
- Image Recognition - Plant identification and disease detection
- Clean Architecture - Maintainable and scalable codebase
- Environment Variables - Secure configuration management
- Automated Testing - Unit and integration test coverage
- CI/CD Ready - Prepared for automated deployment
Experience modern, intuitive design crafted for Indonesian gardeners
- Flutter SDK: 3.7.0 or higher
- Dart SDK: Latest stable version
- Development Environment: Android Studio, VS Code, or IntelliJ IDEA
- Firebase Account: For backend services
- Google AI Studio Access: For Gemini API key
git clone https://github.com/prassaaa/HortiKita.git
cd HortiKita# Copy environment template
cp .env.example .env
# Edit .env file with your configuration
nano .envAdd your configuration:
GEMINI_API_KEY=your_gemini_api_key_here
ENVIRONMENT=developmentflutter pub get- Create a new Firebase project at Firebase Console
- Add Android/iOS apps to your project
- Download configuration files:
google-services.jsonโandroid/app/GoogleService-Info.plistโios/Runner/
- Enable required services:
- Authentication (Email/Password)
- Cloud Firestore
- Cloud Storage
- Analytics
- Visit Google AI Studio
- Create a new API key
- Add the key to your
.envfile - Ensure proper permissions are enabled
# Development mode
flutter run
# Release mode
flutter run --releaselib/
โโโ ๐ฏ app/ # Application layer
โ โโโ constants/ # App-wide constants
โโโ ๐ data/ # Data layer
โ โโโ models/ # Domain models
โ โ โโโ article_model.dart
โ โ โโโ chat_message_model.dart
โ โ โโโ plant_model.dart
โ โ โโโ user_model.dart
โ โ โโโ analytics/ # Analytics models
โ โ โโโ user_engagement/ # Engagement tracking
โ โโโ providers/ # State management
โ โ โโโ auth_provider.dart
โ โ โโโ chat_provider.dart
โ โ โโโ plant_provider.dart
โ โ โโโ article_provider.dart
โ โ โโโ analytics_provider.dart
โ โ โโโ user_engagement_provider.dart
โ โโโ repositories/ # Data access layer
โ โโโ plant_repository.dart
โ โโโ article_repository.dart
โ โโโ chat_repository.dart
โโโ ๐ง services/ # Business logic services
โ โโโ auth_service.dart
โ โโโ firebase_service.dart
โ โโโ gemini_service.dart
โ โโโ analytics_service.dart
โ โโโ environment_service.dart
โ โโโ user_tracking_service.dart
โ โโโ user_engagement_service.dart
โโโ ๐จ ui/ # Presentation layer
โ โโโ screens/ # App screens
โ โ โโโ auth/ # Authentication flow
โ โ โ โโโ login_screen.dart
โ โ โ โโโ register_screen.dart
โ โ โ โโโ email_verification_screen.dart
โ โ โโโ home/ # Dashboard
โ โ โโโ plants/ # Plant management
โ โ โโโ articles/ # Content management
โ โ โโโ chatbot/ # AI interaction
โ โ โโโ favorites/ # User favorites
โ โ โโโ admin/ # Admin panel
โ โ โ โโโ admin_dashboard_screen.dart
โ โ โ โโโ analytics_screen.dart
โ โ โ โโโ manage_plants_screen.dart
โ โ โ โโโ manage_articles_screen.dart
โ โ โ โโโ manage_users_screen.dart
โ โ โโโ splash/ # App initialization
โ โโโ themes/ # UI theming
โ โ โโโ app_theme.dart
โ โโโ widgets/ # Reusable components
โโโ ๐งช test/ # Testing utilities
โโโ main.dart # App entry point
- ๐ฆ Separation of Concerns: Clear layer boundaries
- ๐ Dependency Injection: Flexible and testable code
- ๐ฏ Single Responsibility: Each class has one job
- ๐ Interface Segregation: Minimal interface dependencies
- ๐ง Inversion of Control: Depend on abstractions
- Email Verification: Required before dashboard access
- Role-Based Access: User and admin role separation
- Secure Session Management: JWT-based authentication
- Password Security: Firebase Auth best practices
# โ
Secure (Current Implementation)
GEMINI_API_KEY=stored_in_env_file
# โ Insecure (Avoided)
const apiKey = "hardcoded_key_in_source"- Firestore Security Rules: Granular access control
- Input Validation: Comprehensive data sanitization
- Error Handling: Secure error messaging
- Audit Logging: Track user actions and changes
# Run all tests
flutter test
# Run tests with coverage
flutter test --coverage
# Widget testing
flutter test test/widget_test.dart
# Integration testing
flutter test integration_test/# Static analysis
flutter analyze
# Code formatting
dart format lib/
# Dependency check
flutter pub deps- Firebase Performance Monitoring: App performance metrics
- Crashlytics: Crash reporting and analysis
- Custom Analytics: User engagement tracking
- Memory Management: Efficient resource usage
# Debug build
flutter build apk --debug
# Release build
flutter build apk --release
# App Bundle (recommended for Play Store)
flutter build appbundle --release# Debug build
flutter build ios --debug
# Release build
flutter build ios --releaseENVIRONMENT=development
GEMINI_API_KEY=dev_api_key
FIREBASE_PROJECT_ID=dev_projectENVIRONMENT=production
GEMINI_API_KEY=prod_api_key
FIREBASE_PROJECT_ID=prod_project- GitHub Actions: Automated testing and building
- Fastlane: Streamlined deployment process
- Code Signing: Automated certificate management
- Version Management: Semantic versioning support
We welcome contributions from the community! Here's how you can help:
- Use the GitHub Issues page
- Search existing issues before creating new ones
- Provide detailed reproduction steps
- Include screenshots and device information
- Check the project roadmap
- Open a feature request issue
- Describe the problem and proposed solution
- Consider implementation complexity
# 1. Fork the repository
git fork https://github.com/prassaaa/HortiKita.git
# 2. Create feature branch
git checkout -b feature/amazing-feature
# 3. Make your changes
# Follow the existing code style and architecture
# 4. Test your changes
flutter test
flutter analyze
# 5. Commit with conventional commits
git commit -m "feat: add amazing new feature"
# 6. Push to your fork
git push origin feature/amazing-feature
# 7. Create Pull Request- Code Style: Follow Dart/Flutter conventions
- Documentation: Update relevant documentation
- Testing: Add tests for new functionality
- Performance: Consider performance implications
- Security: Follow security best practices
- ๐ Plant Disease Detection: AI-powered camera diagnosis
- ๐ฆ๏ธ Weather Integration: Location-based planting advice
- ๐ฑ IoT Integration: Smart sensor connectivity
- ๐ Community Forum: User interaction and knowledge sharing
- ๐ Marketplace: Seeds and supplies e-commerce
- ๐ Advanced Analytics: Predictive plant care
- ๐ Learning Modules: Interactive gardening courses
- ๐ Multi-Language Support: Expand beyond Indonesian
- ๐ค AR Plant Recognition: Augmented reality features
- ๐ฑ Sustainability Tracking: Carbon footprint monitoring
- ๐ข Enterprise Solutions: Commercial farming tools
- ๐งฌ Genetic Database: Plant variety information
This project is licensed under the MIT License - see the LICENSE file for details.
For detailed legal information, third-party licenses, and attributions, please see LEGAL.md.
- Flutter Team: Amazing cross-platform framework
- Firebase: Comprehensive backend services
- Google AI: Gemini API for intelligent features
- Material Design: Beautiful and accessible UI components
- Open Source Community: Countless packages and inspiration
- Email: me@pras.ari69@gmail.com
- GitHub Issues: Report bugs or request features
- Discussions: Community discussions and Q&A
- Setup Guide: Detailed setup instructions
- API Documentation: Backend API reference
- Contributing Guide: How to contribute
- Changelog: Version history and updates
- Legal Information: Licenses and legal details
Having trouble? Check our troubleshooting guide or reach out to the community for help.
Made with โค๏ธ for Indonesian gardeners
Empowering sustainable agriculture through technology
About โข Features โข Quick Start โข Contributing โข Support
โญ Star this repository if you find it helpful!




