Une application mobile moderne et intuitive pour partager les dépenses facilement avec vos amis et famille.
- ✅ Créez des groupes pour organiser vos dépenses
- ✅ Enregistrez les dépenses avec catégories
- ✅ Support de multiples devises (EUR, USD, GBP, CHF, JPY, CAD)
- ✅ Dépenses récurrentes (quotidiennes, hebdomadaires, mensuelles, annuelles)
- ✅ Créez des groupes avec plusieurs participants
- ✅ Système d'invitation complet:
- Codes d'invitation (8 caractères alphanumériques)
- Deep links partageables via WhatsApp, SMS, email
- Options configurables (expiration, limite d'utilisations)
- Codes réutilisables ou uniques
- ✅ Voir les balances entre les membres
- ✅ Historique complet des transactions
- ✅ Marquez automatiquement les dépenses comme payées
- ✅ Calcul intelligent des débits/crédits
- ✅ Historique des règlements
- ✅ Le système calcule automatiquement qui doit rembourser qui
- ✅ Voir les dépenses par catégorie
- ✅ Filtrer par période (jour, semaine, mois, année)
- ✅ Graphiques intuitifs
- ✅ Statistiques globales des groupes
- ✅ Sauvegarde automatique des données
- ✅ Synchronisation Firebase
- ✅ Architecture offline-first
- ✅ Détection automatique de la connexion
- ✅ Sync on-demand
- ✅ Design ultra-moderne avec Dark Mode
- ✅ Interface épurée et intuitive
- ✅ Material Design Icons (0 emoji texte)
- ✅ Animations fluides
- ✅ Responsive sur tous les appareils
- ✅ Exporter les dépenses en CSV
- ✅ Partager les codes d'invitation
- ✅ Share API intégrée
- Node.js 16+
- npm ou yarn
- Expo CLI (optionnel):
npm install -g expo-cli
# Cloner le repo
git clone <repository-url>
cd Kount
# Installer les dépendances
npm install
# Démarrer l'app
npm start
# Sur iOS
npm run ios
# Sur Android
npm run android
# Sur Web
npm run web- Créer un projet Firebase: https://console.firebase.google.com
- Copier
.env.exampleen.env.local - Remplir les credentials Firebase
- La synchronisation cloud fonctionnera automatiquement
Pour les détails, voir FIREBASE_SETUP.md
- Appuyez sur le bouton "+" sur l'écran d'accueil
- Entrez le nom du groupe, la description et la devise
- Ajoutez les membres initiaux
- Le groupe est créé!
-
Ouvrez le groupe
-
Appuyez sur "Inviter des personnes"
-
Onglet "Partager":
- Créez un code d'invitation (avec options optionnelles)
- Partagez le code ou le lien
- Configurez l'expiration/limite d'utilisations
-
Onglet "Rejoindre":
- Entrez le code reçu
- Entrez votre nom
- Rejoignez le groupe!
- Ouvrez un groupe
- Appuyez sur "Dépenses"
- Appuyez sur le bouton "+" ou l'icône quick-add
- Entrez:
- Description
- Montant
- Qui a payé
- Qui participe (et combien)
- Catégorie
- Date
- Confirmer
- Ouvrez un groupe
- Allez à l'onglet "Balances"
- Voyez qui doit de l'argent à qui
- Les balances se mettent à jour automatiquement
- Ouvrez un groupe
- Allez à l'onglet "Règlement"
- Appuyez sur le règlement à confirmer
- Confirmez la transaction
- L'historique est mis à jour
- Ouvrez un groupe
- Appuyez sur "Exporter en CSV"
- Les données seront partagées (email, messages, etc.)
- Framework: React Native + Expo SDK 55
- Language: TypeScript
- State Management: Zustand
- Storage: AsyncStorage (local) + Firebase Firestore (cloud)
- Navigation: Expo Router (file-based routing)
- UI: Custom Design System avec Material Design Icons
- Date: date-fns
Kount/
├── app/ # Screens (Expo Router)
│ ├── (tabs)/ # Navigation tabs
│ │ ├── index.tsx # Home (Groupes)
│ │ ├── activity.tsx # Activity feed
│ │ └── settings.tsx # Settings
│ ├── group/ # Group screens
│ │ ├── [id].tsx # Group detail
│ │ └── create.tsx # Create group
│ ├── expense/ # Expense screens
│ └── member/ # Member screens
├── components/ # React components
│ ├── ui/ # Reusable UI components
│ ├── group/ # Group-specific components
│ └── InviteModal.tsx # Invitation system
├── lib/ # Utilities & logic
│ ├── store.ts # Zustand store
│ ├── types.ts # TypeScript interfaces
│ ├── firebase.ts # Firebase config
│ ├── syncService.ts # Cloud sync
│ ├── inviteUtils.ts # Invitation utilities
│ ├── useTheme.ts # Theme system
│ └── utils.ts # Helper functions
├── assets/ # Images, fonts
└── package.json # Dependencies
- Primary:
#6366F1(Indigo) - Success:
#10B981(Emerald) - Error:
#EF4444(Red) - Background:
#0F172A(Dark Navy) - Surface:
#1E293B(Light Navy)
xs: 4px,sm: 8px,md: 16px,lg: 24px,xl: 32px
sm: 8px,md: 12px,lg: 16px,xl: 24px
- Material Design Icons via
@expo/vector-icons - 0 emoji texte pour meilleure compatibilité
- Liste complète des icônes
- ✅ Données stockées localement en premier
- ✅ Firebase Firestore avec règles de sécurité
- ✅ Authentification optionnelle pour cloud sync
- ✅ Pas de passwords stockés (auth Firebase)
- ✅ Codes d'invitation avec expiration
- ✅ iOS 13+
- ✅ Android 9+
- ✅ Web (via Expo Web)
- ✅ Dark Mode support sur tous les appareils
- Authentification (Google, Apple, Email)
- Notification push
- QR Code pour invitations
- Budget et alertes
- Export PDF
- Multi-devise conversion
- Messages de groupe
- Analytics avancées
# Expo logs
npm start
# Puis press 'j' pour ouvrir le debuggerCréer .env.local pour les credentials Firebase:
FIREBASE_API_KEY=xxx
FIREBASE_AUTH_DOMAIN=xxx
FIREBASE_PROJECT_ID=xxx
...
Les icônes ne s'affichent pas?
- Redémarrer l'app: Press 'r' dans le terminal Expo
- Vider cache:
npm start -- --clear
La sync ne fonctionne pas?
- Vérifier
.env.locala les bonnes credentials - Vérifier la connexion internet
Les contributions sont bienvenues! Pour contribuer:
- Fork le repository
- Créer une branche (
git checkout -b feature/amazing-feature) - Commit les changements (
git commit -m 'Add amazing feature') - Push la branche (
git push origin feature/amazing-feature) - Ouvrir une Pull Request
MIT - Voir LICENSE pour les détails
Kount v1.0.0 - Built with ❤️ using React Native + Expo
Besoin d'aide?
- Consulter la documentation
- Créer une issue sur GitHub
- Contacter via email
Vous avez trouvé un bug?
- Créer une issue avec:
- Description du bug
- Étapes pour reproduire
- Logs d'erreur
- Version de l'app
- Appareil/OS
Suggérer une fonctionnalité?
- Créer une discussion GitHub
- Décrire le cas d'usage
- Proposer une implémentation (optionnel)
Made with 💰 for sharing expenses 👫👬👭