Skip to content

BlandineRdl/EquimApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EquimApp

Application mobile React Native permettant la gestion de groupes et l'invitation de membres.

🚀 Stack Technique

  • Framework: Expo (~54.0.12) avec React Native 0.81.4
  • Navigation: Expo Router (file-based routing)
  • État Global: Redux Toolkit avec React Redux
  • Backend: Supabase (authentification, base de donnĂ©es)
  • Styling: React Native StyleSheet
  • IcĂŽnes: Lucide React Native
  • TypeScript: Support complet avec typed routes
  • Tests: Vitest avec support des tests unitaires et d'intĂ©gration
  • Linting: Biome

📁 Architecture

src/
├── components/        # Composants rĂ©utilisables
├── config/           # Configuration de l'application
├── features/         # Features organisĂ©es par domaine
│   ├── auth/        # Authentification
│   ├── group/       # Gestion des groupes
│   ├── notification/# Notifications
│   ├── onboarding/  # Onboarding utilisateur
│   └── user/        # Gestion utilisateur
├── lib/             # Bibliothùques et clients (Supabase, etc.)
├── navigation/      # Configuration de navigation
├── store/           # Redux store et configuration
├── test/            # Utilitaires de test
├── theme/           # Thùme et styles
└── types/           # Types TypeScript partagĂ©s

đŸ› ïž Installation

Prérequis

  • Node.js (version recommandĂ©e: 18+)
  • pnpm (ou npm)
  • Expo CLI
  • iOS: Xcode et CocoaPods
  • Android: Android Studio et SDK

Installation des dépendances

pnpm install

Pour iOS, installer également les pods:

cd ios && pod install && cd ..

🔧 Configuration

Variables d'environnement

Créer un fichier .env.local à la racine du projet:

# Supabase Configuration
SUPABASE_URL=votre_url_supabase
SUPABASE_ANON_KEY=votre_cle_anon

# Pour les tests locaux (optionnel)
SUPABASE_USE_LOCAL=true
SUPABASE_LOCAL_URL=http://localhost:54321
SUPABASE_LOCAL_ANON_KEY=votre_cle_locale

Voir .env.local.example pour plus de détails.

🚀 DĂ©veloppement

Démarrer l'application

# Démarrer le serveur de développement
pnpm start

# Démarrer sur iOS
pnpm ios

# Démarrer sur Android
pnpm android

# Démarrer sur Web
pnpm web

Scripts disponibles

Développement

  • pnpm start - DĂ©marrer Expo
  • pnpm ios - Lancer sur iOS
  • pnpm android - Lancer sur Android

Qualité de code

  • pnpm lint - VĂ©rifier le code avec Biome
  • pnpm lint:fix - Corriger automatiquement les erreurs
  • pnpm format - Formater le code
  • pnpm typecheck - VĂ©rifier les types TypeScript

Tests

  • pnpm test - Lancer les tests en mode watch
  • pnpm test:run - Lancer tous les tests
  • pnpm test:unit - Tests unitaires uniquement
  • pnpm test:integration - Tests d'intĂ©gration
  • pnpm test:integration:local - Tests avec Supabase local
  • pnpm test:ui - Interface UI pour les tests
  • pnpm test:coverage - Rapport de couverture

Supabase

  • pnpm supabase:start - DĂ©marrer Supabase local
  • pnpm supabase:stop - ArrĂȘter Supabase local
  • pnpm supabase:status - Statut de Supabase
  • pnpm supabase:reset - RĂ©initialiser la base de donnĂ©es

Build

  • pnpm build:preview:android - Build preview Android (EAS)
  • pnpm build:preview:ios - Build preview iOS (EAS)
  • pnpm build:production - Build production (iOS + Android)

Nettoyage

  • pnpm clean - Nettoyer les caches
  • pnpm clean:ios - Nettoyer le cache iOS
  • pnpm clean:android - Nettoyer le cache Android
  • pnpm clean:expo - Nettoyer le cache Expo
  • pnpm clean:all - Tout nettoyer (+ Watchman)
  • pnpm nuke - RĂ©installation complĂšte du projet

đŸ§Ș Tests

Le projet utilise Vitest pour les tests avec deux types de tests:

Tests unitaires

pnpm test:unit

Tests des fonctions, hooks et composants de maniÚre isolée.

Tests d'intégration

# Avec Supabase local (recommandé)
pnpm supabase:start
pnpm test:integration:local

# Avec Supabase distant
pnpm test:integration

Tests end-to-end incluant les appels Ă  Supabase.

đŸ“± Features

  • ✅ Authentification - Connexion/Inscription via Supabase
  • ✅ Onboarding - Parcours d'accueil utilisateur
  • ✅ Groupes - CrĂ©ation et gestion de groupes
  • ✅ Invitations - SystĂšme d'invitation par token
  • ✅ Notifications - Gestion des notifications
  • ✅ Profil utilisateur - Gestion du profil

🎹 Conventions de code

Principes

  • SimplicitĂ©: Éviter la complexitĂ© inutile
  • Pragmatisme: Se concentrer sur les besoins rĂ©els
  • Pas de sur-ingĂ©nierie: Solutions simples et efficaces
  • Gestion d'erreurs: Pas d'erreurs silencieuses, exceptions explicites

Organisation

  • Architecture par features (domain-driven)
  • Composants rĂ©utilisables dans /components
  • Types TypeScript partagĂ©s dans /types
  • Configuration centralisĂ©e dans /config

📩 DĂ©ploiement

Le projet utilise EAS (Expo Application Services) pour les builds:

# Preview
pnpm build:preview:android
pnpm build:preview:ios

# Production
pnpm build:production

🔗 URLs et Schemes

  • Scheme: equim://
  • Package Android: com.blackksun.equimapp
  • Bundle iOS: com.blackksun.equimapp

đŸ€ Contribution

  1. Respecter les conventions de code du projet
  2. Écrire des tests pour les nouvelles fonctionnalitĂ©s
  3. Vérifier que tous les tests passent: pnpm test:run
  4. Vérifier le lint: pnpm lint
  5. Vérifier les types: pnpm typecheck

📄 License

Privé - Tous droits réservés

🐛 DĂ©pannage

ProblĂšmes courants

"Module not found" ou erreurs de cache

pnpm clean:all
pnpm install

ProblÚmes iOS spécifiques

pnpm reinstall:ios
pnpm rebuild:ios

ProblÚmes Android spécifiques

pnpm rebuild:android

Tout réinstaller (solution nucléaire)

pnpm nuke

📚 Documentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published