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.
- Cloner le projet
git clone https://github.com/Glodi-K/AgroDeFi.git
cd AgroDeFi- Backend
cd microcredit-backend
npm install- Frontend
cd ../microcredit-frontend
npm install- Démarrer MongoDB (port 27017)
- Démarrer Ganache (port 7545)
cd microcredit-backend
ganache-start.bat- Configurer la blockchain
node setup-roles.js- Backend
cd microcredit-backend
npm startServeur: http://localhost:3000
- Frontend
cd microcredit-frontend
npm run devApplication: http://localhost:5173
- Frontend: React, TypeScript, Vite, TailwindCSS
- Backend: Node.js, Express, MongoDB
- Blockchain: Ethereum, Ethers.js, Ganache
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
- Créer des demandes de prêt
- Suivre l'état des demandes
- Gérer les remboursements
- Consulter l'historique
- Investir dans la plateforme
- Consulter les rendements
- Suivre les investissements
- Accorder des prêts directement
- Suivre les remboursements
- Gérer le portefeuille
- Gérer les utilisateurs
- Approuver/rejeter les prêts
- Consulter les statistiques
- Gérer le portefeuille d'entreprise
- 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
- 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
POST /inscription- Créer un comptePOST /connexion- Se connecter
POST /pret- Créer une demandeGET /prets- Lister les prêtsPUT /pret/:id- Modifier un prêtDELETE /pret/:id- Supprimer un prêtPOST /pret/:id/valider- Valider sur blockchain
POST /api/invest-company- Créer un investissementGET /api/investments- Lister les investissementsPOST /api/repay-investment- Rembourser un investissement
GET /analyse/statistiques- Statistiques globalesGET /analyse/performances- Performances de remboursementGET /analyse/rapport/:mois/:annee- Rapport mensuel
cd microcredit-backend
npm testTests disponibles:
- Portefeuille et crédits
- Remboursements
- Calculs financiers
- Notifications
-
MongoDB non connecté
- Vérifier que MongoDB est démarré
- Port par défaut: 27017
-
Ganache non accessible
- Lancer
ganache-start.bat - Port par défaut: 7545
- Lancer
-
Erreurs blockchain
- Redémarrer Ganache
- Relancer
node setup-roles.js
-
Port déjà utilisé
- Backend: modifier le port dans
index.js - Frontend: modifier dans
vite.config.ts
- Backend: modifier le port dans
- Backend: Créer le modèle dans
models/ - API: Ajouter les routes dans
index.js - Frontend: Créer le service dans
services/api.ts - UI: Ajouter les composants et pages
- Tests: Ajouter les tests unitaires
feat: nouvelle fonctionnalité
fix: correction de bug
docs: documentation
style: formatage
refactor: refactorisation
test: ajout de tests
- Fork le projet
- Créer une branche (
git checkout -b feature/nouvelle-fonctionnalite) - Commit (
git commit -m 'feat: ajouter nouvelle fonctionnalité') - Push (
git push origin feature/nouvelle-fonctionnalite) - Ouvrir une Pull Request
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