187 lines
4.4 KiB
Markdown
187 lines
4.4 KiB
Markdown
# Muning Menu Recommender
|
|
|
|
Aplikasi rekomendasi menu kafe Muning Kofie 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
|
|
|
|
## 📱 Screenshots
|
|
|
|
[Screenshots akan ditambahkan setelah implementasi UI selesai]
|
|
|
|
## 🔧 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]
|
|
|
|
## 📞 Support
|
|
|
|
Untuk pertanyaan atau dukungan:
|
|
- Email: support@muningkofie.com
|
|
- WhatsApp: +62xxx-xxxx-xxxx
|
|
- Website: https://muningkofie.com
|
|
|
|
## 🙏 Acknowledgments
|
|
|
|
- Muning Kofie Kediri untuk kolaborasi
|
|
- Google untuk ML Kit dan Gemini AI
|
|
- Firebase untuk backend services
|
|
- Flutter team untuk framework yang amazing
|
|
|
|
---
|
|
|
|
**© 2024 Muning Kofie Kediri. All rights reserved.**
|
|
|
|
|
|
|