From 7a6716118ab31c98feb4847814bef64dd3f55633 Mon Sep 17 00:00:00 2001 From: kolo Date: Fri, 20 Mar 2026 21:28:08 +0300 Subject: [PATCH] update --- README.md | 85 +++++++++++++++++++++++++++++++----- android/app/build.gradle.kts | 28 ++++++++---- 2 files changed, 94 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 10e2b88..c9cbccd 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,80 @@ -# casha +![preview](https://i.ibb.co/6Rn265Br/free-icon-gold-coin-17307730.png) -A new Flutter project. +**Casha** is a clean and minimal personal finance tracker for Android. It provides an intuitive way to manage your income and expenses with real-time balance tracking, budget control, and multi-currency support. -## Getting Started +Casha is the **"Simplest"**, **"Most Elegant"**, and **"Most Focused"** way to take control of your personal finances on Android. -This project is a starting point for a Flutter application. +--- -A few resources to get you started if this is your first Flutter project: +## ✨ Features -- [Learn Flutter](https://docs.flutter.dev/get-started/learn-flutter) -- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) -- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources) +- **Balance Card** — gyroscope-powered 3D tilt animation with live currency conversions (USD, EUR, BYN, RUB) +- **Income & Expense tracking** — categorized transactions with icons, notes, and date +- **Monthly Budget** — visual progress bar with over-budget warning +- **Search & Filter** — instant search through transactions with All / Income / Expense filters +- **Biometric Lock** — optional fingerprint protection on app launch +- **Dark & Light theme** — automatic system theme support +- **Multi-currency** — choose your primary currency in settings +- **Amount formatting** — compact (1.2K) or full number display -For help getting started with Flutter development, view the -[online documentation](https://docs.flutter.dev/), which offers tutorials, -samples, guidance on mobile development, and a full API reference. +## 📱 Screenshots + +> _Add your screenshots here_ + +## 🚀 Getting Started + +### Prerequisites + +- Flutter `^3.11.1` +- Android SDK (min API 21) +- JDK 17+ + +### Installation + +Clone the repository: + +```console +$ git clone https://github.com/koloideal/casha.git +$ cd casha +``` + +Install dependencies: + +```console +$ flutter pub get +``` + +Run in debug mode: + +```console +$ flutter run +``` + +### Build release APK + +```console +$ flutter build apk --release +``` + +### Build for Google Play + +```console +$ flutter build appbundle --release +``` + +## 🛠 Tech Stack + +| Layer | Technology | +|-------|-----------| +| Framework | Flutter 3 | +| State management | Riverpod | +| Navigation | go_router | +| Charts | fl_chart | +| Storage | shared_preferences | +| Fonts | Google Fonts | +| Sensors | sensors_plus | +| Auth | local_auth | + +--- + +MIT 2025 kolo | made by [kolo](https://t.me/kolo_id) diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 5aca107..075035a 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -1,12 +1,20 @@ +import java.util.Properties +import java.io.FileInputStream + plugins { id("com.android.application") id("kotlin-android") - // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id("dev.flutter.flutter-gradle-plugin") } +val keyProperties = Properties() +val keyPropertiesFile = rootProject.file("key.properties") +if (keyPropertiesFile.exists()) { + keyProperties.load(FileInputStream(keyPropertiesFile)) +} + android { - namespace = "com.example.casha" + namespace = "com.kolo.casha" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion @@ -20,21 +28,25 @@ android { } defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "com.kolo.casha" - // You can update the following values to match your application needs. - // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName } + signingConfigs { + create("release") { + keyAlias = keyProperties["keyAlias"] as String + keyPassword = keyProperties["keyPassword"] as String + storeFile = file(keyProperties["storeFile"] as String) + storePassword = keyProperties["storePassword"] as String + } + } + buildTypes { release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.getByName("debug") + signingConfig = signingConfigs.getByName("release") } } }