Skip to content

Plateforme blockchain d'investissement foncier au Maroc utilisant Hedera Hashgraph et smart contracts

License

Notifications You must be signed in to change notification settings

zakeelm6/LandChain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏠 LandChain - Plateforme Blockchain d'Investissement Foncier

LandChain est une plateforme innovante qui révolutionne l'investissement immobilier en utilisant la technologie blockchain Hedera Hashgraph. Elle permet de tokeniser des terrains, de démocratiser l'investissement et d'assurer une transparence totale grâce aux smart contracts.

License: MIT Node.js Next.js Hedera


✨ Fonctionnalités

🔐 Authentification & Sécurité

  • Système d'authentification JWT sécurisé
  • Vérification KYC intégrée
  • Protection des routes avec middleware
  • Gestion des sessions et refresh tokens

🏞️ Marketplace de Terrains

  • Navigation et filtrage des terrains disponibles
  • Achat/Vente de tokens de propriété
  • Visualisation sur carte interactive (Leaflet)
  • Suivi des investissements en temps réel

📊 Dashboard Investisseur

  • Portfolio d'investissements détaillé
  • Historique des transactions
  • Calcul automatique des ROI
  • Distribution des revenus locatifs

👨‍💼 Dashboard Administrateur

  • KPI en temps réel (Utilisateurs, Terrains, Transactions, Revenus)
  • Analytics et métriques de performance
  • Gestion des utilisateurs et KYC
  • SEO & Marketing tracking

🤖 Chatbot IA

  • Assistant intelligent 24/7
  • Base de connaissances FAQ
  • Questions rapides pré-configurées
  • Historique des conversations

🏗️ Architecture Technique

Stack Technologique

Frontend

  • Next.js 14 (React 18, TypeScript)
  • Tailwind CSS (Design dark/neon moderne)
  • HashConnect (Wallet Hedera)
  • React Leaflet (Cartes interactives)
  • Recharts (Graphiques)
  • SWR (Data fetching)
  • Zustand (State management)

Backend

  • Node.js + Express
  • PostgreSQL (Base de données relationnelle)
  • Redis (Cache & sessions)
  • JWT (Authentification)
  • Sequelize (ORM)
  • Winston (Logging)

Blockchain

  • Hedera Hashgraph (@hashgraph/sdk)
  • Smart Contracts Solidity
  • HashPack Wallet integration

DevOps

  • Docker & Docker Compose
  • PostgreSQL containerisé
  • Redis containerisé
  • Nginx (reverse proxy)

Structure du Projet

LandChain/
├── frontend/                # Next.js 14 Application
│   ├── app/                 # Pages Next.js (App Router)
│   │   ├── admin/          # Dashboard Admin
│   │   ├── dashboard/      # Dashboard Investisseur
│   │   ├── marketplace/    # Marketplace
│   │   ├── kyc/            # KYC Verification
│   │   ├── login/          # Authentification
│   │   └── terrains/       # Liste des terrains
│   ├── components/         # Composants React réutilisables
│   ├── contexts/           # React Contexts (Auth, etc.)
│   ├── hooks/              # Custom Hooks
│   ├── lib/                # Utilitaires & API client
│   └── types/              # TypeScript types
│
├── backend/                # Node.js Express API
│   ├── src/
│   │   ├── config/         # Configuration (DB, Redis, Hedera, JWT)
│   │   ├── controllers/    # Logique métier
│   │   ├── middleware/     # Auth, validation, rate limiting
│   │   ├── models/         # Modèles Sequelize
│   │   ├── routes/         # API Routes
│   │   └── services/       # Services (Email, KYC)
│   └── server.js
│
├── database/               # Scripts SQL & migrations
│   ├── init.sql           # Schema initial
│   └── migrations/        # Migrations DB
│
├── docker-compose.yml     # Configuration Docker
└── .env.docker.example    # Variables d'environnement


🚀 Installation & Démarrage

Prérequis

  • Node.js >= 18.0.0
  • npm >= 8.0.0
  • Docker & Docker Compose (recommandé)
  • Compte Hedera Testnet (pour le développement)

🐳 Démarrage avec Docker (Recommandé)

# 1. Cloner le repository
git clone https://github.com/zakeelm6/LandChain.git
cd LandChain

# 2. Copier et configurer les variables d'environnement
cp .env.docker.example .env.docker
# Éditer .env.docker avec vos credentials Hedera

# 3. Lancer l'application
docker-compose up --build

# L'application sera accessible sur:
# - Frontend: http://localhost:3000
# - Backend API: http://localhost:5000
# - PostgreSQL: localhost:5432
# - Redis: localhost:6379

💻 Démarrage sans Docker

# 1. Cloner le repository
git clone https://github.com/zakeelm6/LandChain.git
cd LandChain

# 2. Installer PostgreSQL et Redis localement

# 3. Configurer les variables d'environnement
cp .env.example .env
# Éditer .env avec vos credentials

# 4. Installer les dépendances
cd backend && npm install
cd ../frontend && npm install

# 5. Initialiser la base de données
psql -U postgres -f database/init.sql

# 6. Lancer le backend
cd backend && npm run dev

# 7. Lancer le frontend (dans un autre terminal)
cd frontend && npm run dev

🔑 Configuration

Variables d'Environnement

Backend (.env)

# Database
DATABASE_URL=postgresql://landchain:landchain123@localhost:5432/landchain

# Redis
REDIS_URL=redis://localhost:6379

# JWT
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
JWT_REFRESH_SECRET=your-super-secret-refresh-key
JWT_EXPIRES_IN=1h
JWT_REFRESH_EXPIRES_IN=7d

# Hedera
HEDERA_NETWORK=testnet
HEDERA_ACCOUNT_ID=0.0.xxxxx
HEDERA_PRIVATE_KEY=your-hedera-private-key
HEDERA_CONTRACT_ADDRESS=0.0.xxxxx

# Frontend
FRONTEND_URL=http://localhost:3000

# Email (optionnel pour notifications)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password

Frontend (.env.local)

NEXT_PUBLIC_API_URL=http://localhost:5000
NEXT_PUBLIC_HEDERA_NETWORK=testnet

📚 API Endpoints

Authentication

  • POST /api/auth/register - Inscription utilisateur
  • POST /api/auth/login - Connexion
  • POST /api/auth/logout - Déconnexion
  • POST /api/auth/refresh-token - Refresh token
  • GET /api/auth/me - Profil utilisateur

Terrains

  • GET /api/terrains - Liste des terrains (avec filtres)
  • GET /api/terrains/:id - Détails d'un terrain
  • GET /api/terrains/featured - Terrains en vedette
  • POST /api/terrains/:id/increment-views - Incrémenter les vues

Marketplace

  • GET /api/marketplace - Liste des annonces
  • POST /api/marketplace - Créer une annonce
  • POST /api/marketplace/buy - Acheter des tokens
  • DELETE /api/marketplace/:id - Annuler une annonce

Investisseur Dashboard

  • GET /api/investor/dashboard - Dashboard KPIs
  • GET /api/investor/portfolio - Portfolio d'investissements
  • GET /api/investor/revenues - Historique des revenus
  • GET /api/investor/transactions - Historique des transactions

Admin

  • GET /api/admin/dashboard/kpi - KPI dashboard admin
  • GET /api/admin/analytics - Analytics détaillées
  • GET /api/admin/users - Liste des utilisateurs
  • PUT /api/admin/users/:id - Modifier un utilisateur
  • GET /api/admin/seo - Métriques SEO

KYC

  • POST /api/kyc/submit - Soumettre un document KYC
  • POST /api/kyc/upload - Upload de document
  • GET /api/kyc/status - Statut KYC de l'utilisateur
  • POST /api/kyc/:id/approve - Approuver un KYC (admin)
  • POST /api/kyc/:id/reject - Rejeter un KYC (admin)

Chatbot

  • POST /api/chatbot/message - Envoyer un message
  • GET /api/chatbot/history - Historique des conversations

🧪 Tests & Développement

# Lancer les tests
npm test

# Lancer le linter
npm run lint

# Build de production
npm run build

# Vérification TypeScript
cd frontend && npm run type-check

📦 Déploiement

Docker Production

# Build et démarrage en mode production
docker-compose -f docker-compose.yml up --build -d

# Voir les logs
docker-compose logs -f

# Arrêter les services
docker-compose down

Variables d'Environnement Production

Assurez-vous de configurer correctement:

  • NODE_ENV=production
  • Clés JWT fortes et sécurisées
  • Credentials Hedera Mainnet
  • URL de base de données sécurisée
  • SMTP configuration pour les emails

🤝 Contribution

Les contributions sont les bienvenues ! Consultez CONTRIBUTING.md pour plus de détails.

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

📄 License

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


🌟 Roadmap

✅ Phase 1 - Complétée

  • ✅ Interface utilisateur dark/neon
  • ✅ Configuration Docker
  • ✅ Intégration HashConnect Wallet

✅ Phase 2 - Complétée

  • ✅ Système d'authentification JWT
  • ✅ Dashboard Admin avec KPI
  • ✅ Chatbot IA intelligent
  • ✅ SEO & Marketing tracking

✅ Phase 3 - Complétée

  • ✅ Dashboard Investisseur
  • ✅ Marketplace de tokens
  • ✅ Système KYC
  • ✅ API complète

🔄 Phase 4 - Smart Contracts & Production (En cours)

  • ⏳ Smart Contracts Hedera déployés
  • ⏳ Transactions blockchain réelles
  • ⏳ Distribution automatique des revenus
  • ⏳ Notifications en temps réel
  • ⏳ Tests end-to-end

🎯 Next Steps - Plan Technique

🔍 SEO & Optimisation (Priorité Haute)

SEO On-Page

  • Meta Tags Dynamiques - Implémenter metadata Next.js 14 pour chaque page
  • Schema.org Markup - Ajouter JSON-LD pour les terrains (RealEstateListing)
  • Sitemap.xml Dynamique - Générer automatiquement avec terrains
  • Robots.txt Optimisé - Configuration pour crawlers
  • Open Graph & Twitter Cards - Partage social optimisé
  • Canonical URLs - Éviter le contenu dupliqué
  • Image Optimization - Next.js Image avec lazy loading

SEO Technique

  • Core Web Vitals - Optimiser LCP, FID, CLS
  • Server-Side Rendering - Convertir pages clés en SSR
  • ISR (Incremental Static Regeneration) - Pour liste des terrains
  • Compression GZIP/Brotli - Configuration Nginx
  • CDN Integration - Cloudflare ou Vercel Edge
  • AMP Pages - Version mobile ultra-rapide (optionnel)

SEO Content

  • Blog Section - Articles sur investissement foncier
  • Landing Pages - Par ville/région
  • FAQ Schema - Questions fréquentes avec markup
  • Rich Snippets - Étoiles, prix, disponibilité
  • Internal Linking - Structure de liens optimisée

🤖 Automatisation & CI/CD

Pipeline CI/CD

# Workflow proposé: .github/workflows/main.yml

1. Tests Automatiques
   - Unit tests (Jest)
   - Integration tests (Supertest)
   - E2E tests (Playwright/Cypress)
   - Code coverage (>80%)

2. Quality Checks
   - ESLint (code quality)
   - Prettier (formatting)
   - TypeScript strict mode
   - Security audit (npm audit, Snyk)

3. Build & Deploy
   - Docker build optimization
   - Multi-stage builds
   - Deploy staging (auto)
   - Deploy production (manual approval)

4. Monitoring
   - Error tracking (Sentry)
   - Performance monitoring (New Relic)
   - Uptime monitoring (UptimeRobot)
   - Log aggregation (Datadog/ELK)

Automatisation Backend

  • Cron Jobs - Distribution revenus automatique
  • Email Automation - Notifications transactionnelles
  • KYC Auto-Verification - Intégration service tiers (Onfido, Sumsub)
  • Backup Automatique - PostgreSQL dump quotidien
  • Cache Invalidation - Redis auto-refresh
  • Health Checks - API monitoring (每5min)
  • Database Migrations - Sequelize auto-migration en prod

Automatisation Frontend

  • Image Optimization Pipeline - WebP conversion automatique
  • Bundle Analysis - Rapport taille webpack automatique
  • Lighthouse CI - Score performance sur chaque PR
  • Visual Regression Testing - Percy.io ou Chromatic
  • Dependency Updates - Renovate/Dependabot
  • TypeScript Strict Checks - Mode strict progressif

📊 Analytics & Tracking

Tracking Implémentation

  • Google Analytics 4 - Événements personnalisés
  • Google Tag Manager - Gestion tags centralisée
  • Hotjar/Clarity - Heatmaps & session recording
  • Mixpanel - Product analytics
  • Conversion Tracking - Funnels d'achat
  • A/B Testing - Optimizely ou VWO

Custom Events

// Événements clés à tracker
- Inscription utilisateur
- Connexion réussie
- Vue terrain (avec durée)
- Ajout au panier
- Achat tokens (montant, terrain_id)
- KYC submission
- Chatbot interactions
- Recherche marketplace
- Partage social

🔐 Sécurité & Conformité

Sécurité Avancée

  • Rate Limiting Avancé - Par endpoint et par IP
  • CAPTCHA - reCAPTCHA v3 sur formulaires critiques
  • 2FA/MFA - Authentification à deux facteurs
  • Audit Logs - Traçabilité complète des actions admin
  • Encryption at Rest - Chiffrement données sensibles
  • WAF (Web Application Firewall) - Cloudflare ou AWS WAF
  • Penetration Testing - Tests sécurité trimestriels

Conformité Légale

  • RGPD/GDPR - Cookie consent, right to erasure
  • CGU/CGV - Conditions générales
  • Politique de Confidentialité - Privacy policy
  • KYC/AML Compliance - Anti-blanchiment
  • Cookie Banner - Gestion consentement (Axeptio, OneTrust)

🚀 Performance & Scalabilité

Optimisations Backend

  • Database Indexing - Index sur colonnes fréquentes
  • Query Optimization - Analyse slow queries
  • Connection Pooling - PgBouncer
  • Load Balancing - Nginx ou HAProxy
  • Horizontal Scaling - Multi-instances backend
  • Microservices Architecture - Séparation services (optionnel)
  • Message Queue - RabbitMQ/Bull pour jobs async

Optimisations Frontend

  • Code Splitting - Dynamic imports
  • Tree Shaking - Éliminer code mort
  • Prefetching - <link rel="prefetch">
  • Service Worker - Offline support (PWA)
  • WebP/AVIF Images - Formats modernes
  • Font Optimization - Subsetting, variable fonts
  • Critical CSS - Inline above-the-fold CSS

📱 Extensions Futures

Nouvelles Fonctionnalités

  • App Mobile - React Native (iOS + Android)
  • Notifications Push - Firebase Cloud Messaging
  • Wallet Intégré - Portefeuille Hedera natif
  • Staking - Staking de tokens pour rewards
  • Referral Program - Programme de parrainage
  • Marketplace Secondaire - P2P trading avancé
  • Virtual Tours - Visites 3D des terrains
  • DAO Governance - Vote communautaire

Intégrations

  • Payment Gateways - Stripe, PayPal (fiat)
  • DEX Integration - Échange tokens sur DEX
  • Oracle Price Feeds - Prix terrains en temps réel
  • Document Verification - OCR automatique
  • Geolocation API - Terrains par proximité
  • Weather API - Impact météo sur valorisation

🛠️ Workflow de Développement Recommandé

Git Workflow

main (production)
  ├── develop (staging)
  │   ├── feature/seo-optimization
  │   ├── feature/ci-cd-pipeline
  │   ├── feature/analytics-tracking
  │   └── hotfix/security-patch

Convention de Commits

feat: Nouvelle fonctionnalité
fix: Correction de bug
docs: Documentation
style: Formatage (sans changement de code)
refactor: Refactoring
perf: Amélioration performance
test: Ajout de tests
chore: Maintenance
ci: Configuration CI/CD

Pull Request Process

  1. Branch depuis develop - git checkout -b feature/my-feature
  2. Développement - Commits atomiques avec messages clairs
  3. Tests locaux - Tous les tests passent
  4. Push & PR - Créer PR vers develop
  5. Code Review - Au moins 1 approbation
  6. CI Checks - Tous les checks passent (lint, tests, build)
  7. Merge - Squash and merge
  8. Deploy Staging - Auto-deploy sur staging
  9. QA Testing - Tests manuels si nécessaire
  10. Production - Merge develop → main (après validation)

Code Review Checklist

  • Code suit les standards du projet
  • Tests unitaires présents et passent
  • Pas de code commenté
  • Pas de console.log en production
  • Variables d'environnement utilisées
  • Gestion d'erreurs appropriée
  • Documentation à jour
  • Performance optimale
  • Sécurité vérifiée (pas de failles)
  • Responsive design vérifié

📈 Métriques de Succès

KPIs Techniques

  • Uptime: >99.9%
  • API Response Time: <200ms (p95)
  • Page Load Time: <2s (LCP)
  • Core Web Vitals: Tout en vert
  • Test Coverage: >80%
  • Lighthouse Score: >90/100
  • Error Rate: <0.1%

KPIs Business

  • Nombre d'utilisateurs actifs (MAU)
  • Taux de conversion (visiteur → achat)
  • Valeur moyenne transaction
  • Taux de rétention (30j, 90j)
  • NPS (Net Promoter Score)
  • CAC (Coût d'Acquisition Client)
  • LTV (Lifetime Value)

🙏 Remerciements


Made with ❤️ by LandChain Team

About

Plateforme blockchain d'investissement foncier au Maroc utilisant Hedera Hashgraph et smart contracts

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published