No description
  • Kotlin 97.3%
  • PowerShell 1.6%
  • Shell 1.1%
Find a file
2026-09-03 02:21:15 +02:00
app fix(budget): désactivation du clic sur la ligne entière en mode Split (seul le bouton Ajouter réagit) 2026-09-03 02:19:38 +02:00
docs docs(workflow): ajout de la capture d'écran et validation visuelle obligatoire sur device réel 2026-09-03 02:10:35 +02:00
scripts feat(m3e): configure staging and prod build variants with isolated package IDs and names 2026-08-27 00:16:55 +02:00
.gitignore feat(m3e): initial commit - spec v2 complete + UI fluidity + WiFi-ADB 2026-08-26 21:06:46 +02:00
build.gradle.kts feat(m3e): initial commit - spec v2 complete + UI fluidity + WiFi-ADB 2026-08-26 21:06:46 +02:00
gradle.properties fix(m3e): display full red bar on overspent categories and add smooth size/content animation to Redbox 2026-08-27 02:48:53 +02:00
README.md docs: clean up README, remove AI slop 2026-08-30 20:09:51 +02:00
settings.gradle.kts feat(m3e): initial commit - spec v2 complete + UI fluidity + WiFi-ADB 2026-08-26 21:06:46 +02:00

banner

m3e — Budget perso

App Android de budget zéro-based, type YNAB. Kotlin, Jetpack Compose, Material 3 Expressive.

Données locales en JSON, pas de cloud. Prévu pour sync homelab plus tard.

Prototype actif — cf. docs/SPEC.md pour le détail.

Ce que ça fait

  • Budget — navigation mensuelle, enveloppes par catégorie, barres de progression wavy M3.
  • Comptes — gestion des comptes bancaires avec aperçu en temps réel.
  • Mouvements — liste de transactions avec headers sticky par mois/jour, saisie dépense/revenu.

Ce qui manque

  • Transactions récurrentes, objectifs (cibles), gestion des dépassements.
  • Onglet Analyses (graphiques, patrimoine).
  • Multi-devises, import CSV, sync homelab, partage familial.

Stack

Kotlin 2.3 · Compose + M3 Expressive · Gradle KTS · minSdk 26 · targetSdk 36 · JDK 17

Persistance : fichier JSON local (files/budget.json), montants en centimes (Long).

Deux flavors : staging (Budget 🧪, sandbox) et prod (Budget).

Build

./scripts/dev.sh       # sync + build + APK

Format JSON (v3)

{
  "v": 3,
  "categories": [
    { "id": 4, "groupId": 1, "name": "Loyer",
      "target": { "type": "monthly", "cents": 85000 } }
  ],
  "months": { "2026-08": { "assignments": { "4": 85000 } } },
  "recurring": [
    { "id": 90, "accountId": 15, "payee": "Loyer", "categoryId": 4,
      "amountCents": -85000, "freq": "monthly", "interval": 1,
      "nextDate": "2026-09-01" }
  ]
}

Les champs absents sont tolérés au chargement (migration silencieuse).

Hébergement

Forgejo self-hosted : https://git.boby-cod.duckdns.org/alexis/demo_m3

Licence

Usage personnel. Redistribution soumise à accord de l'auteur.