{"id":50953711,"url":"https://github.com/abhijithwrrr/auraspend","last_synced_at":"2026-06-18T04:30:47.247Z","repository":{"id":363061488,"uuid":"1195078150","full_name":"abhijithwrrr/auraspend","owner":"abhijithwrrr","description":"World-class expense manager for Android with bank SMS classification, Material 3 UI, and budget tracking","archived":false,"fork":false,"pushed_at":"2026-06-07T09:04:41.000Z","size":132,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-07T09:22:57.327Z","etag":null,"topics":["android","expense-manager","expense-tracker","jetpack-compose","kotlin","material3","material3-android","mvi","opensource","room"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abhijithwrrr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"abhijithwrrr","patreon":null,"open_collective":null,"ko_fi":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2026-03-29T07:25:40.000Z","updated_at":"2026-06-07T09:04:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/abhijithwrrr/auraspend","commit_stats":null,"previous_names":["abhijithwrrr/auraspend"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/abhijithwrrr/auraspend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhijithwrrr%2Fauraspend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhijithwrrr%2Fauraspend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhijithwrrr%2Fauraspend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhijithwrrr%2Fauraspend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abhijithwrrr","download_url":"https://codeload.github.com/abhijithwrrr/auraspend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhijithwrrr%2Fauraspend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34476727,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-18T02:00:06.871Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","expense-manager","expense-tracker","jetpack-compose","kotlin","material3","material3-android","mvi","opensource","room"],"created_at":"2026-06-18T04:30:46.298Z","updated_at":"2026-06-18T04:30:47.242Z","avatar_url":"https://github.com/abhijithwrrr.png","language":"Kotlin","funding_links":["https://github.com/sponsors/abhijithwrrr"],"categories":[],"sub_categories":[],"readme":"# AuraSpend\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![Min SDK](https://img.shields.io/badge/minSdk-30-green)](app/build.gradle.kts)\n[![Target SDK](https://img.shields.io/badge/targetSdk-36-green)](app/build.gradle.kts)\n[![CI](https://github.com/abhijithwrrr/auraspend/actions/workflows/ci.yml/badge.svg)](https://github.com/abhijithwrrr/auraspend/actions/workflows/ci.yml)\n\nA world-class expense manager for Android 16 with bank message classification, Material 3 UI, budget tracking, and Google Drive backup.\n\nMade with ❤️ by AW Builds\n\n---\n\n## Features\n\n| Category | Details | Premium |\n|----------|---------|---------|\n| **Smart Classification** | Paste bank SMS or read from inbox — auto-categorizes via regex (HDFC, ICICI, SBI, Axis, Kotak \u0026 more) | Free |\n| **Dashboard** | Balance card, weekly bar chart, budget progress, subscription summary, category breakdown | Free |\n| **Transaction List** | Search, date groups, swipe-to-delete, expense/income filters | Free |\n| **Budgets** | Per-category monthly/weekly/yearly spending limits with progress bars | Free |\n| **Recurring Subscriptions** | Track monthly costs, next billing dates | Free |\n| **CSV Export/Import** | Backup and restore your transactions | Free |\n| **Dark \u0026 AMOLED Theme** | Light, Dark, and true-black AMOLED modes | 🔒 Premium |\n| **Advanced Analytics** | Canvas pie charts, category breakdowns, merchant insights | 🔒 Premium |\n| **Google Drive Backup** | Cloud sync and restore from onboarding | 🔒 Premium |\n\n## Build Flavors\n\n| Flavor | Command | Play Billing | Use Case |\n|--------|---------|--------------|----------|\n| `free` | `./gradlew assembleFreeDebug` | Stub (all premium unlocked) | Development, self-build, F-Droid |\n| `play` | `./gradlew assemblePlayDebug` | Real IAP verification | Play Store release |\n\nThe `free` flavor has all premium features unlocked at no cost. Only the Play Store build enforces the paywall.\n\n## Tech Stack\n\n- **Language**: Kotlin\n- **UI**: Jetpack Compose + Material 3\n- **Architecture**: Clean Architecture + MVI (Unidirectional data flow)\n- **DI**: Manual (Application class) — no Hilt/Koin\n- **Local Storage**: Room Database\n- **Charts**: Canvas-based (no external charting library)\n- **Cloud**: Google Drive API v3 (premium)\n- **Target SDK**: Android 16 (API 36)\n- **Min SDK**: Android 13 (API 30)\n\n## Project Structure\n\n```\napp/src/\n├── main/java/com/awbuilds/auraspend/\n│   ├── data/\n│   │   ├── classification/   # Bank SMS parser + classifier\n│   │   ├── local/            # Room DB, DAOs, entities, CSV manager\n│   │   └── remote/           # Google Drive sync\n│   ├── domain/\n│   │   ├── model/            # Core domain models\n│   │   ├── repository/       # Repository interface\n│   │   └── usecase/          # Business logic use cases\n│   ├── ui/\n│   │   ├── analytics/        # Pie charts, spending insights\n│   │   ├── budget/           # Per-category budget tracking\n│   │   ├── category/         # Category management\n│   │   ├── classification/   # SMS classification screen\n│   │   ├── core/             # Shared scaffold, navigation bar\n│   │   ├── home/             # Dashboard with charts\n│   │   ├── navigation/       # NavGraph, route definitions\n│   │   ├── onboarding/       # First-launch wizard\n│   │   ├── premium/          # Premium feature gate\n│   │   ├── recurring/        # Subscription management\n│   │   ├── settings/         # Settings + premium upgrade\n│   │   ├── splash/           # Animated splash screen\n│   │   ├── theme/            # M3 colors, light/dark/AMOLED\n│   │   └── transaction/      # List + add/edit screens\n│   └── AuraSpendApp.kt       # Application class (DI)\n├── free/                     # Free flavor sources (BillingManager stub)\n└── play/                     # Play flavor sources (real IAP)\n```\n\n## Getting Started\n\n### Prerequisites\n\n- Android Studio Koala or newer\n- JDK 17+\n- Android SDK 36\n\n### Setup\n\n```bash\ngit clone https://github.com/abhijithwrrr/auraspend.git\ncd auraspend\ncp secrets.properties.example secrets.properties\n```\n\nEdit `secrets.properties` with:\n- **WEB_CLIENT_ID**: Google OAuth 2.0 client ID for Drive sync\n- **DRIVE_API_KEY**: Google Drive API key (optional)\n\nBuild and run:\n\n```bash\n./gradlew assembleFreeDebug\n```\n\n**First launch**: The app auto-seeds 12 default categories and shows the onboarding screen.\n\n## Preview\n\n| Screen | Description |\n|--------|-------------|\n| Dashboard | Balance card, weekly bar chart, budget progress, subscription summary, category breakdown |\n| Classification | Paste bank SMS or read from inbox — auto-categorizes |\n| Transactions | Search, date-groups, swipe-to-delete, income/expense filters |\n| Analytics | Canvas pie chart, category breakdown with percentages, top merchants |\n| Settings | Theme selector, CSV export/import, manage categories/budgets/subscriptions |\n| Onboarding | 3-page carousel with Lottie animations, Google Drive restore option |\n\n## Testing\n\n```bash\n# Run unit tests\n./gradlew test\n\n# Run instrumented tests (requires emulator/device)\n./gradlew connectedAndroidTest\n```\n\n## Contributing\n\nContributions are welcome! See [CONTRIBUTING.md](.github/CONTRIBUTING.md) for:\n\n- Build flavor system explained\n- Code style guide\n- Pull request process\n- Issue reporting guidelines\n\n**First-time contributors**: Look for issues labeled `good first issue` or `help wanted`.\n\n**Release process**: Every merge to `main` updates a draft release via [Release Drafter](.github/release-drafter.yml), grouping PRs by label. When ready to ship, publish the draft and tag it `vX.Y.Z` — the version is auto-bumped based on the highest priority label (`breaking` → major, `enhancement`/`feature` → minor, `bug`/`fix` → patch).\n\n## Security\n\nSee [SECURITY.md](.github/SECURITY.md) for reporting vulnerabilities.\n\n## License\n\n```\nCopyright 2026 Abhijith Warrier\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhijithwrrr%2Fauraspend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhijithwrrr%2Fauraspend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhijithwrrr%2Fauraspend/lists"}