yavsc/doc/Architecture.md
Paul Schneider 74de6aa1d1 doc: split Architecture.md into per-topic pages
doc/Architecture.md was 436 lines and growing; this commit
extracts each non-trivial subject into its own page under
doc/architecture/ and reduces the root document to a table of
contents + transversal sections (vision, stack, admin rights).

New pages (under doc/architecture/):

- workflow-multi-parties.md : client / fournisseur /
  coordinateur roles, sous-traitance, project states, B2B/B2C,
  domaine musical production flow.
- domaine-musical.md : titres collaboratifs (formats, flux de
  production, contraintes de licence).
- licences.md : LicenceModele, CC/ODbL seed, badge projet,
  cycle de vie.
- domaines-activite.md : arbre des activites, Droit a la
  racine, DomaineActivite model.
- dictionnaires-metier.md : regle d'heritage, DictionnaireMetier
  + TermeMetier, cycle de vie d'un terme. Absorbs the previous
  doc/Dictionnaire.md draft.
- offres-frontmatter.md : ClasseFormulaire / ClasseDevis,
  OffreFournisseur, Demande, parsing YamlDotNet (introduit dans
  4034c399 Front matters). Absorbs the previous
  doc/Formulaires-devis.md and doc/Demande.md fragments.
- postit-oidc.md : documentation du client desktop PostIt,
  custom URI scheme (RFC 8252 §7.1), composants partages,
  plateformes, UX observable, persistance et reprise au boot,
  garanties testees.

Architecture.md (436 -> 66 lines) keeps the vision, the stack
overview, the admin rights section, and a TOC table pointing at
each detail page. The "A documenter ensuite" backlog is kept
at the end.

Cross-links are relative: from Architecture.md the links go
architecture/<page>.md; from inside doc/architecture/ they go
../Architecture.md or <sibling>.md.
2026-06-27 13:45:31 +01:00

2.7 KiB

Architecture de Yavsc

Vision générale

Yavsc est une plateforme de mise en relation client/fournisseur, spécialisable par domaine d'activité, avec une origine musicale.

Elle gère des devis (pas de facturation directe), et s'intègre dans des workflows collaboratifs pouvant aboutir à des livrables sous licence libre.

Pages de détail

Chaque sujet est détaillé dans sa propre page (sous doc/architecture/) ; cette racine tient lieu de sommaire.

Sujet Page
Workflow multi-parties (client / fournisseur / coordinateur, sous-traitance, états) workflow-multi-parties.md
Domaine musical (titres collaboratifs) domaine-musical.md
Licences (LicenceModele, seed CC/ODbL, badge) licences.md
Domaines d'activité (arbre, DomaineActivite) domaines-activite.md
Dictionnaires métier (héritage en arbre) dictionnaires-metier.md
Offre fournisseur + frontmatter (ClasseFormulaire, ClasseDevis, parsing) offres-frontmatter.md
PostIt / OIDC (client desktop, custom URI scheme, silent refresh) postit-oidc.md

Stack technique

  • Backend : ASP.NET Core, C#
  • ORM : Entity Framework Core (migrations générées)
  • Base de données : PostgreSQL (provider Npgsql)
  • Frontend : Razor views
  • Parsing frontmatter : YamlDotNet
  • Client desktop : Avalonia 12 (PostIt — détails dans postit-oidc.md)

Droits de Yavsc

Administration

Le groupe des administrateurs prend la charge de :

  • la Gestion des licences
  • la Gestion des groupes d'utilisateurs (les modérateurs, en particulier)
  • la Gestion des projets
  • la Gestion des utilisateurs

Gestion des utilisateurs et des groupes

En supposant que les certificats de letsencrypt sont au groupe www-data, on peut créer l'utilisateur yavsc avec les droits suivants :

sudo addgroup yavsc --system
sudo adduser --ingroup yavsc --add-extra-groups www-data \
 --disabled-password --system yavsc

À documenter ensuite

  • Modèle ProjetMusical
  • Gestion des fichiers (audio, partition, MIDI)
  • Workflow de validation de licence par l'administration
  • Workflow de modération des termes métier
  • Workflow complet de parsing et validation du frontmatter à la sauvegarde