# 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
- Clone Repository git clone https://git.lab.ubharajaya.ac.id/kelompok-3/notesai.git cd notesai
- 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