Initial commit: WalletTracker app with Firebase integration

- Setup Expo project with TypeScript
- Implement authentication (Login/Signup/Logout)
- Create Dashboard, Transactions, Subscriptions, and Analysis screens
- Add Firebase services (Auth, Firestore, Storage)
- Implement real-time synchronization
- Add charts and analytics
- Create reusable components (Button, InputText, TransactionCard, SubscriptionCard)
- Configure React Navigation with bottom tabs
- Add Firestore security rules
- Create comprehensive documentation (README, FIREBASE_SETUP, TESTING)
This commit is contained in:
2025-10-23 14:36:36 +02:00
parent c10b5ae013
commit 8bde3d4f21
26 changed files with 5622 additions and 17 deletions

191
README.md Normal file
View File

@@ -0,0 +1,191 @@
# 💰 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 <votre-repo>
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.