diff --git a/Readme.md b/Readme.md index 55524a5..e455ec3 100644 --- a/Readme.md +++ b/Readme.md @@ -194,23 +194,93 @@ > Rich Text Editor butuh dikembangkan lagi lebih advance --- -## **Fitur Utama Aplikasi** +## **Sprint 5: AI Assistant Enhancements & Smart Organization Features** -* Sistem kategori dengan gradient -* Buat/edit/hapus kategori dengan confirmation dialog -* Buat/edit/hapus catatan -* Pin catatan penting (Catatan Berbintang) -* 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 & Light theme -* Animasi smooth -* Empty states & error handling +### **Copy Plain Text Feature** +* **Dual Copy Options** – Dropdown menu dengan 2 pilihan: "Copy dengan Format" dan "Copy Teks Asli" +* **Smart Markdown Stripper** – Utility untuk remove bold, italic, code, headers, lists, links dari text +* **Visual Feedback** – Animated checkmark indicator dengan auto-hide setelah 2 detik +* **Format Preservation** – Copy dengan format maintain semua markdown syntax +* **Clean Output** – Plain text copy menghasilkan text bersih tanpa formatting apapun + +### **Document Upload & AI Summary** +* **Multi-Format Support** – Upload PDF, TXT, dan DOCX files dengan file picker +* **Smart PDF Parser** – PDFBox Android integration untuk extract text dari PDF documents +* **Lightweight DOCX Parser** – Custom XML-based parser tanpa Apache POI dependency +* **Auto-Summary Generation** – AI auto-generate ringkasan maksimal 300 kata saat file di-upload +* **File Validation** – Maximum 10MB dengan clear error messaging untuk setiap kasus +* **Loading Integration** – Loading indicator "Membuat ringkasan..." terintegrasi di chat area +* **Chat Format** – Upload result format: "📄 Upload file: filename" dengan summary response + +### **Category Pin System** +* **Pin/Unpin Toggle** – Quick access untuk kategori favorit dengan dropdown menu +* **Visual Pin Indicator** – 📌 icon dengan scale dan fade animations +* **Smart Sorting Logic** – Priority sorting: pinned categories (DESC) → timestamp (DESC) +* **Persistent Storage** – Pin status tersimpan di DataStore dengan backward compatibility +* **Multiple Pins Support** – User dapat pin multiple categories dengan proper grouping +* **Context Menu Integration** – Pin option di dropdown: "Pin Kategori" / "Lepas Pin" + +### **Technical Implementation** +* **MarkdownStripper.kt** – Utility class dengan regex-based markdown removal +* **FileParser.kt** – Centralized file parsing untuk PDF, TXT, DOCX +* **Category Model Update** – Added `isPinned: Boolean` field dengan serialization support +* **FileParseResult** – Sealed class untuk type-safe file parsing results +* **PDFBoxResourceLoader** – Proper initialization dalam Application.onCreate() +* **State Management** – Combined loading states untuk chat dan file upload + +### **User Experience** +* **Smooth Transitions** – Loading states dengan color differentiation (Primary vs Secondary) +* **Error Handling** – Comprehensive error messages untuk berbagai failure scenarios +* **Auto-Scroll** – Scroll to bottom saat upload file untuk show loading indicator +* **Disabled States** – Upload button hidden saat processing untuk prevent duplicate actions +* **Persistence** – Pin status dan file summary survive app restart + +--- + +## 🎯 Fitur Utama (Core Features) +1. **Note Management System** ⭐ (PRIMARY) + + * Create, Read, Update, Delete catatan + * Organize notes dalam categories + * Pin notes untuk quick access + * Archive & Trash system dengan soft delete + * Full-screen rich text editor dengan WYSIWYG + * Real-time search & filter notes + +2. **AI Assistant** 🤖 (PRIMARY) + + * Chat dengan AI menggunakan Gemini 2.5 Flash + * Context-aware responses berdasarkan notes user + * Chat history management dengan persistent storage + * Document upload & auto-summary (PDF, TXT, DOCX) + * Markdown support untuk AI responses + * Copy plain text atau formatted text + +3. **Category Organization** 📁 (CORE) + + * Create & manage categories dengan 8 gradient color presets + * Pin favorite categories untuk quick access + * Smart sorting: pinned categories → timestamp descending + * Category-based note filtering dengan statistics + * Staggered grid layout responsive + +4. **Rich Text Editor** ✏️ (CORE) + + * WYSIWYG (What You See Is What You Get) editing experience tanpa raw markdown + * Bold, italic, underline, headings (H1-H3), bullet lists + * Floating draggable toolbar dengan active state indicators + * Undo/Redo functionality + * Markdown compatibility untuk import/export + * Auto-save lifecycle-aware + +5. **Data Persistence** 💾 (ESSENTIAL) + + * Local storage dengan DataStore Preferences + * Auto-save dengan debounce (500ms delay) + * Theme preference storage (dark/light mode) + * Chat history persistence dengan serialization + * Flow-based reactive data loading + * Error handling untuk semua I/O operations --- @@ -224,8 +294,13 @@ --- ## **Features for Sprint 4 v1.1.0** - * Penyesuaian UI/UX History Chat AI (ok) * Rich text editor (ok - Harus Pengembangan Lanjutan) + +--- + +## **Features for Sprint 5 v1.1.0** * Fungsi AI (Upload File) (ok) -* Fitur Sematkan Category, otomatis paling atas +* Fitur Sematkan Category, otomatis paling atas (ok) + +## **Unit Testing is Coming** \ No newline at end of file