Go to file
Paul Schneider a531a46fb0 a breaking target 6 years ago
.nuget Passage à ASP.NET vNext 8 years ago
Assets a basket 8 years ago
CrossZicMoove Eto package references 6 years ago
CrossZicMoove.Desktop Eto package references 6 years ago
OAuth.AspNet.AuthServer restoring project 7 years ago
OAuth.AspNet.Token more target frameworks 6 years ago
Yavsc Merge branch 'vnext' of github.com:pazof/yavsc into vnext 6 years ago
Yavsc.Abstract for token, &refactoring 6 years ago
Yavsc.Server refactoring 6 years ago
ZicMoove still refactoring 6 years ago
cli for token, &refactoring 6 years ago
test a breaking target 6 years ago
testOauthClient servicing 6 years ago
yaxwtui EF7 npgsql => ko aux clients => inutile en lib [obsdnx] 6 years ago
yaxwtui.Gtk2 ... I need peace 7 years ago
yaxwtui.Gtk3 . 6 years ago
yaxwtui.Wpf ... I need peace 7 years ago
.eslintrc.json cs requires uname 8 years ago
.gitattributes a default attr set from GitHub 7 years ago
.travis.yml TODO use nodejs & gulpfle.js 6 years ago
LICENSE refactoring 7 years ago
Makefile main testing is about make -C test 6 years ago
README.md Running 7 years ago
ZicMoove.sln refact. 6 years ago
build.sh still refactoring 6 years ago
dnx.mk [rc20-alpah4] 6 years ago
favicon.xcf icone 8 years ago
global.json [WIP] Git 6 years ago
gulpfile.js wip - refacts 8 years ago
msbuild.mk . 6 years ago
msbuild.xsl packaging 8 years ago
omnisharp.json fixes the project reference from project config 6 years ago
package-lock.json do test 6 years ago
paket.dependencies using Paket from VS Code 8 years ago
rc-num.txt for token, &refactoring 6 years ago
versioning.mk v 1.0.5-rc20-alpha5 6 years ago
yavsc.code-workspace do test 6 years ago
yavsc.mdw ya workspace 8 years ago

README.md

Build Status

Yavsc

C'est une application mettant en oeuvre une prise de contact entre un demandeur de services et son éventuel préstataire associé.

Construction et Installation

La construction

Le code est du c sharp, dont les librairies sont restorées et le tout compilé avec les librairies DNX de M$, téléchargeable en executant le script d'installation suivant (c.f. /.travis.yml):

curl --insecure -sSL https://lua.pschneider.fr/files/Paul/dnx-install.sh | bash && DNX_USER_HOME=`pwd -P`/dnx . ./dnx/dnvm/dnvm.sh && cd Yavsc && dnu restore

Une fois l'environnement ainsi pollué, executer, depuis le sous dossier Yavsc:

dnu build

L'execution, avec un runtime Mono, echoura dans ses version récentes. Celui ci convient:

[monoperso] ~/workspace/yavsc/Yavsc @ mono --version
Mono JIT compiler version 4.6.2 (Stable 4.6.2.7/08fd525 jeudi 18 janvier 2018, 13:10:54 (UTC+0100))
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug 
    LLVM:          supported, not enabled.
    GC:            sgen

et, pour execution en environement de développement

[monoperso] ~/workspace/yavsc/Yavsc @ ASPNET_ENV=Development dnx web
warn: Yavsc.Startup[0]
  AppData was not found in environment variables
warn: Yavsc.Startup[0]
  It has been set to : /home/paul/workspace/yavsc/Yavsc/AppDataDevelopment
Hosting environment: Development
Now listening on: http://*:5000
Application started. Press Ctrl+C to shut down.

Si vous êtes arrivé jusqu'ici, vous devriez pouvoir visiter la home page ici.

Fonctionalités

Elle est censée aboutir à une prise commande, un payement du client, à une collecte du retour du client, et à un paiment du prestataire de services.

Elle comprendra une gestion des litiges.

Elle expose une messagerie instantanée, disponible depuis un navigateur Web ou depuis l'appplication mobile, pouvant garantir la preservation du secret sur toute information personnelle, du client comme du prestataire.

Ni le client ni le prestataire ne sont anonymes pour l'application, il sont même formellement authentifies, au moment de leur accord pour une première facturation en ligne, à l'occasion:

  • pour le client, à la validation d'une commande facturée (de prestation à un prestataire, ou autre).
  • pour le prestataire, de la validation de son profile proféssionnel, qui implique l'acquitement de son adhésion forfaitaire.

La séquence logique (et simplifiable) d'une prestation canonique (sans annulation ni reclamation) est la suivante :

  1. Une commande intervient auprés d'un prestataire, elle est chiffrée et le paiment est provisioné par PayPal, non collécté.
  2. Notifié, le prestataire valide un devis, avec arrhes ou avance. il signe son devis, qui peu contenir des documents attachés à faire signer par le client, un ou des contrats, stokés au format Markdown par le prestataire dans ses contrats à faire signer.
  3. à son tour, le client est notifié et signe le devis aussi
  4. Les arrhes ou avances sont débitées sur le champ
  5. 10 jours avant la date de la prestation le reste du paiement est collecté

Dans le cas des arrhes, à tout moment, jusqu'avant la date et l'heure de la prestation, le client ou le prestataire peuvent annuler:

  • Le prestataire peut le faire, en rendant les arrhes majorées de 20%
  • Le client peut le faire, en perdant les arrhes.
  • Le prestataire peut déléguer à une équipe de son choix un filtrage des demandes des clients.

Limitations temporaires

  • à une commande, une prestation, un paiment

Limitations conceptuelles

  • Dans le cas de l'avance, une fois le paiment client autorisé, pour le moment, aucune annulation de la préstation n'est supportée.
  • Une fois passée la date de la prestation, toute reclamation nécessitera l'intervention d'un système auxiliaire (un processus humain?)
  • Un seul moyen de paiment: PayPal, depuis le Web ou l'application mobile, son interface dite dépréciée NVP/SOAP.
  • Elle ne prendra pas en charge, du moins pas encore, ni la saisie de structures de projets complexes, ni ticketing associé à la prestation.
  • Les professionnels sont tous considérés comme tierces parties, horsmis le propriétaire de l'installation, dont les identifiants PayPal sont utilisés pour collecter tous les paiments. TODO Aucune edition de fiche de paye ni paiment en masse ne sont supportés pour l'instant. Seul les payments unitaires sus-cités le sont.

Développement

Une nouvelle activité

L'impact d'une custo de son activité pourrait à peu près tout concerner. Un bon point de départ est la création d'un controller de commande dédié, enrichi des données de profile associées à un nouveau type de profiles prestataire.

Ceci implique:

  • Un modèle de donnée, un controleur web, ses vues et son API pour:
    • Le profile prestataire, dont la donnée est représentée par une classe arbitraire
    • L'éventuelle commande customisée, dont la donnée réalise l'objet abstrait 'NominativeServiceCommand'

Un nouvel environnement d'execution

L'impact de l'usage d'un nouveau nom d'environement d'execution, à l'heure de cet écrit, ressemble à ceci:

  • Ajustement des listes d'environements cités dans les pages:
    • ~/Views/Shared/_Layout.cshtml
    • ~/Views/Shared/_ValidationScriptsPartial.cshtml
    • ~/Views/Home/Index.cshtml
    • ~/Views/Home/About.cshtml

... et beaucoup plus si affinité!