Skip to content

Prospecteur d'Entreprises Enrichi est une application complète pour la recherche et l'analyse d'entreprises françaises.

Notifications You must be signed in to change notification settings

Rominaurdel/ProspectIQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProspectIQ

Intelligence de prospection d'entreprises - Application web pour rechercher, analyser et exporter les données d'entreprises françaises avec intelligence financière intégrée.

🎯 Fonctionnalités

  • Recherche avancée : Recherche d'entreprises par ville, code postal, rue ou nom d'entreprise via l'API INSEE Sirene officielle
  • Enrichissement financier automatique : Scores de solvabilité, évaluation des risques, estimation de croissance et classification de viabilité
  • Enrichissement IA optionnel : Intégration DeepSeek pour des analyses détaillées des entreprises
  • Export CSV enrichi : Export avec jusqu'à 25 colonnes de données enrichies
  • Système de cache intelligent : Cache en mémoire et sur disque pour optimiser les performances
  • Streaming temps réel : Affichage des résultats en temps réel via WebSocket
  • Filtres avancés : Filtrage par effectif, secteur, score, risque, viabilité, CA, croissance
  • Interface moderne : Design sobre et professionnel adapté aux entreprises B2B

🚀 Installation

Prérequis

Installation des dépendances

npm install

Configuration

  1. Copiez le fichier env.example en .env :
cp env.example .env
  1. Éditez le fichier .env et configurez vos clés API :
# Port du serveur
PORT=3000

# API INSEE Sirene (OBLIGATOIRE)
INSEE_API_KEY=your_insee_api_key_here
INSEE_API_BASE_URL=https://api.insee.fr/api-sirene/3.11

# API DeepSeek (OPTIONNEL)
DEEPSEEK_API_KEY=your_deepseek_api_key_here
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_ENABLED=true

# Configuration DeepSeek
DEEPSEEK_BATCH_SIZE=50
DEEPSEEK_DELAY_MS=1000
DEEPSEEK_MAX_RETRIES=3

# Limites de sécurité
MAX_COMPANIES=50000
MAX_PAGES=50
WARN_THRESHOLD=10000

# Configuration du cache (en heures)
CACHE_MAX_AGE_HOURS=24

📖 Utilisation

Démarrage du serveur

# Mode production
npm start

# Mode développement (avec nodemon)
npm run dev

L'application sera accessible sur http://localhost:3000

Utilisation de l'interface web

  1. Ouvrez votre navigateur et accédez à http://localhost:3000
  2. Utilisez l'onglet Recherche Optimisée pour rechercher par :
    • Ville
    • Code postal
    • Nom de rue
    • Nom d'entreprise
  3. Configurez les filtres avancés selon vos besoins
  4. Lancez la recherche et visualisez les résultats en temps réel
  5. Exportez les résultats en CSV depuis la section "Fichiers CSV générés"

Utilisation de l'API

Recherche optimisée

curl -X POST http://localhost:3000/search-optimized \
  -H "Content-Type: application/json" \
  -d '{
    "postalCode": "75001",
    "filters": {
      "maxCompanies": 1000,
      "scoreMin": 60,
      "effectifMin": 10
    }
  }'

Recherche avec streaming WebSocket

curl -X POST http://localhost:3000/search-stream \
  -H "Content-Type: application/json" \
  -d '{
    "location": "Paris",
    "filters": {
      "maxCompanies": 5000
    },
    "socketId": "your_socket_id"
  }'

📁 Structure du projet

prospectiq/
├── server.js              # Serveur Express principal
├── package.json           # Dépendances et scripts
├── .env                   # Variables d'environnement (à créer)
├── env.example            # Exemple de configuration
├── .gitignore            # Fichiers ignorés par Git
├── README.md             # Documentation
├── public/               # Fichiers statiques
│   ├── index.html        # Interface utilisateur
│   ├── style.css         # Styles
│   └── script.js         # Logique frontend
├── cache/                # Cache sur disque (généré automatiquement)
└── exports/              # Fichiers CSV exportés (généré automatiquement)

🔧 Configuration avancée

Variables d'environnement

Variable Description Défaut Obligatoire
PORT Port du serveur 3000 Non
INSEE_API_KEY Clé API INSEE Sirene - Oui
INSEE_API_BASE_URL URL de base de l'API INSEE https://api.insee.fr/api-sirene/3.11 Non
DEEPSEEK_API_KEY Clé API DeepSeek - Non
DEEPSEEK_ENABLED Activer DeepSeek true Non
DEEPSEEK_BATCH_SIZE Taille des lots DeepSeek 50 Non
DEEPSEEK_DELAY_MS Délai entre lots (ms) 1000 Non
MAX_COMPANIES Limite max d'entreprises 50000 Non
MAX_PAGES Limite max de pages API 50 Non
CACHE_MAX_AGE_HOURS Durée de validité du cache 24 Non

Limites de sécurité

L'application inclut des limites de sécurité configurables pour éviter les surcharges :

  • MAX_COMPANIES : Limite maximale d'entreprises par recherche (défaut: 50000)
  • MAX_PAGES : Limite maximale de pages API par recherche (défaut: 50)
  • WARN_THRESHOLD : Seuil d'avertissement pour les gros volumes (défaut: 10000)

📊 Format d'export CSV

Les fichiers CSV exportés contiennent les colonnes suivantes :

  1. SIRET
  2. SIREN
  3. Dénomination
  4. Code NAF
  5. Secteur d'activité
  6. Adresse complète
  7. Code postal
  8. Commune
  9. Nombre d'employés
  10. Date de création
  11. Ancienneté (années)
  12. Score de solvabilité (/100)
  13. Classe de risque
  14. Note de crédit
  15. Viabilité
  16. Croissance estimée
  17. CA estimé (€)
  18. État administratif
  19. Catégorie juridique 20-25. Colonnes DeepSeek (si enrichissement IA activé)

🔒 Sécurité

  • Aucune clé API en dur : Toutes les clés API sont stockées dans des variables d'environnement
  • Fichier .env ignoré : Le fichier .env est exclu du contrôle de version via .gitignore
  • Limites de sécurité : Protection contre les requêtes excessives
  • Validation des entrées : Validation des paramètres de recherche

🛠️ Technologies utilisées

  • Backend : Node.js, Express.js
  • WebSocket : Socket.IO pour le streaming temps réel
  • HTTP Client : Axios pour les requêtes API
  • CSV : csv-writer pour l'export
  • Frontend : HTML5, CSS3, JavaScript vanilla
  • APIs externes :
    • INSEE Sirene (données officielles)
    • DeepSeek (enrichissement IA optionnel)

📝 API Endpoints

Recherche

  • POST /search-optimized - Recherche optimisée (recommandé)
  • POST /search-stream - Recherche avec streaming WebSocket

Gestion des fichiers

  • GET /exports - Liste des fichiers CSV générés
  • GET /download/:filename - Télécharger un fichier CSV

Informations

  • GET / - Page d'accueil de l'API avec documentation

🤝 Contribution

Les contributions sont les bienvenues ! Pour contribuer :

  1. Fork le projet
  2. Créez une branche pour votre fonctionnalité (git checkout -b feature/AmazingFeature)
  3. Committez vos changements (git commit -m 'Add some AmazingFeature')
  4. Push vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

⚠️ Avertissements

  • API INSEE : Respectez les limites de taux de l'API INSEE Sirene
  • DeepSeek : L'enrichissement IA peut consommer des crédits API. Surveillez votre quota.
  • Cache : Le cache est valide pendant 24h par défaut. Ajustez CACHE_MAX_AGE_HOURS selon vos besoins.
  • Limites : Les limites de sécurité sont importantes pour éviter les surcharges. Ne les désactivez pas sans précaution.

📞 Support

Pour toute question ou problème, veuillez ouvrir une issue sur GitHub.

🙏 Remerciements

  • INSEE pour l'API Sirene officielle
  • DeepSeek pour l'API d'enrichissement IA
  • La communauté open source pour les outils utilisés

ProspectIQ - Intelligence de prospection d'entreprises © 2025

About

Prospecteur d'Entreprises Enrichi est une application complète pour la recherche et l'analyse d'entreprises françaises.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published