yavsc/doc/Architecture.md
2026-06-14 18:26:40 +01:00

4.1 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.


Workflow de mise en relation multi-parties

Initiateur

Le projet peut être initié par n'importe quelle partie :

  • Un client (particulier ou pro) qui exprime un besoin
  • Un fournisseur qui propose une offre ou monte un collectif
  • Un tiers coordinateur qui orchestre sans être client ni prestataire

Rôles

Rôle Type de compte Description
Client Pro ou particulier Exprime le besoin, valide les devis, co-signe la licence
Fournisseur Pro Répond aux besoins, peut sous-traiter
Coordinateur Pro ou particulier Orchestre le projet sans relation de facturation directe

Sous-traitance

Un fournisseur peut faire appel à d'autres fournisseurs, avec accord explicite du client. Chaque sous-traitant :

  • Est visible dans le projet
  • Co-signe l'accord de licence
  • Peut recevoir un devis distinct

B2B / B2C

La distinction est portée par le type de compte :

  • Compte pro : SIRET, TVA, facturation professionnelle
  • Compte particulier : usage personnel, sans obligations fiscales pro

Un projet peut mélanger les deux (ex: un particulier client, plusieurs prestataires pro) — Yavsc n'impose pas d'homogénéité.

États d'un projet

Initié → En recherche de parties → Devis en cours
       → Accord de licence signé → En production
       → Livré → Publié (si licence libre)

Contrainte clé

L'accord de licence est établi avant tout début de production, signé (ou validé) par toutes les parties : client, fournisseurs, et sous-traitants éventuels.


Domaine musical — Titres collaboratifs

Objectif

Permettre la production collaborative de titres musicaux sous licence libre, à partir de la mise en relation assurée par Yavsc.

Formats supportés

  • Audio (ex: WAV, FLAC, MP3)
  • Partition (ex: MusicXML, LilyPond, PDF)
  • MIDI

Flux de production

  1. Un client exprime un besoin musical
  2. Des prestataires répondent avec des devis
  3. Un consensus est établi en amont entre le client et les contributeurs sur la licence du livrable final
  4. La collaboration produit les fichiers
  5. Le titre est publié sous la licence choisie

Licences

Modèle LicenceModele

Géré par l'administration Yavsc. Chaque modèle porte :

  • EstLibre (bool) — détermine le badge affiché sur le projet
  • Les conditions : attribution, partage à l'identique, usage commercial, modification
  • Une URL vers le texte officiel de la licence

Seed initial

Licences Creative Commons préchargées : CC0, CC BY, CC BY-SA, CC BY-ND, CC BY-NC, CC BY-NC-SA, CC BY-NC-ND (toutes en version 4.0) + ODbL 1.0.

Badge projet

Rendu CSS/HTML — vert si EstLibre, orange sinon.


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

## 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 :

¨¨¨¨bash 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