# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview This is a Flutter application called "bully" targeting multiple platforms (Android, iOS, Linux, macOS, Web, Windows). ## Build Commands ```bash # Get dependencies flutter pub get # Run the app (debug mode) flutter run # Run on a specific device flutter run -d # Build for release flutter build apk # Android flutter build ios # iOS flutter build web # Web flutter build windows # Windows flutter build macos # macOS flutter build linux # Linux # Analyze code for issues flutter analyze # Run all tests flutter test # Run a single test file flutter test test/widget_test.dart # Run tests with coverage flutter test --coverage ``` ## Features ### Capture de cibles de tir - Support de cibles concentriques (anneaux) et silhouettes - Chargement d'images de cibles depuis la galerie ou la caméra - Aperçu caméra avec aide au cadrage : détection OpenCV de la cible (mire) et indicateur de parallélisme par accéléromètre (pitch/roll) - Écran de centrage/recadrage : rotation fine, déplacement pixel par pixel ### Calibration des cibles - Ajustement manuel du centre, du rayon et du nombre d'anneaux (1-10) - **Calibration individuelle des anneaux** : cliquer sur un anneau pour l'ajuster indépendamment - Slider global pour redimensionner tous les anneaux proportionnellement - Visualisation en temps réel des zones de score ### Placement des impacts - **Éditeur d'impacts plein écran** : tap pour ajouter, tap sur un impact pour l'éditer (score/suppression), appui long pour déplacer, pincer pour zoomer - Le placement est entièrement manuel ; le bouton ↻ de l'écran de plotting efface tous les impacts sans toucher à la calibration ### Calcul des scores - Score automatique basé sur la position de l'impact dans les zones - Cibles concentriques : score de 10 (centre) à 1 (bord externe) - Support des anneaux calibrés individuellement pour un calcul précis - Affichage du score total et de la distribution ### Analyse de groupement - Calcul du diamètre de groupement - Visualisation du cercle de groupement - Centre de groupement affiché ### Statistiques - **Zones chaudes (Heat Map)** : visualisation en brouillard avec gradient bleu (froid) à rouge (chaud) - **Précision** : pourcentage de précision, score moyen - **Écart-type** : dispersion horizontale et verticale - **Distribution régionale** : répartition des tirs par quadrant - Filtrage par période : session, semaine, mois, toutes les sessions ### Historique des sessions - Sauvegarde des sessions avec date, score, notes - Visualisation des sessions passées - Suppression de sessions ### Interface utilisateur - Thème sombre adapté au tir - Support multilingue (Français) - Interface responsive pour mobile et desktop ## Architecture Standard Flutter project structure: - `lib/` - Dart source code (entry point: `lib/main.dart`) - `test/` - Widget and unit tests - Platform directories: `android/`, `ios/`, `linux/`, `macos/`, `web/`, `windows/` The app uses `flutter_lints` for static analysis (configured in `analysis_options.yaml`). # description des pages En-têtes ajoutés Fichier En-tête home_screen.dart Écran d'accueil - Dashboard principal avec stats et navigation stats_card.dart Widget carte réutilisable pour afficher une statistique capture_screen.dart Écran de capture - Sélection type cible et source image target_type_selector.dart Sélecteur de type de cible (concentrique/silhouette) image_source_button.dart Bouton pour choisir caméra ou galerie analysis_screen.dart Écran principal d'analyse avec overlay et scores analysis_provider.dart Gestionnaire d'état (ChangeNotifier) pour l'analyse target_overlay.dart Overlay visuel avec anneaux, impacts et groupement target_calibration.dart Outil de calibration du centre, rayon et anneaux score_card.dart Carte d'affichage des scores et distribution grouping_stats.dart Statistiques de groupement avec indicateur qualité history_screen.dart Écran historique avec liste et graphique d'évolution session_detail_screen.dart Détail d'une session avec visualisation complète session_list_item.dart Item de liste représentant une session history_chart.dart Graphique d'évolution des 10 dernières sessions statistics_screen.dart Écran statistiques avec filtrage par période heat_map_widget.dart Heat map avec gradient bleu→rouge