Skip to content
Ganesh75-webPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

QuickNotes

A lightweight, offline-first Android note-taking app built with Kotlin, Jetpack Compose, and Material 3. Organize notes into hierarchical sections, rate them 1-5 stars, and back up your data as JSON.

Features

  • Hierarchical sections — organize notes in nested sections (folders within folders)
  • Card-based note display — shows a text preview with 1-5 star ratings
  • One-tap copy — copy note content to clipboard with visual feedback
  • Sort by rating or date — toggle between chronological and rating-based sorting
  • Soft delete with undo — delete notes with a chance to undo before permanent removal
  • Backup & restore — export/import all data as unencrypted JSON via Android's file picker
  • Material 3 dark theme — consistent design with dynamic color support

Technology Stack

Layer Technology
Language Kotlin
UI Jetpack Compose + Material 3
Architecture MVVM
Database Room (SQLite)
Navigation Navigation Compose
Async Kotlin Coroutines + Flow

Requirements

  • Android Studio Hedgehog (2023.1.1) or newer
  • Android SDK API 24+ (Android 7.0)
  • JDK 17

Build & Run

  1. Clone or download the project
  2. Open in Android Studio: File → Open → select project directory
  3. Wait for Gradle sync to complete
  4. Connect a device or start an emulator
  5. Click Run (Shift+F10)

Build a release APK

./gradlew assembleRelease

Output: app/build/outputs/apk/release/app-release-unsigned.apk

Run tests

./gradlew test

Project Structure

app/src/main/java/com/example/quicknotes/
├── backup/          # JSON export/import logic
├── data/            # Room entities, DAOs, database
├── repository/      # Data repositories
├── ui/
│   ├── components/  # Reusable UI components
│   ├── screens/     # Screen composables
│   └── theme/       # Material 3 theme, colors, typography
├── viewmodel/       # ViewModels
└── MainActivity.kt  # Single-activity entry point

Database Schema

Version: 6 (Room)

Entity Key Fields
Section id, title, parentSectionId (FK, self-referencing), createdAt, updatedAt
Note id, content, rating (1-5), sectionId (FK), isDeleted, createdAt, updatedAt

Migration 5→6 adds the isDeleted column for soft delete. Versions 1-4 use destructive fallback.

Backup Format

Backups are JSON files with schema version 1. See BACKUP_RESTORE.md for full format documentation, failure modes, and verification steps.

Privacy warning: Backup files are unencrypted plaintext JSON. Treat them as sensitive data.

Documentation

License

MIT License. See LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages