Skip to content

Repository files navigation

💰 Kount

Une application mobile moderne et intuitive pour partager les dépenses facilement avec vos amis et famille.

🎯 Caractéristiques Principales

💵 Gestion des Dépenses

  • ✅ 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)

👥 Gestion des Groupes

  • ✅ 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

💳 Règlement des Dépenses

  • ✅ 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

📊 Statistiques

  • ✅ Voir les dépenses par catégorie
  • ✅ Filtrer par période (jour, semaine, mois, année)
  • ✅ Graphiques intuitifs
  • ✅ Statistiques globales des groupes

🔄 Synchronisation Cloud

  • ✅ Sauvegarde automatique des données
  • ✅ Synchronisation Firebase
  • ✅ Architecture offline-first
  • ✅ Détection automatique de la connexion
  • ✅ Sync on-demand

🎨 Design & UX

  • ✅ Design ultra-moderne avec Dark Mode
  • ✅ Interface épurée et intuitive
  • ✅ Material Design Icons (0 emoji texte)
  • ✅ Animations fluides
  • ✅ Responsive sur tous les appareils

📱 Export & Partage

  • ✅ Exporter les dépenses en CSV
  • ✅ Partager les codes d'invitation
  • ✅ Share API intégrée

🚀 Démarrage Rapide

Prérequis

  • Node.js 16+
  • npm ou yarn
  • Expo CLI (optionnel): npm install -g expo-cli

Installation

# 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

Configuration Firebase (Optionnel pour Cloud Sync)

  1. Créer un projet Firebase: https://console.firebase.google.com
  2. Copier .env.example en .env.local
  3. Remplir les credentials Firebase
  4. La synchronisation cloud fonctionnera automatiquement

Pour les détails, voir FIREBASE_SETUP.md

📖 Guide d'Utilisation

Créer un Groupe

  1. Appuyez sur le bouton "+" sur l'écran d'accueil
  2. Entrez le nom du groupe, la description et la devise
  3. Ajoutez les membres initiaux
  4. Le groupe est créé!

Inviter des Personnes

  1. Ouvrez le groupe

  2. Appuyez sur "Inviter des personnes"

  3. Onglet "Partager":

    • Créez un code d'invitation (avec options optionnelles)
    • Partagez le code ou le lien
    • Configurez l'expiration/limite d'utilisations
  4. Onglet "Rejoindre":

    • Entrez le code reçu
    • Entrez votre nom
    • Rejoignez le groupe!

Ajouter une Dépense

  1. Ouvrez un groupe
  2. Appuyez sur "Dépenses"
  3. Appuyez sur le bouton "+" ou l'icône quick-add
  4. Entrez:
    • Description
    • Montant
    • Qui a payé
    • Qui participe (et combien)
    • Catégorie
    • Date
  5. Confirmer

Voir les Balances

  1. Ouvrez un groupe
  2. Allez à l'onglet "Balances"
  3. Voyez qui doit de l'argent à qui
  4. Les balances se mettent à jour automatiquement

Marquer une Dépense Comme Payée

  1. Ouvrez un groupe
  2. Allez à l'onglet "Règlement"
  3. Appuyez sur le règlement à confirmer
  4. Confirmez la transaction
  5. L'historique est mis à jour

Exporter les Données

  1. Ouvrez un groupe
  2. Appuyez sur "Exporter en CSV"
  3. Les données seront partagées (email, messages, etc.)

🏗️ Architecture

Stack Technologique

  • 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

Structure du Projet

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

🎨 Design System

Couleurs (Dark Mode)

  • Primary: #6366F1 (Indigo)
  • Success: #10B981 (Emerald)
  • Error: #EF4444 (Red)
  • Background: #0F172A (Dark Navy)
  • Surface: #1E293B (Light Navy)

Spacing

  • xs: 4px, sm: 8px, md: 16px, lg: 24px, xl: 32px

Border Radius

  • sm: 8px, md: 12px, lg: 16px, xl: 24px

Icônes

🔐 Sécurité

  • ✅ 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

📱 Compatibilité

  • ✅ iOS 13+
  • ✅ Android 9+
  • ✅ Web (via Expo Web)
  • ✅ Dark Mode support sur tous les appareils

🚀 Fonctionnalités Futures

  • Authentification (Google, Apple, Email)
  • Notification push
  • QR Code pour invitations
  • Budget et alertes
  • Export PDF
  • Multi-devise conversion
  • Messages de groupe
  • Analytics avancées

🐛 Débogage

Logs

# Expo logs
npm start
# Puis press 'j' pour ouvrir le debugger

Variables d'environnement

Créer .env.local pour les credentials Firebase:

FIREBASE_API_KEY=xxx
FIREBASE_AUTH_DOMAIN=xxx
FIREBASE_PROJECT_ID=xxx
...

Problèmes Courants

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.local a les bonnes credentials
  • Vérifier la connexion internet

🤝 Contribution

Les contributions sont bienvenues! Pour contribuer:

  1. Fork le repository
  2. Créer une branche (git checkout -b feature/amazing-feature)
  3. Commit les changements (git commit -m 'Add amazing feature')
  4. Push la branche (git push origin feature/amazing-feature)
  5. Ouvrir une Pull Request

📄 License

MIT - Voir LICENSE pour les détails

👨‍💻 Auteur

Kount v1.0.0 - Built with ❤️ using React Native + Expo


🆘 Support

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 👫👬👭

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages