# 💰 WalletTracker Application mobile de gestion de budget dĂ©veloppĂ©e avec React Native et Firebase. ## đŸ“± FonctionnalitĂ©s - **Authentification** : Inscription et connexion sĂ©curisĂ©es avec Firebase Auth - **Gestion des transactions** : Ajout et suivi des dĂ©penses et revenus par catĂ©gorie - **Abonnements rĂ©currents** : Gestion des abonnements avec rappels automatiques - **Tableau de bord** : Vue d'ensemble mensuelle du budget avec statistiques - **Analyses visuelles** : Graphiques et statistiques dĂ©taillĂ©es par catĂ©gorie - **Synchronisation temps rĂ©el** : Partage des donnĂ©es entre plusieurs utilisateurs - **Multi-plateforme** : Fonctionne sur iOS et Android ## đŸ› ïž Stack Technique - **Frontend** : React Native avec Expo - **Langage** : TypeScript - **Backend** : Firebase (Authentication, Firestore, Storage) - **Navigation** : React Navigation (Stack & Bottom Tabs) - **Stockage local** : AsyncStorage - **Graphiques** : react-native-chart-kit - **Gestion d'Ă©tat** : React Hooks ## 📩 Installation ### PrĂ©requis - Node.js (v16 ou supĂ©rieur) - npm ou yarn - Expo CLI - Compte Firebase ### Étapes d'installation 1. **Cloner le projet** ```bash git clone cd WalletTracker ``` 2. **Installer les dĂ©pendances** ```bash npm install ``` 3. **Configurer Firebase** a. CrĂ©ez un projet sur [Firebase Console](https://console.firebase.google.com/) b. Activez les services suivants : - Authentication (Email/Password) - Firestore Database - Storage c. Copiez vos identifiants Firebase dans `src/config/firebase.ts` : ```typescript const firebaseConfig = { apiKey: "VOTRE_API_KEY", authDomain: "VOTRE_AUTH_DOMAIN", projectId: "VOTRE_PROJECT_ID", storageBucket: "VOTRE_STORAGE_BUCKET", messagingSenderId: "VOTRE_MESSAGING_SENDER_ID", appId: "VOTRE_APP_ID" }; ``` 4. **Configurer les rĂšgles Firestore** Copiez les rĂšgles du fichier `firestore.rules` dans la console Firebase 5. **Lancer l'application** ```bash npm start ``` Puis scannez le QR code avec l'application Expo Go sur votre tĂ©lĂ©phone ## đŸ“± Utilisation ### DĂ©marrage rapide 1. **CrĂ©er un compte** : Utilisez l'Ă©cran d'inscription avec votre email et mot de passe 2. **Ajouter une transaction** : Cliquez sur le bouton "+" pour ajouter une dĂ©pense ou un revenu 3. **GĂ©rer les abonnements** : AccĂ©dez Ă  l'onglet "Abonnements" pour suivre vos dĂ©penses rĂ©currentes 4. **Consulter les analyses** : Visualisez vos dĂ©penses par catĂ©gorie dans l'onglet "Analyses" ### CatĂ©gories par dĂ©faut **DĂ©penses** : - Courses 🛒 - Logement 🏠 - Transport 🚗 - Loisirs 🎼 - Restaurant đŸœïž - SantĂ© 💊 - VĂȘtements 👕 - Éducation 📚 - Abonnements đŸ“± - Autre 📩 **Revenus** : - Salaire 💰 - Freelance đŸ’Œ - Investissement 📈 - Cadeau 🎁 - Autre đŸ’” ## đŸ—‚ïž Structure du projet ``` WalletTracker/ ├── src/ │ ├── components/ # Composants rĂ©utilisables │ │ ├── Button.tsx │ │ ├── InputText.tsx │ │ ├── TransactionCard.tsx │ │ └── SubscriptionCard.tsx │ ├── config/ # Configuration Firebase │ │ └── firebase.ts │ ├── hooks/ # Hooks personnalisĂ©s │ │ └── useAuth.ts │ ├── navigation/ # Configuration de la navigation │ │ └── AppNavigator.tsx │ ├── screens/ # Écrans de l'application │ │ ├── LoginScreen.tsx │ │ ├── SignupScreen.tsx │ │ ├── DashboardScreen.tsx │ │ ├── TransactionScreen.tsx │ │ ├── SubscriptionScreen.tsx │ │ └── AnalysisScreen.tsx │ ├── services/ # Services Firebase │ │ ├── authService.ts │ │ ├── transactionService.ts │ │ ├── subscriptionService.ts │ │ └── categoryService.ts │ ├── types/ # DĂ©finitions TypeScript │ │ └── index.ts │ └── utils/ # Utilitaires ├── App.tsx # Point d'entrĂ©e ├── package.json └── README.md ``` ## 🔐 SĂ©curitĂ© - Les mots de passe sont gĂ©rĂ©s par Firebase Authentication - Les rĂšgles Firestore protĂšgent les donnĂ©es de chaque utilisateur - Les donnĂ©es sont synchronisĂ©es uniquement pour les utilisateurs autorisĂ©s - Stockage sĂ©curisĂ© des tokens avec AsyncStorage ## 🚀 DĂ©ploiement ### Build pour production **iOS** : ```bash eas build --platform ios ``` **Android** : ```bash eas build --platform android ``` ## 📝 FonctionnalitĂ©s futures - [ ] Notifications push pour les rappels d'abonnements - [ ] Partage multi-utilisateurs avancĂ© - [ ] Export des donnĂ©es en CSV/PDF - [ ] Objectifs budgĂ©taires mensuels - [ ] Mode sombre - [ ] Support multilingue - [ ] Reconnaissance de tickets avec OCR - [ ] Widgets pour l'Ă©cran d'accueil ## đŸ€ Contribution Les contributions sont les bienvenues ! N'hĂ©sitez pas Ă  ouvrir une issue ou une pull request. ## 📄 Licence Ce projet est sous licence MIT. ## đŸ‘šâ€đŸ’» Auteur DĂ©veloppĂ© avec ❀ pour une meilleure gestion de budget. ## 📞 Support Pour toute question ou problĂšme, veuillez ouvrir une issue sur GitHub.