Skip to content

Latest commit

ย 

History

60 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒฑ HortiKita - Smart Horticulture Companion

HortiKita App Logo

Empowering Indonesian Gardeners with AI-Powered Plant Care Solutions

Flutter Version Firebase Gemini AI License Status


๐Ÿ“‹ About HortiKita

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.

๐ŸŽฏ Mission

To democratize horticultural knowledge and make sustainable gardening accessible to everyone in Indonesia through cutting-edge technology and community-driven insights.

๐Ÿ† Key Achievements

  • โœ… 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

โœจ Core Features

๐Ÿค– Intelligent AI Chatbot

  • 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

๐Ÿ“š Comprehensive Plant Database

  • 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

๐Ÿ“ฐ Expert Articles & Resources

  • 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

๐Ÿ‘ค Personalized Experience

  • 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

๐Ÿ“Š Analytics & Insights

  • 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

๐Ÿ› ๏ธ Technology Stack

Frontend & Mobile

  • 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

Backend & Cloud

  • 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

AI & Machine Learning

  • 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

Development & DevOps

  • 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

๐Ÿ“ฑ Screenshots & Demo

Home Screen Plant Database AI Chatbot User Profile

Experience modern, intuitive design crafted for Indonesian gardeners


๐Ÿš€ Quick Start Guide

Prerequisites

  • 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

Installation Steps

1. Clone Repository

git clone https://github.com/prassaaa/HortiKita.git
cd HortiKita

2. Environment Setup

# Copy environment template
cp .env.example .env

# Edit .env file with your configuration
nano .env

Add your configuration:

GEMINI_API_KEY=your_gemini_api_key_here
ENVIRONMENT=development

3. Install Dependencies

flutter pub get

4. Firebase Configuration

  1. Create a new Firebase project at Firebase Console
  2. Add Android/iOS apps to your project
  3. Download configuration files:
    • google-services.json โ†’ android/app/
    • GoogleService-Info.plist โ†’ ios/Runner/
  4. Enable required services:
    • Authentication (Email/Password)
    • Cloud Firestore
    • Cloud Storage
    • Analytics

5. API Key Setup

  1. Visit Google AI Studio
  2. Create a new API key
  3. Add the key to your .env file
  4. Ensure proper permissions are enabled

6. Run Application

# Development mode
flutter run

# Release mode
flutter run --release

๐Ÿ“‚ Project Architecture

Clean Architecture Implementation

lib/
โ”œโ”€โ”€ ๐ŸŽฏ 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

Key Architectural Principles

  • ๐Ÿ“ฆ 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

๐Ÿ” Security Implementation

๐Ÿ›ก๏ธ Authentication & Authorization

  • 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

๐Ÿ”‘ API Key Management

# โœ… Secure (Current Implementation)
GEMINI_API_KEY=stored_in_env_file

# โŒ Insecure (Avoided)
const apiKey = "hardcoded_key_in_source"

๐Ÿ—„๏ธ Data Protection

  • Firestore Security Rules: Granular access control
  • Input Validation: Comprehensive data sanitization
  • Error Handling: Secure error messaging
  • Audit Logging: Track user actions and changes

๐Ÿงช Testing & Quality Assurance

Testing Strategy

# 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/

Code Quality Tools

# Static analysis
flutter analyze

# Code formatting
dart format lib/

# Dependency check
flutter pub deps

Performance Monitoring

  • Firebase Performance Monitoring: App performance metrics
  • Crashlytics: Crash reporting and analysis
  • Custom Analytics: User engagement tracking
  • Memory Management: Efficient resource usage

๐Ÿš€ Deployment & Distribution

Build Commands

Android

# Debug build
flutter build apk --debug

# Release build
flutter build apk --release

# App Bundle (recommended for Play Store)
flutter build appbundle --release

iOS

# Debug build
flutter build ios --debug

# Release build
flutter build ios --release

Environment Configuration

Development

ENVIRONMENT=development
GEMINI_API_KEY=dev_api_key
FIREBASE_PROJECT_ID=dev_project

Production

ENVIRONMENT=production
GEMINI_API_KEY=prod_api_key
FIREBASE_PROJECT_ID=prod_project

CI/CD Pipeline Ready

  • GitHub Actions: Automated testing and building
  • Fastlane: Streamlined deployment process
  • Code Signing: Automated certificate management
  • Version Management: Semantic versioning support

๐Ÿ‘ฅ Contributing

We welcome contributions from the community! Here's how you can help:

๐Ÿ› Bug Reports

  1. Use the GitHub Issues page
  2. Search existing issues before creating new ones
  3. Provide detailed reproduction steps
  4. Include screenshots and device information

๐Ÿ’ก Feature Requests

  1. Check the project roadmap
  2. Open a feature request issue
  3. Describe the problem and proposed solution
  4. Consider implementation complexity

๐Ÿ”ง Code Contributions

# 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

๐Ÿ“ Development Guidelines

  • 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

๐Ÿ—บ๏ธ Roadmap & Future Development

๐Ÿš€ Version 2.0 (Planned)

  • ๐Ÿ” 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

๐ŸŽฏ Version 2.5 (Future)

  • ๐Ÿ›’ Marketplace: Seeds and supplies e-commerce
  • ๐Ÿ“Š Advanced Analytics: Predictive plant care
  • ๐ŸŽ“ Learning Modules: Interactive gardening courses
  • ๐ŸŒ Multi-Language Support: Expand beyond Indonesian

๐Ÿ”ฎ Long-term Vision

  • ๐Ÿค– AR Plant Recognition: Augmented reality features
  • ๐ŸŒฑ Sustainability Tracking: Carbon footprint monitoring
  • ๐Ÿข Enterprise Solutions: Commercial farming tools
  • ๐Ÿงฌ Genetic Database: Plant variety information

๐Ÿ“Š Project Statistics

Top Language Language Count Repo Size Last Commit Issues Stars


๐Ÿ“„ License & Legal

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.

Third-Party Acknowledgments

  • 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

๐Ÿ“ž Support & Contact

๐Ÿ“ง Get in Touch

๐Ÿ“š Documentation

๐Ÿ†˜ Support

Having trouble? Check our troubleshooting guide or reach out to the community for help.


HortiKita Logo

Made with โค๏ธ for Indonesian gardeners
Empowering sustainable agriculture through technology

About โ€ข Features โ€ข Quick Start โ€ข Contributing โ€ข Support


โญ Star this repository if you find it helpful!

About

Smart gardening companion! This AI-powered app is specifically designed to support farmers and plant enthusiasts.

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages