Skip to content
@ia-project-org

ia-project.org


AI-Driven Credit Eligibility Evaluation and Recommendation System

Automatiser l'évaluation de l'éligibilité des clients aux crédits en utilisant l'intelligence artificielle pour des décisions rapides et personnalisées.


screenshot

🌐 Overview

Credify est une solution innovante développée pour moderniser et automatiser le processus d'évaluation et d'attribution des crédits bancaires. Cette plateforme intègre des technologies de pointe en intelligence artificielle pour révolutionner la manière dont les institutions financières évaluent les demandes de crédit et accompagnent leurs clients.

🎯 Objectifs du Projet

  • 🤖 Automatisation Intelligente: Évaluation automatique de l'éligibilité au crédit via machine learning
  • 🛡️ Gestion des Risques: Minimisation des risques financiers grâce à une analyse approfondie
  • 💡 Recommandations Personnalisées: Suggestions adaptées aux profils clients
  • 🎯 Efficacité Opérationnelle: Interface intuitive pour les agents bancaires

🔧 Technologies Utilisées

🎯 Backend

  • 🍃 Spring Boot: Framework principal pour les microservices
  • 🐍 Python/Django: Traitement des données et modèles ML
  • 🔄 Spring Batch: Traitement des données par lots
  • 🔐 Keycloak: Gestion de l'authentification et autorisation

💻 Frontend

  • ⚛️ React: Interface utilisateur moderne et responsive
  • 🎨 Material-UI: Composants UI élégants

🔨 Architecture & Outils

  • 🏗️ Architecture Microservices: Architecture distribuée pour une meilleure scalabilité
  • 🔍 Eureka: Découverte dynamique des services
  • 🌐 API Gateway: Gestion centralisée des requêtes et sécurité
  • Config Server: Configuration externalisée sur GitHub

🚀 CI/CD & Qualité du Code

  • ⚙️ Jenkins: Automatisation des pipelines d'intégration et de déploiement continus
  • 📊 SonarQube: Analyse statique du code pour assurer la qualité et la sécurité
  • 🐳 Docker: Conteneurisation des applications pour une portabilité et une reproductibilité optimales
  • ☸️ Kubernetes: Orchestration des conteneurs pour un déploiement scalable et résilient

🏗️ Architecture du Système

Notre système est basé sur une architecture microservices moderne comprenant:

  • API Gateway: Point d'entrée centralisé
  • Service d'Éligibilité: Évaluation des demandes de crédit
  • Service Bancaire: Gestion des opérations bancaires
  • IAM Keycloak: Gestion des identités et accès
  • Eureka Server: Découverte de services
  • Configuration Externe: Gestion centralisée des configurations
flowchart TD
    Keycloak[Keycloak IAM 🔑]
    ReactClient[React Client 💻]
    APIGateway[API Gateway 🌐]
    Eureka[Eureka Discovery Server 🔍]
    Config[Server Config ⚙️]
    ConfigExternal[Configuration External 📄]
    EligibilityMS[Eligibility-MS 🏦]
    BankMS[Bank-MS 💳]
    EligibilityModel[Eligibility Model 📊]
    RecommendationModel[Recommendation Model 🤖]

  

    Keycloak --> ReactClient
    ReactClient --> APIGateway
    APIGateway --> EligibilityMS
    APIGateway --> BankMS
    EligibilityMS --> EligibilityModel
    EligibilityMS --> RecommendationModel
    BankMS --> EligibilityMS
    APIGateway --> Eureka
    Config --> ConfigExternal
    Eureka --> EligibilityMS
    Eureka --> BankMS
    Eureka --> APIGateway
    Config --> Eureka
Loading

🚀 Installation et Démarrage

📋 Prérequis

  • ☕ Java JDK 17+
  • 📦 Node.js 18+
  • 🐳 Docker & Docker Compose
  • 🛠️ Git
  • 🌐 GitHub Account
  • 🔑 Keycloak

1️⃣ Configuration GitHub et Config Server

# Cloner le repository de configuration
git clone https://github.com/ia-project-org/ConfigServer.git

# Créer les fichiers de configuration pour chaque service
cd config-server-repo

# Exemple pour eligibility-service.yml
spring:
  application:
    name: eligibility-service
  datasource:
    url: jdbc:postgresql://localhost:5432/eligibility_db
    username: ${DB_USERNAME}
    password: ${DB_PASSWORD}

# Exemple pour bank-service.yml
spring:
  application:
    name: bank-service
  datasource:
    url: jdbc:postgresql://localhost:5432/bank_db
    username: ${DB_USERNAME}
    password: ${DB_PASSWORD}

# Pousser les configurations
git add .
git commit -m "Initial config files"
git push

2️⃣ Configuration de Keycloak

# Démarrer Keycloak avec Docker
docker-compose up -d keycloak

# Accéder à l'interface admin: http://localhost:8080/auth

# 1. Créer un nouveau realm 'banking-app'
# 2. Créer les clients:
#   - frontend-app (public)
# 3. Configurer les rôles:
#   - ROLE_AGENT
# 4. Créer les utilisateurs de test

3️⃣ Configuration des Variables d'Environnement

Pour le Backend (.env):

# Config Server
CONFIG_SERVER_URI=http://localhost:8888
CONFIG_SERVER_USERNAME=root
CONFIG_SERVER_PASSWORD=secret

# Database
DB_USERNAME=postgres
DB_PASSWORD=secret
DB_HOST=localhost
DB_PORT=5432

# Keycloak
KEYCLOAK_AUTH_SERVER_URL=http://localhost:8080/auth
KEYCLOAK_REALM=banking-app
KEYCLOAK_RESOURCE=eligibility-service
KEYCLOAK_SECRET=your-client-secret

Pour le Frontend (.env):

VITE_API_URL=url de gateway
VITE_PUBLIC_KEYCLOAK_REALM=e-banking
VITE_PUBLIC_KEYCLOAK_CLIENT_ID=e-banking-rest-api
VITE_PUBLIC_KEYCLOAK_CLIENT_SECRET=votre-scret
VITE_PUBLIC_KEYCLOAK_URL=http://localhost:8080

⚠️ Notes Importantes

  • Vérifiez que les ports ne sont pas déjà utilisés
  • Les fichiers .env ne doivent jamais être commités dans le repository
  • Gardez les secrets Keycloak en sécurité

🌟 Remerciements

  • 🙏 Merci à tous les contributeurs
  • 💪 Construit avec une stack technologique moderne
  • 🚀 Propulsé par Spring Boot et React

⭐ N'oubliez pas de donner une étoile à ce dépôt si vous le trouvez utile !


Made with ❤️ in Morocco

Popular repositories Loading

  1. Credit-eligibility-model-recommendation-system Credit-eligibility-model-recommendation-system Public

    Jupyter Notebook 1

  2. IaProject IaProject Public

    Java

  3. react-app react-app Public

    JavaScript

  4. ReactApp ReactApp Public

    TypeScript

  5. config-repo config-repo Public

  6. eureka-server-discovery eureka-server-discovery Public

    Java

Repositories

Showing 10 of 13 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…