# **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