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
Organization
User (avec multi-role support)
Building
Unit
Owner
UnitOwner (relation N-N avec pourcentages)
Expense (avec workflow approval)
InvoiceLineItem (lignes de facturation + TVA)
Meeting
Document
Account (PCMN belge)
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 À Venir - Ce qui vient ensuite
Roadmap KoproGo 2025-2030 - Roadmap complète 2025-2030
Rapport de Performance et Capacité - KoproGo ASBL - Rapport de performance détaillé
Jalons Atteints - Documentation KoproGo ASBL
Dernière mise à jour : 2025-01-19