Skip to content

PoC-Community/pool2025-p2p-rush-solidarity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Solidarity - Plateforme de Crowdfunding Décentralisée

📝 Description

CrowdChain est un système de crowdfunding décentralisé permettant de créer des levées de fonds avec récompenses NFT et tokens pour les contributeurs.


🎯 Fonctionnalités Clés

  • 💫 Création de campagnes de crowdfunding
  • 💰 Système de contribution en ETH
  • 🎨 Si l'objectif est atteint, chaque contributeur reçoit un NFT non-transférable (Soulbound Token)). Le NFT représente le pourcentage exact de leur contribution
  • 🪙 Distribution automatique de tokens. Le montant de tokens reçu est proportionnel au pourcentage de contribution
  • Gestion du temps de campagne
  • 💸 Si l'objectif n'est pas atteint à la fin de la période, les fonds sont automatiquement remboursés

🛠️ Technologies

  • Solidity ^0.8.20
  • Forge & Foundry
  • OpenZeppelin
  • TypeScript (CLI)

🏗️ Structure du Projet

├── 📂 src/
│   ├── 
├── 📂 test/
     └── 

📋 Tâches Principales

🔮 Smart Contracts Core

  • Structure de base du contrat de crowdfunding
  • Fonction de création de campagne
  • Système de contribution en ETH
  • Logique de calcul des pourcentages
  • Système de remboursement automatique
  • Émissions d'événements pour chaque action importante
  • Tests des fonctions core

🎨 Système de NFT (SoulBound Token)

  • Implémentation du contrat NFT non-transférable
  • Structure des métadonnées (contribution, pourcentage, projet)
  • Fonction de mint pour les contributeurs
  • Blocage des transferts après mint
  • Tests du système NFT

🪙 Gestion des Tokens

  • Contrat de création dynamique de tokens ERC20 ou ERC1155
  • Système de distribution des tokens aux détenteurs de NFT
  • Calcul des allocations basé sur les pourcentages
  • Tests des fonctions de token

🧪 Tests & Sécurité

  • Tests d'intégration entre les contrats
  • Fuzzing tests pour les entrées utilisateur
  • Tests des cas limites (0 ETH, max supply)
  • Tests des scénarios de remboursement
  • Vérification des overflows dans les calculs
  • Scripts de déploiement

📚 Documentation

  • Documentation technique des contrats (NatSpec)
  • Guide d'utilisation du CLI
  • Diagrammes de flux des processus
  • Documentation de déploiement

🌟 Bonus - Interface Web

Interface web


🧪 Tests

# Lancer tous les tests
forge test

# Tests avec traces détaillées
forge test -vv

# Tester une fonction spécifique
forge test --match-test testCreateCampaign -vv

📚 Commandes Utiles Forge

# Compiler le projet
forge build

# Déployer sur un testnet
forge script script/Deploy.s.sol:Deploy --rpc-url $RPC_URL --broadcast

# Générer un rapport de couverture des tests
forge coverage

# Rapport de consommation de gas
forge test --gas-report

✅ Checklist avant PR

  • Tous les tests passent (forge test)
  • Coverage > 90% (forge coverage)
  • Gas optimisé (forge snapshot)
  • Code documenté (NatSpec)
  • Émission d'événements pour actions importantes

🚨 Points d'Attention

  • 🔹 Gestion précise des calculs de pourcentage
  • 🔹 Vérification des overflows
  • 🔹 Sécurisation des transferts ETH
  • 🔹 Tests des cas limites
  • 🔹 Documentation complète

🤝 Contribution

PR bienvenues ! Assurez-vous de suivre ces étapes :

  1. Fork le projet
  2. Créer une branche (feature/amazingFeature)
  3. Commit (git commit -m '✨ Add amazing feature')
  4. Push (git push origin feature/amazingFeature)
  5. Ouvrir une PR

📌 Règles de Contribution

  • Utiliser des commits clairs et explicites.
  • Ajouter des tests unitaires pour toute nouvelle fonctionnalité.
  • Vérifier que le code est compatible avec Solidity ^0.8.20.
  • Suivre les standards OpenZeppelin et ERC pertinents.
  • Documenter les nouvelles fonctionnalités en NatSpec.

📄 License

MIT

About

pool2025-p2p-rush-solidarity created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •