233 lines
11 KiB
Markdown
233 lines
11 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
|
||
|
||
---
|
||
|
||
## **Sprint 4: Rich Text Editor Core Features & AI Chat History UI/UX Improvements**
|
||
|
||
### **Rich Text Editing**
|
||
* **Hybrid Rich Text Editor (WYSIWYG)** – Edit teks dengan format langsung tanpa syntax markdown terlihat
|
||
* **Bold, Italic, Underline** – Formatting bersifat toggle dan tetap aktif sampai dimatikan
|
||
* **Heading & Bullet List** – Support heading (H1–H3) dan bullet list tanpa konflik antar format
|
||
* **Undo / Redo** – Riwayat perubahan editor terintegrasi
|
||
|
||
### **Floating Toolbar**
|
||
* **Draggable Mini Toolbar** – Toolbar dapat dipindahkan bebas oleh user
|
||
* **Active State Indicator** – Icon toolbar menandakan format aktif (Bold, Italic, dll)
|
||
* **Minimal UI** – Toolbar kecil agar tidak mengganggu area pengetikan
|
||
* **Keyboard-Aware Positioning** – Posisi toolbar menyesuaikan saat keyboard muncul
|
||
|
||
### **Cursor & Editing Stability**
|
||
* **Stable Cursor & Selection** – Insertion point dan selection handle akurat saat mengetik
|
||
* **IME & Keyboard Safe** – Editor tetap stabil saat keyboard resize / rotate
|
||
* **Auto Bring-Into-View** – Cursor selalu terlihat saat mengetik di area bawah layar
|
||
|
||
### **Data Persistence**
|
||
* **Format Tersimpan Permanen** – Rich text tidak hilang setelah save atau reopen
|
||
* **Auto Save Lifecycle-Aware** – Catatan otomatis tersimpan saat app background / keluar
|
||
* **Markdown Compatibility** – Support import & export markdown secara aman
|
||
|
||
### **Chat History Enhancements**
|
||
* **Compact Modern Design** - Item lebih kecil dengan horizontal layout dan 30 karakter limit
|
||
* **Search & Filter System** - Real-time search dengan category dropdown filtering
|
||
* **Date Grouping** - Auto-group: "Hari Ini", "Kemarin", "Minggu Ini", "Lebih Lama"
|
||
* **Edit Title with Markdown** - Custom title support: **bold**, *italic*, `code`, ~~strike~~
|
||
* **Context Menu** - Three-dot menu (⋮) untuk Edit dan Delete actions
|
||
* **Live Preview** - Real-time markdown preview saat edit title
|
||
|
||
### **Technical Updates**
|
||
* **ChatHistory Model** - Added `customTitle: String?` field
|
||
* **DataStore Integration** - New `updateChatHistoryTitle()` function
|
||
* **Smart Truncation** - Auto-truncate preview ke 30 char dengan `toSafeChatPreview()`
|
||
* **Markdown Parser** - Inline markdown rendering untuk titles dengan proper styling
|
||
* **Character Counter** - Visual feedback dengan color indicator (Gray → Primary → Red)
|
||
|
||
### **User Experience**
|
||
* **Better Empty States** - Informative UI untuk empty search dan no history
|
||
* **Smooth Animations** - Slide transitions untuk dialogs
|
||
* **Input Validation** - Max 30 char dengan real-time blocking
|
||
* **Focus Management** - Seamless editing experience dengan auto-focus
|
||
|
||
> Rich Text Editor butuh dikembangkan lagi lebih advance
|
||
---
|
||
|
||
## **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 (ok)
|
||
* Rich text editor (ok - Pengembangan Lanjutan)
|
||
* AI Agent Catatan
|
||
* Fungsi AI (Upload File)
|
||
* Fitur Sematkan Category, otomatis paling atas
|