185 lines
8.8 KiB
Markdown
185 lines
8.8 KiB
Markdown
# **AI Notes – Changelog**
|
||
|
||
## **Tim Pengembang**
|
||
|
||
* Dendi Yogia Pratama
|
||
* Raihan Ariq Muzakki
|
||
* Fazri Abdurrahman
|
||
|
||
# **Version 1.0.0 – Initial Release**
|
||
|
||
## **Sprint 1: Struktur Dasar Aplikasi**
|
||
|
||
### **Struktur & Navigation**
|
||
* **Setup navigation system** - Implementasi routing antar halaman (Beranda, Arsip, Sampah)
|
||
* **Menu Drawer** - Navigation drawer dengan list menu (Beranda, Berbintang, Arsip, Sampah)
|
||
* **Bottom Navigation** - Home & AI Helper tabs dengan icon navigation
|
||
* **Top App Bar** - Menu hamburger dan search icon dengan Material3 styling
|
||
* **Screen Architecture** - Pembuatan screen Arsip, Sampah, Berbintang, AI Helper
|
||
|
||
### **Theme & Styling**
|
||
* **Material3 Dark Theme** - Setup color scheme dengan dark mode default
|
||
* **Color System** - Primary/Secondary colors dengan gradient presets (8 kombinasi warna)
|
||
* **Consistent Design** - Rounded corners (12dp, 16dp, 20dp), shadow, elevation
|
||
* **Smooth Animations** - Drawer slide, FAB scale, card transitions dengan spring animations
|
||
* **Typography System** - Optimasi font sizes dan line heights untuk readability
|
||
|
||
### **Category Management**
|
||
* **Category Model** - Data class dengan gradient colors dan timestamp
|
||
* **Category Dialog** - Form tambah/edit kategori dengan nama + gradient picker
|
||
* **Category Card** - Design dengan icon folder, nama, jumlah catatan, gradient background
|
||
* **Staggered Grid Layout** - 2 kolom responsive dengan LazyVerticalStaggeredGrid
|
||
* **Category Actions** - Menu dropdown (⋮) untuk edit dan delete kategori
|
||
* **Empty State** - Pesan "Buat kategori pertama Anda" dengan icon
|
||
|
||
### **Note Management**
|
||
* **Note Model** - Data class dengan title, content, timestamp, isPinned, isArchived
|
||
* **Note Dialog** - Form dengan judul, deskripsi, simpan, batal, hapus
|
||
* **Note Card** - Preview dengan judul, deskripsi, timestamp, pin icon
|
||
* **Full-screen Editor** - Editable note view dengan auto-save dan actions
|
||
* **Pin Feature** - Toggle pin/unpin untuk catatan penting dengan sorting priority
|
||
* **Archive & Delete** - Actions untuk arsip dan soft delete notes
|
||
* **Search Functionality** - Real-time search berdasarkan judul dan isi (case-insensitive)
|
||
* **Smart Sorting** - Berdasarkan pin status dan timestamp (descending)
|
||
|
||
### **AI Assistant**
|
||
* **Gemini AI Integration** - Setup Google Generative AI SDK dengan gemini-2.5-flash
|
||
* **AI Helper Screen** - Layout chat interface dengan header dan statistics
|
||
* **Category Context Selector** - Dropdown untuk filter konteks AI berdasarkan kategori
|
||
* **Statistics Display** - Total catatan, pinned notes, jumlah kategori
|
||
* **Chat Interface** - User & AI bubble dengan different styling dan timestamp
|
||
* **Prompt Engineering** - Context builder dengan data catatan user (max 10 terbaru)
|
||
* **Suggestion Chips** - Quick question templates untuk user guidance
|
||
* **Copy to Clipboard** - Copy jawaban AI dengan confirmation feedback
|
||
* **Loading & Error States** - Circular progress indicator dan error messages
|
||
* **API Configuration** - Temperature 0.8, topK 40, topP 0.95, maxOutputTokens 4096
|
||
* **Auto-scroll Chat** - Scroll ke bottom otomatis dengan LaunchedEffect
|
||
|
||
### **Data Persistence**
|
||
* **DataStore Implementation** - Preferences DataStore untuk local storage
|
||
* **DataStoreManager Class** - Centralized dengan categoriesFlow & notesFlow
|
||
* **Auto-save dengan Debounce** - 500ms delay untuk optimize I/O operations
|
||
* **Flow-based Loading** - Reactive data loading dengan Flow collection
|
||
* **Error Handling** - Try-catch untuk semua I/O operations
|
||
* **Serializable Models** - JSON serialization dengan extension functions
|
||
|
||
### **UI/UX Enhancements**
|
||
* **Visual Feedback** - Click ripples, copy confirmation, loading states
|
||
* **Empty States** - Icon + descriptive messages untuk setiap screen
|
||
* **Confirmation Dialogs** - AlertDialog untuk arsip, hapus, delete actions
|
||
* **Search Empty State** - "Tidak ada hasil" message saat search kosong
|
||
* **Custom TextField** - Styled text input dengan consistent design
|
||
* **Date Formatter Utility** - Format timestamp ke readable Indonesian format
|
||
|
||
---
|
||
|
||
## **Sprint 2: Project Restructuring & Advanced Features**
|
||
|
||
### **Project Architecture**
|
||
* **Clean Architecture Migration** - Dari 3 file monolith ke modular structure
|
||
* **Data Layer Separation** - Models ke `data/model/` (Category, Note, ChatMessage)
|
||
* **Local Storage Layer** - DataStoreManager ke `data/local/` dengan PreferencesKeys
|
||
* **Component Extraction** - Screen components ke folder terpisah (main, starred, archive, trash)
|
||
* **Utilities Creation** - Constants.kt, DateFormatter.kt, Extensions.kt untuk reusability
|
||
* **Import Optimization** - Update semua import sesuai package structure baru
|
||
|
||
### **Search & Filter**
|
||
* **Beranda Search** - Real-time search kategori berdasarkan nama
|
||
* **Category Notes Search** - Search catatan di dalam kategori (judul & isi)
|
||
* **Search Filtering** - Live filtering saat user mengetik
|
||
* **Search Empty State** - Descriptive message dengan alternative suggestions
|
||
|
||
### **Category Features**
|
||
* **Edit Category** - Dialog untuk ubah nama dan gradient dengan pre-filled form
|
||
* **Delete Category** - Menu dropdown dengan confirmation dialog
|
||
* **Category Actions Menu** - Icon ⋮ untuk access edit & delete options
|
||
* **Gradient Preview** - Visual preview saat edit kategori
|
||
|
||
### **Trash System**
|
||
* **Soft Delete Implementation** - isDeleted flag untuk Category dan Note
|
||
* **Trash Screen** - Tampilkan kategori & notes yang terhapus
|
||
* **TrashCategoryCard Component** - Card khusus dengan restore & delete permanent actions
|
||
* **Restore Feature** - Pulihkan kategori beserta semua notes di dalamnya
|
||
* **Permanent Delete** - Hapus kategori dan notes secara irreversible dengan confirmation
|
||
* **Counter Display** - Jumlah items terhapus di trash
|
||
* **Global Filter** - Filter `!isDeleted` di semua screen untuk hide deleted items
|
||
|
||
### **Bug Fixes & Optimization**
|
||
* **Runtime Error Debugging** - Fix NotImplementedError & FATAL EXCEPTION issues
|
||
* **Google Play Services Handling** - Error handling untuk GMS dependencies
|
||
* **Component Migration** - Update deprecated Divider ke HorizontalDivider
|
||
* **Gradle Optimization** - Cleanup unnecessary dependencies
|
||
* **State Management** - Proper state hoisting dan recomposition optimization
|
||
|
||
### **Documentation**
|
||
* **Migration Guide** - Step-by-step panduan untuk project restructuring
|
||
* **Debugging Guide** - Troubleshooting common issues dan error handling
|
||
|
||
---
|
||
|
||
# **Version 1.1.0 – AI Helper Screen Enhancement & UI Refinement**
|
||
|
||
## **Sprint 3: AI Helper Screen Features & Modern UI Redesign**
|
||
|
||
### **AI Assistant Enhancements**
|
||
* **History Chat AI dengan Drawer Menu** - Riwayat percakapan AI tersimpan permanen, dikelompokkan per kategori
|
||
* **Chat History Management** - Load previous chat, delete history, start new chat dengan auto-save
|
||
* **Markdown Parser untuk AI Response** - Support bold, italic, code blocks, headers, lists, quotes, links
|
||
* **Improved Error Handling** - User-friendly error messages untuk quota, network, API issues
|
||
* **Gemini Model Update** - Switch ke gemini-1.5-flash untuk stabilitas optimal
|
||
|
||
### **Theme System**
|
||
* **Dark/Light Theme Toggle** - Dual theme dengan persistent storage di drawer menu
|
||
* **Reactive Color System** - Dynamic color switching untuk semua components
|
||
* **Complete Color Palette** - DarkColors dan LightColors objects untuk consistency
|
||
|
||
### **UI/UX Modernization**
|
||
* **Floating Design System** - TopBar dan BottomBar dengan floating style, rounded corners, shadow
|
||
* **Consistent Component Style** - Unified design language dengan CircleShape buttons
|
||
* **Optimized Layouts** - Better spacing dan vertical action stack untuk maximize content space
|
||
|
||
### **Data & Navigation**
|
||
* **Note Edit & Delete from Card** - Menu dropdown pada NoteCard untuk quick actions
|
||
* **Race Condition Fix** - Guard flags dan lifecycle-aware auto-save untuk data persistence
|
||
* **Simplified Navigation** - Unified drawer menu, remove redundant back buttons
|
||
* **Extended DataStore** - Support chat history, theme preference, improved error handling
|
||
|
||
---
|
||
|
||
## **Fitur Utama Aplikasi**
|
||
|
||
* Sistem kategori dengan gradient
|
||
* Buat/edit/hapus kategori dengan confirmation dialog
|
||
* Buat/edit/hapus catatan
|
||
* Pin catatan penting
|
||
* Full-screen editor
|
||
* Search kategori di beranda
|
||
* Search catatan dalam kategori
|
||
* Arsip & Sampah dengan restore/delete permanen
|
||
* AI Chat powered by Gemini
|
||
* AI membaca & menganalisis catatan pengguna
|
||
* Suggestion chips & copy response
|
||
* Filter AI berdasarkan kategori
|
||
* Dark theme modern + gradient
|
||
* Animasi smooth
|
||
* Empty states & error handling
|
||
|
||
---
|
||
|
||
## **Features for Sprint 3 v1.1.0**
|
||
|
||
* History Chat AI berdasarkan Catatan yang ada didalam kategori dalam bentuk Drawer Menu di AI Helper (ok)
|
||
* Mengganti Preview Deskripsi NoteCard dan NoteDialog (ok)
|
||
* Dark/Light theme toggle (ok)
|
||
* Markdown Parser (ok)
|
||
|
||
---
|
||
|
||
## **Features for Sprint 4 v1.1.0**
|
||
|
||
* Penyesuaian UI/UX History Chat AI
|
||
* Rich text editor
|
||
* AI Agent Catatan
|
||
* Fungsi AI (Upload File)
|
||
* Fitur Sematkan Category, otomatis paling atas
|