Application mobile de gestion de budget personnel : interface épurée, données stockées localement sur l’appareil (SQLite), sans compte ni serveur.
- Accueil : solde du mois (revenus, dépenses), opérations récentes, ajout rapide
- Historique : liste du mois, groupée par jour
- Catégories : revenus / dépenses, création, renommage, suppression (bloquée si des opérations y sont liées)
- Réglages : devise d’affichage (EUR, XOF, USD, etc.) — les montants restent enregistrés en centimes dans la base
- Expo (SDK 55) + Expo Router
- React Native + TypeScript
- expo-sqlite (iOS / Android uniquement)
- @react-native-async-storage/async-storage pour la devise choisie
Web : le projet peut se lancer dans un navigateur, mais SQLite n’y est pas utilisé (pas de persistance locale comme sur mobile). Pour tester la saisie et la base, utilisez un simulateur ou un appareil avec Expo Go.
- Node.js (LTS recommandé, v18+ ou v20+)
- npm (fourni avec Node)
- Pour iOS : Xcode et simulateur (macOS), ou iPhone avec l’app Expo Go
- Pour Android : Android Studio / émulateur, ou téléphone avec Expo Go
git clone <url-du-depot> lucky_finance
cd lucky_finance
npm installnpm startCela démarre le serveur Metro (Expo). Ensuite :
i— ouvrir le simulateur iOSa— ouvrir l’émulateur Androidw— ouvrir dans le navigateur (aperçu limité côté données)
Vous pouvez aussi utiliser directement :
npm run ios
npm run android
npm run webÀ éviter : npm expo start — ce n’est pas une commande npm valide. Préférez npm start ou npx expo start.
| Dossier / fichier | Rôle |
|---|---|
app/ |
Écrans Expo Router (onglets, modal d’ajout) |
context/BudgetContext.tsx |
État global, appels base + réglages |
lib/db/ |
SQLite : schéma, seed, entrées .native / .web |
lib/repositories/ |
Accès données (catégories, transactions) |
constants/theme.ts |
Couleurs et espacements (UI minimaliste) |
npx tsc --noEmitProjet à usage personnel / apprentissage ; les données restent sur l’appareil (pas de synchronisation cloud dans cette version).