Compass_Aps/README.md
2026-01-09 16:26:16 +07:00

33 KiB
Raw Permalink Blame History

# Nama Proyek Anda

Nama Proyek Anda

Logo Issues Pull Requests Milestones Explore 202310715297-RAIHAN-ARIQ-MUZAKKI / NotesAI Code Issues Pull Requests Actions Packages Projects Releases Wiki Activity 89 Commits 4 Branches 0 Tags 202310715297 RAIHAN ARIQ MUZAKKI Raihan Ariq e309009b54 FINAL'2 4 days ago .idea Functional Testing 2 weeks ago .kotlin/errors Menambahkan Dark/Light theme toggle 3 weeks ago app Merge branch '1.1.0' 4 days ago docs Dokumentasi 4 days ago gradle Functional Testing 2 weeks ago .gitignore Sprint 1: Setup Proyek & Struktur Dasar last month build.gradle.kts Sprint 1: Setup Proyek & Struktur Dasar last month CHANGELOG.md Dokumentasi CHANGELOG.md 2 weeks ago gradle.properties Sprint 1: Setup Proyek & Struktur Dasar last month gradlew Sprint 1: Setup Proyek & Struktur Dasar last month gradlew.bat Sprint 1: Setup Proyek & Struktur Dasar last month NotesAI.apk Dokumentasi 4 days ago README.md FINAL'2 4 days ago settings.gradle.kts Sprint 1: Setup Proyek & Struktur Dasar last month TEST_SUMMARY_REPORT.md Dokumentasi README.md 2 weeks ago README.md Logo NotesAI NotesAI - AI-Powered Note Taking App 1.1.0 NotesAI Banner Platform Kotlin

Aplikasi pencatatan cerdas berbasis AI untuk Android dengan fitur organisasi terstruktur dan AI Assistant

📖 Dokumentasi Lengkap | 🧪 Test Report | 📋 Changelog

Unduh NotesAI.apk

👥 Tim Pengembang Kelompok 1 - Kelas F5A5

Nama NPM Dendi Yogia Pratama 202310715051 Raihan Ariq Muzakki 202310715297 Fazri Abdurahman 202310715082 Dosen Pengampu: Arif Rifai Dwiyanto, ST., MTI Mata Kuliah: Pemrograman Perangkat Bergerak Institusi: Universitas Bhayangkara Jakarta Raya

📌 Informasi Proyek Nama Aplikasi: NotesAI Repository: NotesAI Platform: Android (Minimum API 24 / Android 7.0) Bahasa: Kotlin 100% UI Framework: Jetpack Compose + Material 3 🎯 Tujuan dan Sasaran Aplikasi Masalah yang Dipecahkan Catatan tidak terorganisir - Catatan bercampur tanpa struktur yang jelas Sulit mencari informasi - Kehilangan waktu mencari catatan penting Kurang interaktif - Tidak ada bantuan untuk merangkum atau menganalisis catatan Risiko kehilangan data - Catatan terhapus permanen tanpa backup Target Pengguna 🎓 Mahasiswa (18-25 tahun) - Catatan kuliah, tugas, ringkasan dokumen 💼 Profesional (22-40 tahun) - Meeting notes, to-do lists, catatan kerja 👤 Pengguna Umum (18-40 tahun) - Catatan pribadi, jurnal, daftar belanja Keunggulan NotesAI Organisasi Terstruktur - Sistem kategori dengan visual gradien warna AI Assistant - Powered by Gemini 2.5 Flash untuk respons kontekstual Rich Text Editor - WYSIWYG editor dengan drag-and-drop toolbar Smart Search - Pencarian realtime dengan filter kategori Data Safety - Soft delete dengan trash & restore functionality Document Parser - Upload PDF/TXT/DOCX dengan auto-summary

Fitur Utama 1 Note Management System ✏️ CRUD Operations - Create, Read, Update, Delete catatan 📁 Category Organization - Pengelompokan visual dengan gradien warna 📌 Pin Priority - Pin notes/kategori untuk akses cepat 🗄️ Archive & Trash - Soft delete dengan kemampuan restore 🎨 Rich Text Editor - Bold, italic, underline, heading, bullet list 🔍 Smart Search - Realtime search dengan case-insensitive 2 AI Assistant 🤖 Contextual AI Chat - AI memahami konteks dari catatan Anda 📄 Document Upload - Support PDF, TXT, DOCX 📝 Auto Summary - Ringkasan otomatis dari dokumen 💬 Chat History - Penyimpanan percakapan persistent 🎯 Category Filter - Filter konteks berdasarkan kategori ✍️ Markdown Support - Formatted AI responses 3 Data Management 💾 Local Storage - DataStore Preferences untuk data persistence 🔄 Autosave - Lifecycle-aware autosave dengan debounce 500ms 🌙 Theme Preference - Dark/Light mode support 📊 Reactive Data - Flow-based reactive data loading Fast Performance - Optimized untuk pengalaman smooth 📊 Riset dan Analisis Analisis Pasar Berdasarkan riset pasar 2025:

70% responden percaya AI meningkatkan produktivitas kerja (Eurobarometer, Feb 2025) Pasar note-taking apps menunjukkan pertumbuhan dengan tren integrasi AI Gemini 2.5 Flash dipilih sebagai model "price-performance" terbaik untuk low-latency tasks Diferensiasi NotesAI 🎯 AI Contextual - AI dapat membaca semua catatan sebagai konteks 🎯 Document to Summary - Upload file langsung dapat ringkasan 🎯 Local-First - Tidak butuh login, data tersimpan lokal 🎯 Free & Open - Tidak ada paywall untuk fitur utama

🎨 Desain UI/UX Design System Material Design 3 - Modern, clean, consistent Color Scheme - Dynamic gradients untuk kategori Typography - Clear hierarchy untuk readability Spacing - Consistent 4dp baseline grid User Flow ┌─────────────────────────────────────────────┐ │ 🏠 Main Screen (Home) │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ Category │ │ Category │ │ │ │ Card │ │ Card │ │ │ └─────────────┘ └─────────────┘ │ └───────────┬─────────────────────────────────┘ │ Select Category ▼ ┌─────────────────────────────────────────────┐ │ 📄 Notes List Screen │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ Note Card │ │ Note Card │ │ │ │ (Pinned) │ │ (Regular) │ │ │ └─────────────┘ └─────────────┘ │ └───────────┬─────────────────────────────────┘ │ Open Note ▼ ┌─────────────────────────────────────────────┐ │ ✏️ Full-Screen Editor │ │ • Rich Text Toolbar (Draggable) │ │ • Bold, Italic, Underline │ │ • Heading, Bullet List │ │ • Auto-save on background │ └─────────────────────────────────────────────┘ Wireframe & Mockup 📐 Wireframe lengkap tersedia di Dokumentasi Halaman 15 📸 Screenshot aplikasi tersedia di Panduan Pengguna (Halaman 21-28)

🛠️ Teknologi dan Alat Tech Stack Core Technologies // Build Configuration Kotlin 1.9.0 Android Gradle Plugin 8.2.0 Compile SDK 34 Min SDK 24 (Android 7.0) Target SDK 34 UI & Architecture Jetpack Compose - Modern declarative UI Material 3 - Latest Material Design components Navigation Compose - Type-safe navigation Lifecycle - Lifecycle-aware components Data & Storage DataStore Preferences - Key-value storage Kotlinx Serialization - JSON serialization Kotlin Coroutines - Asynchronous programming Flow - Reactive data streams AI & Integration Gemini API - Google Generative AI (Gemini 2.5 Flash) PDFBox-Android - PDF text extraction Activity Result API - File picker for document upload Development Tools Android Studio Git - Version control (git.lab.ubharajaya.ac.id) Gradle - Build automation Claude AI - AI-assisted development Dependencies dependencies { // Compose implementation("androidx.compose.ui:ui:1.6.0") implementation("androidx.compose.material3:material3:1.2.0")

// DataStore
implementation("androidx.datastore:datastore-preferences:1.0.0")

// Serialization
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")

// AI
implementation("com.google.ai.client.generativeai:generativeai:0.1.2")

// PDF Parser
implementation("com.tom-roush:pdfbox-android:2.0.27.0")

// Testing
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")

} 🏗️ Arsitektur Aplikasi Architecture Pattern ┌──────────────────────────────────────────────────┐ │ PRESENTATION LAYER │ │ ┌──────────────────────────────────────────┐ │ │ │ Composable Screens │ │ │ │ • MainScreen │ │ │ │ • AIHelperScreen │ │ │ │ • ArchiveScreen, TrashScreen │ │ │ └──────────────────────────────────────────┘ │ └────────────────────┬─────────────────────────────┘ │ Uses ▼ ┌──────────────────────────────────────────────────┐ │ DATA LAYER │ │ ┌──────────────────────────────────────────┐ │ │ │ DataStoreManager │ │ │ │ • saveNotes() / notesFlow │ │ │ │ • saveCategories() / categoriesFlow │ │ │ │ • saveChatHistory() / chatHistoryFlow │ │ │ └──────────────────────────────────────────┘ │ └────────────────────┬─────────────────────────────┘ │ Stores ▼ ┌──────────────────────────────────────────────────┐ │ MODEL LAYER │ │ • Note (id, title, content, isPinned...) │ │ • Category (id, name, gradients, isPinned...) │ │ • ChatHistory (messages, timestamp...) │ └──────────────────────────────────────────────────┘ Package Structure com.example.notesai/ ├── 📁 config/ │ └── APIKey.kt ├── 📁 data/ │ ├── 📁 local/ │ │ └── DataStoreManager.kt │ └── 📁 model/ │ ├── Note.kt │ ├── Category.kt │ ├── ChatHistory.kt │ └── ChatMessage.kt ├── 📁 presentation/ │ ├── 📁 components/ │ │ ├── DrawerMenu.kt │ │ ├── ModernTopBar.kt │ │ └── ModernBottomBar.kt │ └── 📁 screens/ │ ├── 📁 main/ │ ├── 📁 ai/ │ ├── 📁 archive/ │ ├── 📁 trash/ │ └── 📁 note/ └── 📁 util/ ├── FileParser.kt ├── Constants.kt └── AppColors.kt 📚 Resource yang Digunakan Visual Assets 🎨 Icons - Material Icons & Lucide Icons 🌈 Colors - Material 3 Dynamic Color 🖼️ Illustrations - Custom empty states Content & Data 📖 Sample Data - Test categories & notes untuk demo 📄 Documents - Sample PDF/TXT untuk testing parser External Services 🤖 Gemini API - Google Generative AI 📚 Documentation - Android Developers, Kotlin Docs Learning Resources Referensi utama yang digunakan:

Android App Architecture Guide Jetpack Compose Documentation Gemini API Documentation Kotlin Serialization 🧪 Pengujian Aplikasi Metodologi Testing Primary Method: Black-Box Functional Testing Supporting Method: Automated Unit Testing

Pengujian dilakukan menggunakan metode Black-Box Functional Testing sebagai pendekatan utama, dimana setiap fitur divalidasi dari perspektif end-user dengan memverifikasi kesesuaian Expected vs Actual Result. Didukung oleh 59 automated unit tests untuk validasi business logic internal.

Test Coverage Summary Test Case Fitur Tests Status TC-01 Create Note & Category + Autosave 8 tests PASSED TC-02 Pin Note (Priority) included PASSED TC-03 Soft Delete & Restore 11 tests PASSED TC-04 Search Realtime 14 tests PASSED TC-05 AI Chat with Context 14 tests PASSED TC-06 Upload PDF → Summary 12 tests PASSED TOTAL 6 Test Cases 59 tests 100% Test Results ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📊 TEST SUMMARY REPORT ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Total Test Cases: 6 Passed Test Cases: 6 Failed Test Cases: 0 Success Rate: 100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Total Unit Tests: 59 Passed Tests: 59 Failed Tests: 0 Execution Time: ~2 minutes ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Status: ALL TESTS PASSED Quality: PRODUCTION READY ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📄 Laporan lengkap: TEST_SUMMARY_REPORT.md

Testing Framework JUnit 4 - Unit testing framework AndroidX Test - Android testing utilities Kotlin Coroutines Test - Async testing Truth - Assertion library 🚀 Instalasi dan Penggunaan Prasyarat Android 7.0 (API 24) atau lebih tinggi Koneksi internet (untuk fitur AI) Minimal 50MB storage kosong Cara Menjalankan dari Source Code

  1. Clone Repository git clone https://git.lab.ubharajaya.ac.id/kelompok-3/notesai.git cd notesai
  2. Setup API Key Buat file local.properties di root project:

GEMINI_API_KEY=your_gemini_api_key_here 3. Open di Android Studio Buka Android Studio File → Open → Pilih folder project Tunggu Gradle sync selesai 4. Run Aplikasi Pilih device/emulator Klik Run (▶️) atau Shift + F10 Aplikasi akan terinstall dan berjalan 📱 Panduan Penggunaan Quick Start Guide 1 Membuat Kategori Pertama Main Screen → Tap () → Pilih "Kategori Baru" → Isi nama kategori → Pilih warna → Save 2 Membuat Note Main Screen → Tap kategori → Tap () floating button → Isi judul & konten → Auto-saved ✓ 3 Menggunakan Rich Text Editor Buka note → Tap area teks → Muncul draggable toolbar → Pilih format (Bold/Italic/Heading/Bullet) → Type away! 4 Pin untuk Prioritas Long-press note → Tap Pin icon → Note akan muncul di urutan teratas 5 Chat dengan AI Drawer Menu → AI Assistant → Ketik pertanyaan → AI akan menjawab berdasarkan catatan Anda 6 Upload & Summarize Document AI Assistant → Tap 📎 Upload → Pilih file (PDF/TXT/DOCX) → AI otomatis generate summary → Tersimpan di chat history User Flow Lengkap 📖 Panduan detail dengan screenshot tersedia di Dokumentasi Bab III (Halaman 21-28)

⚠️ Batasan dan Catatan Keterbatasan Saat Ini AI Dependency

⚠️ Fitur AI memerlukan koneksi internet ⚠️ Menggunakan free tier Gemini API (rate limited) Catatan lokal tetap berfungsi offline Document Format

Support: PDF, TXT, DOCX Tidak support: XLS, PPT, Images Data Storage

💾 Data tersimpan lokal (DataStore) ⚠️ Tidak ada cloud backup (planned v2.0) Risiko data loss jika uninstall app Performance

Optimal untuk <1000 notes ⚠️ Search dapat melambat pada dataset besar 🔜 Indexing optimization planned Privasi & Keamanan Catatan disimpan 100% lokal ⚠️ Saat menggunakan AI, konten relevan dikirim ke Gemini API 🔐 API key tidak hardcoded (menggunakan BuildConfig) Tidak ada tracking atau analytics 🔮 Roadmap & Future Development Version 1.2.0 (Q2 2025) 🎯 Cloud Sync - Firebase/Supabase integration Backup & Restore - Export/import data Widget - Home screen quick note Reminder - Notification untuk note penting Templates - Pre-made note templates Version 1.3.0 (Q3 2025) 🚀 Collaboration - Share notes dengan user lain Voice Input - Speech-to-text untuk note Image Support - Attach images ke notes Tag System - Alternative categorization Advanced Search - Filter by date, tag, etc. Version 1.4.0 (Q4 2025) 💎 Multi-device Sync - Real-time sync Encryption - End-to-end encryption Premium AI - Upgrade ke Gemini Pro Offline AI - On-device AI model iOS Version - Cross-platform support 📄 Dokumentasi Tambahan File Dokumentasi 📖 Laporan Lengkap - Dokumentasi lengkap 34 halaman 🧪 Test Summary Report - Laporan pengujian detail 📋 Changelog - Riwayat perubahan versi API Documentation 🤖 Gemini API Docs 📚 Android Developers 📝 Kotlin Documentation Referensi Akademik Semua referensi dan kutipan tercantum di Daftar Pustaka halaman 33

🤝 Kontribusi & Support Cara Berkontribusi Fork repository ini Buat branch fitur (git checkout -b feature/AmazingFeature) Commit changes (git commit -m 'Add some AmazingFeature') Push ke branch (git push origin feature/AmazingFeature) Buat Pull Request Coding Standards Follow Kotlin coding conventions Write descriptive commit messages Add unit tests untuk fitur baru Update documentation Laporkan Bug Jika menemukan bug, silakan buat issue dengan:

📝 Deskripsi bug 📱 Device & Android version 🔄 Steps to reproduce 📸 Screenshot (jika ada) 🙏 Acknowledgments Special Thanks 🎓 Bapak Arif Rifai Dwiyanto, ST., MTI - Dosen pembimbing dan pengampu mata kuliah 🏫 Universitas Bhayangkara Jakarta Raya - Dukungan fasilitas 🤖 Claude AI (Anthropic) - AI assistant untuk pengembangan dan debugging 🎨 Material Design Team - Design system yang digunakan 📚 Android Developer Community - Dokumentasi dan best practices Tools & Services Android Studio - IDE terbaik untuk Android development Jetpack Compose - Modern UI toolkit Gemini API - AI capabilities PDFBox - PDF parsing library Git Lab UBHARA - Version control hosting 📞 Kontak Tim Pengembang Kelompok 1

📧 Email:

202310715297@mhs.ubharajaya.ac.id (Raihan Ariq Muzakki) 202310715051@mhs.ubharajaya.ac.id (Dendi Yogia Pratama) 202310715082@mhs.ubharajaya.ac.id (Fazri Abdurrahman) 🌐 Repository: NotesAI 🏫 Institusi: Universitas Bhayangkara Jakarta Raya

Made with ❤️ by Kelompok 1

Fakultas Ilmu Komputer - Program Studi Informatika Universitas Bhayangkara Jakarta Raya

2025

Search code... Description No description provided Readme 45 MiB Languages Kotlin 100% Powered by Gitea Version: 1.23.6 Page: 156ms Template: 4ms Licenses API