amoriai/README.md

174 lines
4.1 KiB
Markdown

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