Sebuah aplikasi Flutter yang memanfaatkan Firebase untuk autentikasi (Firebase Auth) dan penyimpanan catatan (Cloud Firestore). Proyek ini menerapkan pola Clean Architecture dengan pembagian domain, data, dan presentation, serta menggunakan Provider + GetIt untuk state management dan dependency injection.
- Autentikasi Firebase:
- Registrasi akun baru
- Login dengan email/password
- Logout
- Proteksi rute berdasarkan status auth
- Clean Architecture:
- Domain Layer: Entities, Use Cases, Repository Contracts
- Data Layer: Repository Implementations, Data Sources
- Presentation Layer: UI + State Management
- State Management & DI:
- Provider untuk manajemen state
- GetIt untuk dependency injection
- Flutter SDK
- Firebase (Auth & Firestore)
- Provider (State Management)
- GetIt (Dependency Injection)
lib/
├── core/ // Kode dasar & utilities
│ ├── error/ // Error handling
│ ├── usecases/ // Base use case contract
│ └── utils/ // Helper functions
├── di/ // Dependency Injection
│ └── injection_container.dart
├── features/
│ ├── data/
│ │ ├── datasources/ // Firebase services
│ │ ├── models/ // Data models
│ │ └── repositories/ // Repository implementations
│ ├── domain/
│ │ ├── entities/ // Business objects
│ │ ├── repositories/ // Repository contracts
│ │ └── usecases/ // Business logic
│ └── presentation/
│ ├── provider/ // State management
│ ├── screens/ // UI screens
│ └── widgets/ // Reusable widgets
└── main.dart // Entry point
- Flutter SDK (versi terbaru)
- Firebase project & configurasi
- Android Studio / VS Code
- Android Emulator / iOS Simulator
- Clone repository:
git clone https://github.com/RedEye1605/Kelompok-8-Intern-Raion.git
cd Kelompok-8-Intern-Raion
- Install dependencies:
dependencies:
flutter:
sdk: flutter
firebase_core: ^3.12.1
firebase_auth: ^5.5.1
cloud_firestore: ^5.6.5
provider: ^6.0.5
get_it: ^8.0.3
- Get packages:
flutter pub get
- Setup Firebase:
- Buat project di Firebase Console
- Download & tambahkan file konfigurasi:
google-services.json
untuk AndroidGoogleService-Info.plist
untuk iOS
- Aktifkan Authentication & Cloud Firestore
- Pastikan device/emulator terhubung:
flutter devices
- Jalankan aplikasi:
flutter run
# Unit & Widget Tests
flutter test
# Integration Tests
flutter test integration_test
flutter build apk --release
File APK akan tersedia di build/app/outputs/flutter-apk/app-release.apk
flutter build ios --release
Buka Xcode untuk proses deployment ke App Store
- Fork repository
- Buat branch fitur (
git checkout -b feature/AmazingFeature
) - Commit perubahan (
git commit -m 'Add some AmazingFeature'
) - Push ke branch (
git push origin feature/AmazingFeature
) - Buat Pull Request
- Rhendy Saragih - @rhendysrg_
- Ihtishamul Hasan - @_shamhasan
Project Link: https://github.com/RedEye1605/Kelompok-8-Intern-Raion