= Structure du projet LittleTown

== Arborescence des dossiers

[source,text]
----
LittleTown/
├── .gitea/
│   └── workflows/          # Pipelines CI/CD pour Gitea
├── docker-dev/
│   └── compose.yml         # Configuration Docker pour l'environnemenet de développement
├── documentation/          # Documentation du projet
├── scripts/                # Scripts d'automatisation (build, tests, déploiement)
└── src/                    # Code source de l'application
    ├── LittleTown.Api/                    # API backend (non utilisé actuellement)
    ├── LittleTown.Blazor/                 # Application Blazor Server et WebAssembly
    │   ├── LittleTown.Blazor/             # Application Blazor Server
    │   └── LittleTown.Blazor.Client/      # Application Blazor WebAssembly
    ├── LittleTown.Core/                   # Classes de domaine et modèles
    ├── LittleTown.Core.Tests/             # Tests unitaires
    └── LittleTown.StaticDataAccess/       # Accès aux données statiques
----

== Description des projets

=== LittleTown.Api
Projet de l'API backend. Pour le moment, il n'est pas utilisé dans l'architecture actuelle.

=== LittleTown.Blazor
Application principale utilisant Blazor Server et Blazor WebAssembly en mode interactif.

* *LittleTown.Blazor* : Composant serveur, il inclut le projet .client
* *LittleTown.Blazor.Client* : Composant client WebAssembly

=== LittleTown.Core
Cœur du domaine métier, contient :

* *Aggregates* : Les agrégats DDD (Board, Match, PlayerZone)
* *Enumerations* : Types énumérés du domaine
* *Exceptions* : Exceptions métier
* *PortInterfaces* : Interfaces des ports (architecture hexagonale)
* *UseCases* : Cas d'utilisation métier
* *ValueTypes* : Objets valeur du domaine

=== LittleTown.Core.Tests
Tests unitaires du domaine métier.

=== LittleTown.StaticDataAccess
Gestion de l'accès aux données statiques du jeu (cartes, ressources, configuration).
