amoriai/README.md

4.1 KiB

Amori AI

Aplikasi rekomendasi menu kafe Amor Coffee Kediri menggunakan AI dan OCR technology.

🚀 Fitur Utama

  • OCR Menu Recognition: Scan foto menu menggunakan Google Vision OCR
  • AI-Powered Recommendations: Rekomendasi personal menggunakan Gemini AI
  • User Preferences: Sistem preferensi pengguna yang komprehensif
  • Firebase Integration: Autentikasi dan database real-time
  • Chat Interface: Tanya jawab dengan AI tentang menu
  • History & Favorites: Riwayat rekomendasi dan favorit
  • Offline Support: Cache data untuk penggunaan offline

🛠️ Tech Stack

  • Framework: Flutter 3.8.1+
  • State Management: Riverpod
  • Database: Firebase Firestore + Hive (local)
  • Authentication: Firebase Auth + Google Sign-In
  • AI/ML: Google Gemini AI + Google ML Kit OCR
  • UI: Material Design 3 dengan custom theme

🔧 Setup & Installation

Prerequisites

  1. Flutter SDK 3.8.1 atau lebih baru
  2. Dart SDK
  3. Android Studio / VS Code
  4. Firebase account
  5. Google Cloud account (untuk Gemini AI)

Environment Variables

Buat file .env di root project:

GEMINI_API_KEY=your_gemini_api_key_here
GOOGLE_SIGN_IN_CLIENT_ID=your_google_client_id_here

Firebase Setup

  1. Buat project baru di Firebase Console
  2. Enable Authentication (Email/Password & Google)
  3. Enable Firestore Database
  4. Enable Firebase Messaging
  5. Download google-services.json dan letakkan di android/app/
  6. Download GoogleService-Info.plist dan letakkan di ios/Runner/

Installation Steps

  1. Clone repository:
git clone https://github.com/your-username/muning-menu-recommender.git
cd muning-menu-recommender
  1. Install dependencies:
flutter pub get
  1. Generate Hive adapters:
flutter packages pub run build_runner build
  1. Run the app:
flutter run

🏗️ Architecture

lib/
├── core/
│   ├── config/          # App configuration
│   ├── constants/       # App constants
│   └── theme/          # App theme & styling
├── models/             # Data models
├── services/           # Business logic services
├── screens/            # UI screens
│   ├── auth/          # Authentication screens
│   ├── home/          # Home screen
│   ├── camera/        # Camera & OCR screens
│   ├── recommendation/ # Recommendation screens
│   ├── history/       # History screens
│   └── profile/       # Profile screens
└── main.dart          # App entry point

🧪 Testing

Unit Tests

flutter test

Integration Tests

flutter drive --target=test_driver/app.dart

Testing Strategy

  • Black Box Testing: Equivalence Class Partitioning (ECP), Boundary Value Analysis (BVA), Decision Table
  • SUS Questionnaire: System Usability Scale integration
  • Performance Testing: CPU usage (target: 20-36%), FPS (target: 66+)

📊 Performance Metrics

  • Target CPU Usage: 20-36%
  • Target FPS: 66+
  • OCR Accuracy: >90%
  • AI Response Time: <3 seconds
  • App Launch Time: <2 seconds

🔒 Security & Privacy

  • Data encryption in transit dan at rest
  • GDPR compliance untuk data handling
  • Secure API key management
  • User consent untuk data collection

🚀 Deployment

Android APK

flutter build apk --release

Android App Bundle

flutter build appbundle --release

iOS

flutter build ios --release

🤝 Contributing

  1. Fork the project
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

👥 Team

  • Developer: [Your Name]
  • UI/UX Designer: [Designer Name]
  • Project Manager: [PM Name]

🙏 Acknowledgments

  • Google untuk ML Kit dan Gemini AI
  • Firebase untuk backend services
  • Flutter team untuk framework yang amazing