Smart Alarm - Aplikasi Alarm Android Modern Aplikasi alarm Android yang canggih dengan fitur-fitur lanjutan seperti shake to stop, gradual volume, statistik, dan preset alarm. 🎯 Fitur Utama ✨ Fitur Alarm Multiple Alarms - Buat alarm sebanyak yang kamu mau Repeat Schedule - Atur alarm berulang per hari (Senin-Minggu) Custom Labels - Beri nama setiap alarm Snooze Function - Tunda alarm dengan mudah 🤚 Shake to Stop Intelligent Shake Detection - Gunakan accelerometer untuk deteksi goyangan Adjustable Intensity - Atur tingkat kesulitan (1-5) Visual Feedback - Progress bar saat shake 📈 Gradual Mode Progressive Volume - Volume meningkat bertahap Customizable Duration - Atur durasi peningkatan volume Smooth Wake Up - Bangun dengan lembut 📊 Statistics Alarm History - Rekam semua alarm yang berbunyi Stop Method Tracking - Lihat bagaimana alarm dimatikan Snooze Count - Hitung berapa kali snooze Average Duration - Waktu rata-rata alarm berbunyi 🎨 Preset Alarms 6 Preset Bawaan: Morning (06:30) - Weekdays Work Start (08:00) - Weekdays Lunch (12:00) - Weekdays Afternoon Nap (14:00) Evening (18:00) - Weekdays Night (22:00) 🏗️ Arsitektur Proyek ini menggunakan Clean Architecture dengan pola MVVM: ├── data/ # Data layer │ ├── db/ # Room Database │ ├── datastore/ # DataStore preferences │ ├── model/ # Data models │ └── repository/ # Repository pattern ├── domain/ # Business logic │ ├── usecase/ # Use cases │ └── mapper/ # Data mappers ├── service/ # Background services ├── ui/ # Presentation layer │ ├── alarm/ # Alarm screens │ ├── statistics/ # Statistics screen │ └── components/ # Reusable components ├── viewmodel/ # ViewModels └── utils/ # Utility classes 🛠️ Tech Stack Language: Kotlin Architecture: MVVM + Clean Architecture Database: Room Preferences: DataStore UI: Material Design 3 Navigation: Navigation Component Concurrency: Coroutines + Flow DI: Manual (bisa upgrade ke Hilt/Koin) Charts: MPAndroidChart 📦 Dependencies gradle// Core implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.appcompat:appcompat:1.6.1") implementation("com.google.android.material:material:1.11.0") // Lifecycle & ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0") implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.7.0") // Navigation implementation("androidx.navigation:navigation-fragment-ktx:2.7.6") // Room Database implementation("androidx.room:room-runtime:2.6.1") kapt("androidx.room:room-compiler:2.6.1") // DataStore implementation("androidx.datastore:datastore-preferences:1.0.0") // Charts implementation("com.github.PhilJay:MPAndroidChart:v3.1.0") 🚀 Instalasi 1. Clone Repository bashgit clone https://gitlab.com/username/smart-alarm.git cd smart-alarm 2. Open di Android Studio File → Open → Pilih folder proyek Tunggu Gradle sync selesai 3. Build & Run Klik tombol Run (▶️) Pilih device/emulator Aplikasi akan terinstall otomatis ⚙️ Konfigurasi Minimum Requirements Android Version: Android 8.0 (API 26) Target Version: Android 14 (API 34) Kotlin: 1.9.0+ Gradle: 8.0+ Permissions Aplikasi memerlukan permission berikut: POST_NOTIFICATIONS - Untuk notifikasi alarm SCHEDULE_EXACT_ALARM - Untuk alarm tepat waktu VIBRATE - Untuk getaran WAKE_LOCK - Untuk membangunkan device RECEIVE_BOOT_COMPLETED - Untuk reschedule setelah reboot # Instrumentation Tests ./gradlew connectedAndroidTest 📄 License This project is licensed under the MIT License - see the LICENSE file for details. 👨‍💻 Author Lalu Muhammad Anggan Subhan (202310715277) Muhammad Rafly Al-Fathir (202310715043) Rafi Fattan Fitriardi (202310715002) 🙏 Acknowledgments Material Design Icons MPAndroidChart library Android Jetpack libraries Stack Overflow community