Application de gestion financiere personnelle auto-hebergee (FastAPI + React + Capacitor)
- TypeScript 61.5%
- Python 35.4%
- HTML 1.2%
- CSS 0.6%
- Shell 0.4%
- Other 0.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| backend | ||
| docker | ||
| frontend | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .mcp.json | ||
| AI_DEV_LOG.md | ||
| CLAUDE.md | ||
| deploy.sh | ||
| docker-compose.yml | ||
| logo.png | ||
| README.md | ||
Kash
Application de gestion financiere personnelle auto-hebergee. Web + Android.
Stack
| Couche | Technologie |
|---|---|
| API | Python 3.12 + FastAPI |
| Base de donnees | PostgreSQL 16 |
| Frontend Web | React 18 (TypeScript, Tailwind CSS v4, Vite) |
| Mobile Android | Capacitor |
| Reverse proxy | Nginx (conteneurise) |
| Orchestration | Docker Compose |
| Auth | JWT + bcrypt |
Fonctionnalites
- Multi-livres de comptes (personnel, coloc, famille...)
- Transactions avec categories/sous-categories
- Recurrences (hebdomadaire, mensuel, trimestriel, annuel)
- Multi-utilisateurs avec RBAC (admin/user/guest)
- Mode hors-ligne (IndexedDB + sync queue)
- PIN code + authentification biometrique (Android)
- Dark mode
- Calendrier avec preview des recurrences
- Statistiques (camembert, baremes, tendances)
- Export CSV
- APK Android via Capacitor
Demarrage rapide (local)
# 1. Cloner
git clone git@git.noahroy.fr:Noah/kash.git
cd kash
# 2. Configurer les variables d'environnement
cp backend/.env.example backend/.env
# Editer backend/.env avec vos secrets
# 3. Lancer
docker compose up -d
# 4. Creer le premier utilisateur admin
curl -X POST http://localhost:8000/api/auth/register \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"VotreMotDePasse","role":"admin"}'
L'appli est accessible sur http://localhost:3000.
Deploiement production
# 1. Transferer l'archive sur le serveur
scp kash-latest.tar.gz serveur:/opt/
# 2. Sur le serveur
cd /opt && mkdir kash && cd kash
tar -xzf ../kash-latest.tar.gz
# Creer backend/.env avec les secrets de production
docker compose up -d --build
# 3. Configurer le reverse proxy (NPM, Caddy, Traefik...)
# Frontend : proxy_pass → http://127.0.0.1:3000
# API : proxy_pass → http://127.0.0.1:8000 (prefix /api)
Build Android
cd frontend
npm install
npm run build
npx cap sync
cd android
./gradlew assembleDebug # APK debug
./gradlew bundleRelease # AAB release (Google Play)
Structure du projet
kash/
├── backend/ # API FastAPI
│ ├── models/ # Modeles SQLAlchemy
│ ├── routers/ # Routes API
│ ├── schemas/ # Schemas Pydantic
│ └── Dockerfile
├── frontend/ # React + Capacitor
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── hooks/
│ │ ├── services/
│ │ └── store/
│ └── android/ # Projet Android Capacitor
├── docker/ # Scripts init PostgreSQL
├── docker-compose.yml
└── deploy.sh # Script de deploiement serveur
Variables d'environnement requises
POSTGRES_USER=noahbudget
POSTGRES_PASSWORD=<mot_de_passe_securise>
POSTGRES_DB=noahbudget
JWT_SECRET=<secret_jwt>
JWT_ALGORITHM=HS256
JWT_EXPIRE_MINUTES=30
BCRYPT_ROUNDS=12
ALLOW_ADMIN_REGISTRATION=false
CORS_ORIGINS=https://votre-domaine.fr,capacitor://localhost
DISABLE_DOCS=true
Licence
MIT