
- 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
159 lines
3.8 KiB
Markdown
159 lines
3.8 KiB
Markdown
# 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](https://github.com/4nkweb/notariat-pipeline/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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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 :
|
|
```bash
|
|
cp infra/.env.example infra/.env
|
|
```
|
|
3. Modifiez les variables selon vos besoins
|
|
4. Démarrez l'environnement :
|
|
```bash
|
|
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](CODE_OF_CONDUCT.md). 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.
|