mirror of
https://github.com/koloideal/Casha.git
synced 2026-06-10 10:25:28 +03:00
update
This commit is contained in:
@@ -1,17 +1,80 @@
|
|||||||
# casha
|

|
||||||
|
|
||||||
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)
|
- **Balance Card** — gyroscope-powered 3D tilt animation with live currency conversions (USD, EUR, BYN, RUB)
|
||||||
- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
|
- **Income & Expense tracking** — categorized transactions with icons, notes, and date
|
||||||
- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources)
|
- **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
|
## 📱 Screenshots
|
||||||
[online documentation](https://docs.flutter.dev/), which offers tutorials,
|
|
||||||
samples, guidance on mobile development, and a full API reference.
|
> _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)
|
||||||
|
|||||||
@@ -1,12 +1,20 @@
|
|||||||
|
import java.util.Properties
|
||||||
|
import java.io.FileInputStream
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("com.android.application")
|
id("com.android.application")
|
||||||
id("kotlin-android")
|
id("kotlin-android")
|
||||||
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
|
|
||||||
id("dev.flutter.flutter-gradle-plugin")
|
id("dev.flutter.flutter-gradle-plugin")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val keyProperties = Properties()
|
||||||
|
val keyPropertiesFile = rootProject.file("key.properties")
|
||||||
|
if (keyPropertiesFile.exists()) {
|
||||||
|
keyProperties.load(FileInputStream(keyPropertiesFile))
|
||||||
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "com.example.casha"
|
namespace = "com.kolo.casha"
|
||||||
compileSdk = flutter.compileSdkVersion
|
compileSdk = flutter.compileSdkVersion
|
||||||
ndkVersion = flutter.ndkVersion
|
ndkVersion = flutter.ndkVersion
|
||||||
|
|
||||||
@@ -20,21 +28,25 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
|
||||||
applicationId = "com.kolo.casha"
|
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
|
minSdk = flutter.minSdkVersion
|
||||||
targetSdk = flutter.targetSdkVersion
|
targetSdk = flutter.targetSdkVersion
|
||||||
versionCode = flutter.versionCode
|
versionCode = flutter.versionCode
|
||||||
versionName = flutter.versionName
|
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 {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
// TODO: Add your own signing config for the release build.
|
signingConfig = signingConfigs.getByName("release")
|
||||||
// Signing with the debug keys for now, so `flutter run --release` works.
|
|
||||||
signingConfig = signingConfigs.getByName("debug")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user