diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..273b75b --- /dev/null +++ b/docs/README.md @@ -0,0 +1,26 @@ +# Documentation du Projet Bully + +Bienvenue dans la documentation développeur de l'application **Bully**. + +Ce projet est une application Flutter d'analyse de cibles de tir (Impact Detection). + +## Architecture + +Le code source est organisé dans le dossier `lib/` selon les couches suivantes : + +- **Features (`lib/features`)** : Contient les écrans et la logique UI (Vues/Pages). C'est ici que réside l'interface utilisateur. +- **Services (`lib/services`)** : Services "métier" et utilitaires (traitement d'image, calculs, etc.). Indépendant de l'UI. +- **Data (`lib/data`)** : Gestion des données (Modèles, Base de données locale, Repositories). + +## Sections de la Documentation + +Pour plus de détails sur chaque partie, consultez les sections dédiées : + +- 🏗️ **[Services (Logique Métier)](services/README.md)** : Documentation des services comme le traitement d'image et le calcul de score. +- 📱 **[Vues & Features (UI)](features/README.md)** : Documentation des écrans principaux (ex: Analyse). +- 💾 **[Base de Données & Modèles](data/README.md)** : Structure des données et persistance. + +## Pour commencer + +1. Assurez-vous d'avoir Flutter installé. +2. Lancez `flutter run` pour démarrer l'application. diff --git a/docs/data/README.md b/docs/data/README.md new file mode 100644 index 0000000..adf8d9c --- /dev/null +++ b/docs/data/README.md @@ -0,0 +1,17 @@ +# Data & Persistance + +Cette couche gère la sauvegarde et la récupération des données. + +## Base de Données +L'application utilise une base de données locale (probablement SQLite/Drift ou Hive, à vérifier dans `lib/data/database`). + +## Modèles (`lib/data/models`) +Les classes représentant les objets métier persistés. + +Exemples probables : +- `Session` : Une session de tir. +- `Impact` : Un impact de balle sur la cible. +- `Target` : Configuration d'une cible. + +## Repositories (`lib/data/repositories`) +Le pattern Repository est utilisé pour abstraire la source de données (DB locale, API distante, etc.) du reste de l'application. diff --git a/docs/features/README.md b/docs/features/README.md new file mode 100644 index 0000000..af9688c --- /dev/null +++ b/docs/features/README.md @@ -0,0 +1,17 @@ +# Features & Vues + +Cette section documente les écrans principaux de l'application et leur organisation. + +## Écrans Principaux + +### Analysis (`lib/features/analysis`) +C'est le cœur de l'application. Il permet à l'utilisateur de prendre une photo ou choisir une image pour analyser les impacts. + +- **AnalysisScreen** (`analysis_screen.dart`): L'écran principal qui orchestre la capture et l'affichage des résultats. +- **AnalysisProvider** (`analysis_provider.dart`): Gestionnaire d'état (State Management) pour cet écran. Il fait le pont entre la vue et les services. + +## Structure d'une Feature +Chaque feature est généralement composée de : +- `_screen.dart` : Le Widget de la page. +- `_provider.dart` : La logique d'état (ChangeNotifier, Bloc, etc.). +- `widgets/` : Widgets spécifiques à cette feature. diff --git a/docs/services/README.md b/docs/services/README.md new file mode 100644 index 0000000..59c342c --- /dev/null +++ b/docs/services/README.md @@ -0,0 +1,20 @@ +# Services + +Les services contiennent la logique métier de l'application, isolée de l'interface utilisateur. + +## Liste des Services Principaux + +| Service | Description | Fichier | +| :--- | :--- | :--- | +| **ImageProcessingService** | Gère le traitement lourd des images (filtres, détection). | `lib/services/image_processing_service.dart` | +| **DistortionCorrection** | Corrige la distorsion de perspective des cibles. | `lib/services/distortion_correction_service.dart` | +| **ScoreCalculator** | Calcule le score en fonction des impacts détectés. | `lib/services/score_calculator_service.dart` | +| **StatisticsService** | Génère des statistiques sur les sessions de tir. | `lib/services/statistics_service.dart` | + +## Exemple d'utilisation (Fictif) + +```dart +// Exemple d'appel au service de calcul de score +final calculator = ScoreCalculatorService(); +final score = calculator.calculate(impacts); +```