2026-06-27 14:25:08 +01:00
|
|
|
# Documentation Yavsc
|
|
|
|
|
|
|
|
|
|
Index des documents d'architecture, design et références du dépôt.
|
|
|
|
|
La racine de l'architecture est [Architecture.md](Architecture.md).
|
|
|
|
|
|
|
|
|
|
## Architecture & design
|
|
|
|
|
|
|
|
|
|
| Document | Sujet |
|
|
|
|
|
|---|---|
|
|
|
|
|
| [Architecture.md](Architecture.md) | Sommaire racine — vision, stack, droits |
|
|
|
|
|
| [architecture/workflow-multi-parties.md](architecture/workflow-multi-parties.md) | Rôles client/fournisseur/coordinateur, sous-traitance, états projet |
|
|
|
|
|
| [architecture/domaine-musical.md](architecture/domaine-musical.md) | Production collaborative de titres musicaux sous licence libre |
|
|
|
|
|
| [architecture/licences.md](architecture/licences.md) | LicenceModele, seed CC/ODbL, badge projet |
|
|
|
|
|
| [architecture/domaines-activite.md](architecture/domaines-activite.md) | Arbre des activités, Droit à la racine |
|
|
|
|
|
| [architecture/dictionnaires-metier.md](architecture/dictionnaires-metier.md) | Dictionnaires métier, héritage en arbre, cycle de vie d'un terme |
|
|
|
|
|
| [architecture/offres-frontmatter.md](architecture/offres-frontmatter.md) | Offre fournisseur, ClasseFormulaire, ClasseDevis, parsing frontmatter |
|
|
|
|
|
| [architecture/postit-oidc.md](architecture/postit-oidc.md) | Client desktop PostIt, custom URI scheme, silent refresh |
|
doc(arch): PostIt topology + up-to-date project list
Two long-standing gaps in the architecture documentation are
filled in this commit:
1. doc/architecture/postit.md is new. It covers everything the
existing postit-oidc.md does not: the one-codebase /
three-frontends topology (PostIt lib + PostIt.Desktop +
PostIt.Android + PostIt.Browser), the custom ViewLocator
that resolves ViewModel -> View through the DI provider
(and why we don't use the Avalonia.Mvvm default), the
composition root in App.OnFrameworkInitializationCompleted
with the full DI registration table, the navigation flow
driven by SessionStatusViewModel events, the ViewModel
lifetime conventions (singleton vs transient), the
[RelayCommand] XAML binding conventions (referenced to
AGENTS.md for the canonical version), and the per-page
DataContext / role table. The Settings-singleton invariant
is called out as a guard rail, and the SettingsPage
anti-empilement invariant is documented as the TODO the
code still owes us.
2. doc/architecture/decoupage-organisation.md is brought up to
date. Its project table listed 7 .csproj; the repo has 14
(the four PostIt projects, the tests satellites, the cli
tool). The table is extended, the ASCII diagram picks up
the PostIt block, and an Outils et tests section lists
the test / CLI satellites that were missing.
doc/README.md is updated to index the new postit.md. No code
changes in this commit, no behaviour change.
2026-07-09 21:54:06 +01:00
|
|
|
| [architecture/postit.md](architecture/postit.md) | PostIt — topologie des projets, ViewLocator custo, navigation, DI, conventions de binding |
|
2026-06-27 14:52:28 +01:00
|
|
|
| [architecture/decoupage-organisation.md](architecture/decoupage-organisation.md) | Découpage des projets .NET (Abstract, Server, Org, Api, Blogs, Web, Org.Tests) |
|
Blog: add test guarding the display-template fix + document test architecture
Le commit 2 a fixé la NPE du /BlogSpot/Details/{id} en passant
le display template par UserDisplayHelpers.AvatarSrc, qui
défend contre un UserName null. Ce commit complète le filet
de non-régression et pose la doc d'architecture des tests.
- ApplicationUserDisplayTemplateTests : assert que le cshtml ne
concatène plus directement Model.UserName (ancien code fautif)
et qu'il utilise bien le helper. Si quelqu'un revert la ligne
4 du cshtml, les tests cassent. Les autres usages de
Model.UserName (alt, title, asp-route-id) sont autorisés : ils
ne sont pas la cause du 500, juste laids si null.
- doc/testing.md : vue d'ensemble de la stratégie de test
(conventions NonRegression/Mandatory/Smoke/Controllers, EF
in-memory via InMemoryDatabaseRoot partagé, auth stubs,
quand ne pas écrire de test).
- src/Yavsc.Tests.Shared/README.md : détails du scaffold partagé
(WebHostFixture + son cycle de vie et ses hooks,
TestAuthPolicyProvider, TestTokenIssuer) et des deux
spécialisations dans le repo
(Yavsc.Org.Tests.WebServerFixture et
Yavsc.Blogs.Tests.BlogsWebServerFixture).
- doc/README.md : entrée vers testing.md dans l'index.
2026-07-11 19:59:03 +01:00
|
|
|
| [testing.md](testing.md) | Stratégie de test : conventions des dossiers, EF Core in-memory, auth stubs, scaffold partagé |
|
2026-06-27 14:25:08 +01:00
|
|
|
|
|
|
|
|
## Roadmap & design exploration
|
|
|
|
|
|
|
|
|
|
| Document | Sujet |
|
|
|
|
|
|---|---|
|
|
|
|
|
| [ROADMAP.md](../ROADMAP.md) | Feuille de route produit (à la racine du dépôt) |
|
|
|
|
|
| [ddd-exploration-2026-06-14.md](ddd-exploration-2026-06-14.md) | Exploration DDD, jalons, contextes bornés, modèles cibles |
|
|
|
|
|
|
|
|
|
|
## Échantillons
|
|
|
|
|
|
|
|
|
|
| Document | Sujet |
|
|
|
|
|
|---|---|
|
|
|
|
|
| [offer-sample.md](offer-sample.md) | Échantillon d'offre fournisseur (markdown avec frontmatter) |
|
|
|
|
|
|
|
|
|
|
## Journal de travail
|
|
|
|
|
|
|
|
|
|
Documents de suivi informels (non publiés, à usage interne) :
|
|
|
|
|
|
|
|
|
|
- [dev-tracking/client-editor-overhaul.md](dev-tracking/client-editor-overhaul.md) — refonte de l'éditeur client OAuth2
|