4NK_IA_back/CONTRIBUTING.md
root 5d8ad901d1 Initial commit: Pipeline notarial complet
- Infrastructure complète de traitement de documents notariaux
- API FastAPI d'ingestion et d'orchestration
- Pipelines Celery pour le traitement asynchrone
- Support des formats PDF, JPEG, PNG, TIFF, HEIC
- OCR avec Tesseract et correction lexicale
- Classification automatique des documents avec Ollama
- Extraction de données structurées
- Indexation dans AnythingLLM et OpenSearch
- Système de vérifications et contrôles métier
- Base de données PostgreSQL pour le métier
- Stockage objet avec MinIO
- Base de données graphe Neo4j
- Recherche plein-texte avec OpenSearch
- Supervision avec Prometheus et Grafana
- Scripts d'installation pour Debian
- Documentation complète
- Tests unitaires et de performance
- Service systemd pour le déploiement
- Scripts de déploiement automatisés
2025-09-08 22:05:22 +02:00

3.8 KiB

Guide de contribution

Merci de votre intérêt pour contribuer au Pipeline Notarial ! Ce document explique comment contribuer au projet.

Comment contribuer

Signaler un bug

  1. Vérifiez que le bug n'a pas déjà été signalé dans les issues
  2. Créez une nouvelle issue avec le label "bug"
  3. Incluez :
    • Description détaillée du problème
    • Étapes pour reproduire
    • Environnement (OS, version Docker, etc.)
    • Logs d'erreur si disponibles

Proposer une fonctionnalité

  1. Vérifiez que la fonctionnalité n'a pas déjà été proposée
  2. Créez une nouvelle issue avec le label "enhancement"
  3. Décrivez :
    • Le problème que cela résout
    • La solution proposée
    • Les cas d'usage
    • Les considérations techniques

Contribuer au code

  1. Fork le projet
  2. Créez une branche feature (git checkout -b feature/ma-fonctionnalite)
  3. Committez vos changements (git commit -am 'Ajout de ma fonctionnalité')
  4. Poussez vers la branche (git push origin feature/ma-fonctionnalite)
  5. Ouvrez une Pull Request

Standards de code

Python

  • Respectez PEP 8
  • Utilisez des docstrings pour les fonctions et classes
  • Ajoutez des tests pour les nouvelles fonctionnalités
  • Utilisez des noms de variables explicites

Docker

  • Utilisez des images officielles quand possible
  • Optimisez la taille des images
  • Documentez les variables d'environnement
  • Utilisez des tags de version spécifiques

Documentation

  • Mettez à jour le README si nécessaire
  • Documentez les nouvelles API
  • Ajoutez des exemples d'usage
  • Utilisez un français correct

Tests

Tests unitaires

# Installation des dépendances de test
pip install pytest pytest-cov

# Exécution des tests
pytest tests/

# Avec couverture
pytest --cov=services tests/

Tests d'intégration

# Démarrage de l'environnement de test
docker compose -f docker-compose.test.yml up -d

# Exécution des tests d'intégration
pytest tests/integration/

# Nettoyage
docker compose -f docker-compose.test.yml down -v

Tests de performance

# Installation de Locust
pip install locust

# Exécution des tests de performance
locust -f tests/performance/locustfile.py --host=http://localhost

Processus de review

  1. Automatique : Les tests doivent passer
  2. Manuel : Au moins un reviewer doit approuver
  3. Critères :
    • Code lisible et bien documenté
    • Tests appropriés
    • Pas de régression
    • Respect des standards

Environnement de développement

Prérequis

  • Docker et Docker Compose
  • Python 3.11+
  • Git
  • Make

Configuration

  1. Clonez le projet
  2. Copiez la configuration :
    cp infra/.env.example infra/.env
    
  3. Modifiez les variables selon vos besoins
  4. Démarrez l'environnement :
    make bootstrap
    

Structure du projet

notariat-pipeline/
├── docker/           # Dockerfiles
├── infra/           # Configuration Docker Compose
├── ops/             # Scripts d'installation et seeds
├── services/        # Code applicatif
│   ├── host_api/    # API FastAPI
│   ├── worker/      # Pipelines Celery
│   └── charts/      # Dashboards Grafana
└── tests/           # Tests automatisés

Communication

  • Issues : Pour les bugs et fonctionnalités
  • Discussions : Pour les questions générales
  • Pull Requests : Pour les contributions de code

Code de conduite

Ce projet suit le Code de Conduite Contributor Covenant. En participant, vous acceptez de respecter ce code.

Licence

En contribuant, vous acceptez que vos contributions soient sous la licence MIT du projet.

Questions ?

N'hésitez pas à ouvrir une issue pour toute question sur le processus de contribution.