Jalons Atteints

Date:

2025-01-19

État:

Ce qui est déjà fait

Introduction

Cette page présente les jalons déjà atteints par KoproGo. Elle démontre la maturité technique du projet et valide la faisabilité de la vision 2025-2030.

Tip

Le projet est déjà opérationnel !

KoproGo n’est pas un concept : c’est une plateforme fonctionnelle avec 73 endpoints API, des tests automatisés, et une infrastructure en production.

Jalon 0 : Fondations Techniques ✅

État : COMPLÉTÉ (Automne 2025)

Capacité débloquée : 10-20 early adopters (beta fermée)

Conformité légale : 30% (features CRUD de base)

Architecture & Code

Architecture Hexagonale Implémentée

  • Domain layer (entités avec invariants)

  • Application layer (use cases + ports)

  • Infrastructure layer (adapters web, database)

  • Séparation stricte des couches

  • Dependency inversion respectée

73 Endpoints REST API Opérationnels

  • Buildings : 6 endpoints (CRUD + stats)

  • Units : 8 endpoints (CRUD + owners management)

  • Owners : 7 endpoints (CRUD + units relationship + history)

  • Expenses : 12 endpoints (CRUD + workflow approval + payment reminders)

  • Meetings : 6 endpoints (CRUD + attendees)

  • Documents : 6 endpoints (CRUD + upload)

  • Auth : 5 endpoints (login, register, refresh, logout, switch-role)

  • Accounts (PCMN) : 7 endpoints

  • Payment Reminders : 8 endpoints

  • Unit Owners : 8 endpoints (multi-owner support)

11 Entités du Domaine

  1. Organization

  2. User (avec multi-role support)

  3. Building

  4. Unit

  5. Owner

  6. UnitOwner (relation N-N avec pourcentages)

  7. Expense (avec workflow approval)

  8. InvoiceLineItem (lignes de facturation + TVA)

  9. Meeting

  10. Document

  11. Account (PCMN belge)

  12. PaymentReminder (workflow recouvrement)

Tests & Qualité

Tests E2E Automatisés (Playwright)

  • 45+ scénarios E2E

  • Backend + Frontend intégration

  • Visual regression testing

  • Tests cross-browser

Tests Unitaires & Intégration

  • Domain : 100% couverture (tests in-module)

  • Application : Use cases testés

  • Infrastructure : Tests intégration PostgreSQL (testcontainers)

  • BDD : Scénarios Cucumber/Gherkin

Load Tests Validés

  • 287 req/s soutenus (charge réelle)

  • 752ms latence P99 (1 vCPU)

  • 99,74% success rate (26 échecs sur 17 200 requêtes)

  • 128MB RAM utilisée (sur 2GB disponibles)

Performance & Écologie

Performance Validée en Production

  • Throughput : 287 req/s soutenu

  • Latency P99 : 752ms (1 vCPU VPS)

  • Memory : 128MB utilisée

  • CPU : < 20% utilisation moyenne

  • Uptime : 99,74%

Empreinte Carbone Mesurée

  • 0,12g CO₂/requête (mesuré en production)

  • vs 11,5g concurrence (96% réduction)

  • Datacenter OVH Gravelines (60g CO₂/kWh)

  • Architecture Rust optimisée

Infrastructure & Sécurité

Infrastructure Production (Issue #39, #40, #41, #43)

  • VPS OVH s1-2 (1 vCPU, 2GB RAM) - 6,30€/mois

  • Docker + GitOps (auto-deploy)

  • LUKS Encryption at-rest (AES-XTS-512)

  • Backups quotidiens GPG + S3 off-site

  • Monitoring : Prometheus + Grafana + Loki

Sécurité Renforcée

  • TLS 1.3 (Let’s Encrypt)

  • JWT authentication + refresh tokens

  • Hashing passwords (Argon2id)

  • Firewall UFW (ports 22, 80, 443)

  • Fail2ban (SSH, Traefik, API abuse)

  • Suricata IDS (détection intrusions)

  • CrowdSec WAF (threat intelligence)

Documentation

Documentation Sphinx Complète

  • 50+ documents RST

  • Architecture détaillée (backend, frontend, infra)

  • Guides utilisateurs (syndic, owner, comptable)

  • ADR (Architecture Decision Records)

  • RFC (Request For Comments)

  • API documentation

  • Tutoriels vidéo YouTube

Workflows Git Documentés

  • Pre-commit hooks (format + lint)

  • Pre-push hooks (lint + test)

  • Conventional commits

  • DCO (Developer Certificate of Origin)

  • Pull request templates

Jalon 1 : Sécurité & GDPR (En Cours) 🔄

État : 70% COMPLÉTÉ

Capacité débloquée : 50-100 copropriétés (beta publique)

Conformité légale : 40%

Déjà Fait

Infrastructure Sécurisée (Issues #39, #40, #41, #43)

  • LUKS Encryption at-rest ✅

  • Backups GPG + S3 ✅

  • Monitoring/Alerting ✅

  • Intrusion Detection (Suricata) ✅

  • WAF (CrowdSec) ✅

  • fail2ban + SSH hardening ✅

En Cours

GDPR Basique (Issue #42)

  • ⏳ Export données utilisateur (Article 15 GDPR)

  • ⏳ Droit à l’oubli (Article 17 GDPR)

  • ⏳ Privacy policy v1.0

  • ⏳ Tests GDPR automatisés

Authentification Forte (Issue #48)

  • ⏳ Inscription itsme® (délai 2-4 semaines)

  • ⏳ Intégration API itsme®

  • ✅ Fallback email/password (déjà implémenté)

  • ⏳ Tests auth E2E

Effort restant estimé : 2-4 semaines (selon force de travail)

Modules Fonctionnels Déjà Implémentés

Multi-Owner Support ✅

Issue : Implémenté (multi-tenancy refactor)

  • Junction table unit_owners (N-N)

  • Pourcentages de propriété (validation ≤ 100%)

  • Historique temporel (date début/fin)

  • Contact principal unique

  • Transfert de propriété

  • API endpoints : 8 endpoints

Frontend : Components Svelte (UnitOwners.svelte, OwnerList.svelte, modals)

Documentation : Multi-owner Support Guide

Multi-Role Support ✅

Issue : Implémenté

  • Table user_roles (user_id, organization_id, role)

  • Rôles : syndic, copropriétaire, comptable, administrateur

  • Rôle actif sélectionnable

  • Middleware AuthenticatedUser expose role_id

  • Endpoints : /auth/login, /auth/switch-role, /auth/me

Frontend : Sélecteur multi-rôle (Navigation.svelte)

Tests : E2E scénario multi-rôles + BDD

Documentation : Multi-role Support Guide

Comptabilité Belge (PCMN) ✅

Issue : #79 (COMPLÉTÉ)

  • Plan Comptable Minimum Normalisé (AR 12/07/2012)

  • ~90 comptes pré-seedés (8 classes)

  • Hiérarchie complète (classes, sous-classes, groupes)

  • Validation codes comptables

  • Domain entity : Account

  • Use cases : Create, Read, Update, Delete, Seed

  • Repository PostgreSQL

  • API endpoints : 7 endpoints

  • Financial reports : Bilan & Compte de résultats

Tests : 100% couverture domain + integration PostgreSQL

Documentation : Belgian Accounting - PCMN (Plan Comptable Minimum Normalisé)

Invoice Workflow ✅

Issue : #73 (COMPLÉTÉ)

  • Workflow : Draft → PendingApproval → Approved/Rejected

  • Gestion TVA belge (6%, 12%, 21%)

  • Multi-lignes (InvoiceLineItem)

  • Validation métier (empêche modification après approbation)

  • Domain entities : Expense, InvoiceLineItem

  • Endpoints : /expenses/:id/submit-for-approval, /approve, /reject

Tests : Scénarios BDD + E2E workflow

Documentation : Workflow Complet d’Encodage de Factures avec Approbation

Payment Recovery Workflow ✅

Issue : #83 (COMPLÉTÉ)

  • Workflow automatisé de recouvrement

  • 4 niveaux : Gentle (J+15) → Formal (J+30) → FinalNotice (J+45) → LegalAction (J+60)

  • Calcul pénalités retard (taux légal belge 8% annuel)

  • Traçabilité (sent_date, tracking_number, notes)

  • Domain entity : PaymentReminder

  • Use cases : Create, Escalate, MarkSent, Stats

  • Endpoints : 8 endpoints

Tests : Scénarios d’escalade + calcul pénalités

Documentation : Workflow de Recouvrement Automatisé des Paiements Impayés

Statistiques Globales (État Actuel)

Architecture & Code

  • 73 endpoints REST API

  • 11 entités du domaine

  • Architecture hexagonale

  • 100% open-source (AGPL-3.0) ✅

Tests & Qualité

  • 45+ scénarios E2E (Playwright) ✅

  • 100% couverture domain

  • Load tests (287 req/s, 99,74% uptime) ✅

  • Benchmarks (Criterion) ✅

Performance

  • 287 req/s soutenus ✅

  • 752ms latence P99 ✅

  • 0,12g CO₂/requête

  • 128MB RAM utilisée ✅

Infrastructure

  • VPS production (OVH GRA11) ✅

  • LUKS encryption

  • Backups GPG + S3

  • Monitoring/Alerting

  • IDS/WAF (Suricata + CrowdSec) ✅

Documentation

  • 50+ documents RST

  • Sphinx documentation

  • Tutoriels YouTube

  • RFC/ADR

Conclusion

KoproGo est déjà opérationnel et prêt pour les early adopters.

Les fondations techniques sont solides, l’architecture est mature, et la performance est validée en production.

Prochaine étape : Compléter Jalon 1 (GDPR + Auth forte) pour débloquer la beta publique (50-100 copropriétés).


Voir Aussi


Jalons Atteints - Documentation KoproGo ASBL

Dernière mise à jour : 2025-01-19