# 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: ```env 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](https://console.firebase.google.com) 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: ```bash git clone https://github.com/your-username/muning-menu-recommender.git cd muning-menu-recommender ``` 2. Install dependencies: ```bash flutter pub get ``` 3. Generate Hive adapters: ```bash flutter packages pub run build_runner build ``` 4. Run the app: ```bash 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 ```bash flutter test ``` ### Integration Tests ```bash 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 ```bash flutter build apk --release ``` ### Android App Bundle ```bash flutter build appbundle --release ``` ### iOS ```bash 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](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 ---