Dossier technique

Ce que contient l'application, comment elle est bâtie, et ce qui le prouve. Chaque affirmation de ce document porte le fichier du code qui l'établit.

76fonctionnalités
40points vérifiables
7rubriques
0affirmation sans preuve

À qui s'adresse ce document

Il est classé par question plutôt que par lecteur : chacun va directement à ce qui le concerne.

L'informaticien du prospect

Architecture, sécurité, intégrations, réversibilité — les points qui bloquent une signature.

Le dirigeant exigeant

Où vivent les données, ce qui est réellement conforme, ce qu'il récupère s'il part.

Le partenaire ou revendeur

Périmètre complet, modules vendables, ce qui se paramètre et ce qui se clone.

L'éditeur

État réel du produit : ce qui tourne, ce qui attend un réglage, ce qui relève d'une licence.

01

Comment c'est bâti

Sur quoi repose l'application, et qu'est-ce qui la fait tenir ?

  • Python 3.12 / Flask 3Application web classique, sans framework exotique ni dépendance à une mode. Un développeur Python est opérationnel dessus sans formation.requirements.txt
  • 53 groupes de routes, 108 servicesLe code est découpé par domaine métier : chaque écran a son groupe de routes, chaque règle métier son service. Rien n'est concentré dans un fichier fourre-tout.app/routes
  • 10 assistants spécialisésChiffrage, communications, données, signature, prospection, recouvrement, contenu, conversation, automatisations, IA générale. Ils communiquent par messages typés, jamais par appels directs.app/agents
  • 35 intentions typéesChaque échange entre assistants passe par une intention déclarée. Un assistant ne peut pas en appeler un autre par un chemin détourné.app/core/message.py
  • Une base de données par entrepriseChaque instance a sa propre base, jointe par une clé qui lui est propre. Aucune donnée n'est mutualisée entre clients.app/services/airtable_service.py
  • Schéma auto-provisionnéLes nouveaux champs se créent seuls sur chaque instance à la mise à jour. Pas de migration manuelle, pas d'instance qui décroche.app/services/airtable_service.py
02

Vos données

Où vivent-elles, qui les voit, que récupérez-vous si vous partez ?

  • Séparation par instanceVotre base n'est pas un compartiment dans une base commune : c'est une base distincte, avec ses propres identifiants.app/services/airtable_service.py
  • Export complet à tout momentClients, devis, chantiers, factures et documents s'exportent sans demander d'autorisation à l'éditeur.GUIDE_SAUVEGARDE_EXTERNE.md
  • Restauration documentéeLa procédure de remontée est écrite, pas improvisée le jour de l'incident.PLAN_ASSISTANT_RESTAURATION.md
  • Documents archivés, jamais régénérésUn devis signé ressert l'archive exacte. Ce que vous produisez en cas de litige est à l'octet près ce que le client a signé.app/services/archive_service.py
  • RéversibilitéL'application s'installe sur votre propre serveur si vous le souhaitez. Le manuel de déploiement est fourni, pas gardé par l'éditeur.MANUEL_DEPLOIEMENT.md
03

Conformité

Qu'est-ce qui est réellement couvert, et sur quel texte ?

  • Factur-X / EN 16931Les factures portent les données structurées de la norme européenne, contrôlées avant émission.app/services/facturx_validation.py
  • Plateforme de dématérialisation (PDP)Dépôt et réception des factures par plateforme partenaire, avec suivi du cycle de vie.app/services/pdp_service.py
  • e-reporting B2CTransmission périodique des opérations avec les particuliers, par décade close.app/services/ereporting_service.py
  • Signature électronique opposableHorodatage, adresse IP, appareil et identité conservés — articles 1366 et 1367 du Code civil.app/services/signature_service.py
  • Droit de rétractationLes 14 jours du client particulier sont gérés, avec sa page d'exercice dédiée.app/templates/retractation.html
  • RGPDPolitique de confidentialité, journal d'audit, effacement sur demande.app/templates/politique_confidentialite.html
  • Dossier de conformité maintenu dans le codeL'état détaillé de la couverture réglementaire vit dans le dépôt, pas dans une plaquette qui se périme.FACTURATION_ELECTRONIQUE_CONFORMITE.md
04

Sécurité et traçabilité

Qui peut faire quoi, et comment le prouver après coup ?

  • 15 droits, 4 rôlesAdministrateur, responsable, technicien, utilisateur. Chaque droit se vérifie côté serveur, pas seulement dans l'affichage.app/services/permissions.py
  • Journal d'auditQui a fait quoi, quand, depuis quelle adresse — y compris les actions déclenchées automatiquement.app/services/audit_service.py
  • Chiffrement des secretsMots de passe de messagerie et jetons d'accès chiffrés au repos, jamais en clair dans un fichier de réglages.app/services/crypto_service.py
  • Licence vérifiée hors ligneContrôle cryptographique Ed25519, sans appel au serveur de l'éditeur. Votre application continue de fonctionner même si l'éditeur disparaît.app/services/license_service.py
  • Plus de 2000 tests à chaque livraisonUn test rouge bloque le déploiement. Le verrou est mécanique, ce n'est pas une consigne qu'on peut contourner.tests
05

Ce qui se branche

Avec quoi l'application communique-t-elle, et qu'est-ce qui reste optionnel ?

  • Agendas et contacts (CalDAV / CardDAV)Rendez-vous et fiches clients synchronisés avec les téléphones de l'équipe, par les protocoles standards — pas par une application propriétaire.app/services/caldav_service.py
  • Paiement par carte (Stripe)Acompte et factures réglés en ligne, avec retour automatique dans la comptabilité.app/services/stripe_compta_service.py
  • Prélèvement SEPA par votre banqueFichiers pain.008 générés depuis votre identifiant créancier. Environ 0 € de frais contre 0,35 € chez un prestataire.app/services/sepa_service.py
  • SMS (OVHcloud ou Twilio)Deux fournisseurs interchangeables, le second prenant le relais si le premier échoue.app/services/sms_service.py
  • Registre officiel des entreprises (SIRENE)Une fiche client professionnel se remplit depuis la source officielle, sans faute de frappe.app/services/sirene_service.py
  • Indices officiels (INSEE)La révision annuelle des contrats suit un indice public, récupéré automatiquement.app/services/insee_indice_service.py
  • Automatisations externes (n8n)Vos scénarios d'automatisation peuvent déclencher et recevoir des événements de l'application.app/agents/n8n_agent.py
06

L'intelligence artificielle, concrètement

Quel fournisseur, quelles données lui sont envoyées, sous quelle juridiction ?

  • Quatre fournisseurs interchangeablesLe choix se fait dans les réglages, avec repli automatique si l'un est indisponible. Vous n'êtes prisonnier d'aucun.app/services/llm_provider.py
  • Repli européen prioritaireL'ordre de repli privilégie les fournisseurs sous cadre d'adéquation européen. Un réglage permet d'interdire les autres.app/services/llm_provider.py
  • Contexte délimité explicitementCe qui part chez le fournisseur d'IA est borné dans le code : ni adresse client, ni coordonnées bancaires.app/services/ai_service.py
  • Recherche dans vos propres documentsLes réponses s'appuient sur votre documentation plutôt que sur les connaissances générales du modèle.app/services/rag_service.py
  • Transparence envers l'interlocuteurLa personne est informée qu'elle s'adresse à une IA, conformément à l'article 50 du règlement européen sur l'IA.app/static/js/voice-agent.js
07

Installation et exploitation

Comment ça se déploie, se met à jour, et se duplique ?

  • Déploiement documentéManuel unique couvrant serveur, domaine, certificats et sauvegardes.MANUEL_DEPLOIEMENT.md
  • Mise à jour automatique sous conditionLes instances se mettent à jour seules, mais seulement après passage au vert de la suite de tests..github/workflows
  • Parc d'instances superviséPlusieurs instances se suivent depuis une console unique : version installée, état, modules actifs.app/services/fleet_service.py
  • Modules vendables séparémentTélésurveillance, maintenance, location, prospection, veille, paiement, SMS. Chacun s'active par licence, sans redéploiement.app/services/module_service.py
  • Marque personnalisable par instanceLogo, couleurs, mentions et conditions générales se règlent instance par instance. Les documents sortent à vos couleurs.app/services/theme_service.py

Une question que ce document ne couvre pas ?

Les points techniques absents d'ici le sont parce qu'ils ne sont pas encore vérifiables dans le code. Demandez, la réponse sera factuelle.

Poser une question technique