Skip to content

Glodi-K/AgroDeFi

Repository files navigation

AgroDeFi - Plateforme de Microfinance Agricole

AgroDeFi est une plateforme de microfinance décentralisée qui connecte les agriculteurs avec des financeurs et des prêteurs pour faciliter l'accès au financement agricole.

🚀 Démarrage Rapide

Prérequis

Installation

  1. Cloner le projet
git clone https://github.com/Glodi-K/AgroDeFi.git
cd AgroDeFi
  1. Backend
cd microcredit-backend
npm install
  1. Frontend
cd ../microcredit-frontend
npm install

Configuration

  1. Démarrer MongoDB (port 27017)
  2. Démarrer Ganache (port 7545)
cd microcredit-backend
ganache-start.bat
  1. Configurer la blockchain
node setup-roles.js

Lancement

  1. Backend
cd microcredit-backend
npm start

Serveur: http://localhost:3000

  1. Frontend
cd microcredit-frontend
npm run dev

Application: http://localhost:5173

🏗️ Architecture

Technologies

  • Frontend: React, TypeScript, Vite, TailwindCSS
  • Backend: Node.js, Express, MongoDB
  • Blockchain: Ethereum, Ethers.js, Ganache

Structure

AgroDeFi/
├── microcredit-backend/     # API REST et logique métier
│   ├── models/              # Modèles MongoDB
│   ├── contracts/           # Smart contracts Solidity
│   └── tests/               # Tests unitaires
├── microcredit-frontend/    # Interface utilisateur React
│   ├── components/          # Composants réutilisables
│   ├── pages/               # Pages principales
│   ├── services/            # Services API
│   └── context/             # Contextes React
└── Contracts/               # Contrats Remix

👥 Types d'Utilisateurs

Agriculteur

  • Créer des demandes de prêt
  • Suivre l'état des demandes
  • Gérer les remboursements
  • Consulter l'historique

Financeur

  • Investir dans la plateforme
  • Consulter les rendements
  • Suivre les investissements

Prêteur

  • Accorder des prêts directement
  • Suivre les remboursements
  • Gérer le portefeuille

Admin

  • Gérer les utilisateurs
  • Approuver/rejeter les prêts
  • Consulter les statistiques
  • Gérer le portefeuille d'entreprise

🔧 Fonctionnalités

✅ Implémentées

  • Authentification JWT avec bcrypt
  • CRUD complet des prêts
  • Système d'investissement
  • Intégration blockchain (Ganache)
  • Notifications email
  • Tableaux de bord par rôle
  • Analyses et statistiques
  • Remboursements avec tracking

🔒 Sécurité

  • Hachage des mots de passe (bcrypt)
  • Tokens JWT avec expiration
  • Routes protégées par rôle
  • Validation des données
  • Gestion d'erreurs structurée

📊 API Endpoints

Authentification

  • POST /inscription - Créer un compte
  • POST /connexion - Se connecter

Prêts

  • POST /pret - Créer une demande
  • GET /prets - Lister les prêts
  • PUT /pret/:id - Modifier un prêt
  • DELETE /pret/:id - Supprimer un prêt
  • POST /pret/:id/valider - Valider sur blockchain

Investissements

  • POST /api/invest-company - Créer un investissement
  • GET /api/investments - Lister les investissements
  • POST /api/repay-investment - Rembourser un investissement

Analyses

  • GET /analyse/statistiques - Statistiques globales
  • GET /analyse/performances - Performances de remboursement
  • GET /analyse/rapport/:mois/:annee - Rapport mensuel

🧪 Tests

cd microcredit-backend
npm test

Tests disponibles:

  • Portefeuille et crédits
  • Remboursements
  • Calculs financiers
  • Notifications

🔧 Dépannage

Problèmes courants

  1. MongoDB non connecté

    • Vérifier que MongoDB est démarré
    • Port par défaut: 27017
  2. Ganache non accessible

    • Lancer ganache-start.bat
    • Port par défaut: 7545
  3. Erreurs blockchain

    • Redémarrer Ganache
    • Relancer node setup-roles.js
  4. Port déjà utilisé

    • Backend: modifier le port dans index.js
    • Frontend: modifier dans vite.config.ts

📝 Développement

Ajouter une nouvelle fonctionnalité

  1. Backend: Créer le modèle dans models/
  2. API: Ajouter les routes dans index.js
  3. Frontend: Créer le service dans services/api.ts
  4. UI: Ajouter les composants et pages
  5. Tests: Ajouter les tests unitaires

Structure des commits

feat: nouvelle fonctionnalité
fix: correction de bug
docs: documentation
style: formatage
refactor: refactorisation
test: ajout de tests

🤝 Contribution

  1. Fork le projet
  2. Créer une branche (git checkout -b feature/nouvelle-fonctionnalite)
  3. Commit (git commit -m 'feat: ajouter nouvelle fonctionnalité')
  4. Push (git push origin feature/nouvelle-fonctionnalite)
  5. Ouvrir une Pull Request

📞 Support

Pour toute question ou problème:

  • Ouvrir une issue sur GitHub
  • Consulter la documentation dans /docs
  • Vérifier les logs dans la console

Version: 1.0.0
Dernière mise à jour: 14/08/2025

About

Plateforme de microcrédit agricole basée sur la blockchain

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors