Compare commits

..

No commits in common. "b6a6b864117cc5e1ba1fc761c1bbf0020c693e85" and "85a2c65017fbc6a4bd772d6f7341ba4bd627251b" have entirely different histories.

111
Readme.md
View File

@ -194,93 +194,23 @@
> Rich Text Editor butuh dikembangkan lagi lebih advance > Rich Text Editor butuh dikembangkan lagi lebih advance
--- ---
## **Sprint 5: AI Assistant Enhancements & Smart Organization Features** ## **Fitur Utama Aplikasi**
### **Copy Plain Text Feature** * Sistem kategori dengan gradient
* **Dual Copy Options** – Dropdown menu dengan 2 pilihan: "Copy dengan Format" dan "Copy Teks Asli" * Buat/edit/hapus kategori dengan confirmation dialog
* **Smart Markdown Stripper** – Utility untuk remove bold, italic, code, headers, lists, links dari text * Buat/edit/hapus catatan
* **Visual Feedback** – Animated checkmark indicator dengan auto-hide setelah 2 detik * Pin catatan penting (Catatan Berbintang)
* **Format Preservation** – Copy dengan format maintain semua markdown syntax * Full-screen editor
* **Clean Output** – Plain text copy menghasilkan text bersih tanpa formatting apapun * Search kategori di beranda
* Search catatan dalam kategori
### **Document Upload & AI Summary** * Arsip & Sampah dengan restore/delete permanen
* **Multi-Format Support** – Upload PDF, TXT, dan DOCX files dengan file picker * AI Chat powered by Gemini
* **Smart PDF Parser** – PDFBox Android integration untuk extract text dari PDF documents * AI membaca & menganalisis catatan pengguna
* **Lightweight DOCX Parser** – Custom XML-based parser tanpa Apache POI dependency * Suggestion chips & copy response
* **Auto-Summary Generation** – AI auto-generate ringkasan maksimal 300 kata saat file di-upload * Filter AI berdasarkan kategori
* **File Validation** – Maximum 10MB dengan clear error messaging untuk setiap kasus * Dark theme & Light theme
* **Loading Integration** – Loading indicator "Membuat ringkasan..." terintegrasi di chat area * Animasi smooth
* **Chat Format** – Upload result format: "📄 Upload file: filename" dengan summary response * Empty states & error handling
### **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
--- ---
@ -294,13 +224,8 @@
--- ---
## **Features for Sprint 4 v1.1.0** ## **Features for Sprint 4 v1.1.0**
* Penyesuaian UI/UX History Chat AI (ok) * Penyesuaian UI/UX History Chat AI (ok)
* Rich text editor (ok - Harus Pengembangan Lanjutan) * Rich text editor (ok - Harus Pengembangan Lanjutan)
---
## **Features for Sprint 5 v1.1.0**
* Fungsi AI (Upload File) (ok) * Fungsi AI (Upload File) (ok)
* Fitur Sematkan Category, otomatis paling atas (ok) * Fitur Sematkan Category, otomatis paling atas
## **Unit Testing is Coming**