Une approche innovante pour présenter votre CV sous forme de blockchain ! Ce projet implémente une blockchain simple en C# avec ASP.NET Core, où chaque étape de votre parcours professionnel devient un bloc dans la chaîne.
Au lieu d'un CV traditionnel, vos expériences professionnelles, formations et projets sont stockés comme des blocs dans une blockchain. Chaque "mineur" (recruteur, collègue, etc.) peut ajouter des blocs représentant vos réalisations et recevoir des tokens en récompense.
- 🔗 Blockchain sécurisée : Chaque bloc est lié cryptographiquement au précédent
- ⛏️ Système de minage : Ajout de nouveaux blocs via proof-of-work
- 🏆 Tokens de récompense : Les mineurs reçoivent des tokens uniques
- 💾 Persistance : La blockchain est sauvegardée en JSON
- 🌐 API REST : Interface web pour interagir avec la blockchain
- 🔒 Anti-spam : Un mineur ne peut pas miner deux fois la même donnée
- C# (.NET 8)
- ASP.NET Core (API Web)
- SHA-256 (Hachage cryptographique)
- JSON (Stockage des données)
- .NET 8.0 SDK installé
# Cloner le projet
git clone <votre-repo>
cd Blockchain-CV
# Restaurer les dépendances
dotnet restore
# Lancer l'application
dotnet run
L'application sera accessible sur http://localhost:5000
ou https://localhost:5001
Endpoint | Méthode | Description |
---|---|---|
/ |
GET | Page d'accueil |
/chain |
GET | Afficher toute la blockchain |
/mine?data=<données>&miner=<mineur> |
GET | Miner un nouveau bloc |
/tokens |
GET | Liste des tokens générés |
# Voir la blockchain complète
curl http://localhost:5000/chain
# Miner un nouveau bloc
curl "http://localhost:5000/mine?data=Formation%20en%20développement&miner=recruteur1"
# Voir les tokens générés
curl http://localhost:5000/tokens
├── Program.cs # Point d'entrée et configuration API
├── Blockchain.cs # Logique de la blockchain
├── Block.cs # Structure d'un bloc
├── cv_chain.json # Stockage persistant de la blockchain
└── README.md # Documentation
Chaque bloc contient :
- Index : Position dans la chaîne
- Timestamp : Date/heure de création
- CVData : Vos données de parcours (formation, expérience, projet...)
- PreviousHash : Hash du bloc précédent
- Hash : Hash unique du bloc
- Nonce : Nombre utilisé pour le proof-of-work
- Miner : Identifiant de celui qui a ajouté le bloc
- Portfolio interactif : Laissez vos contacts ajouter des recommandations
- CV collaboratif : Collègues ajoutent leurs témoignages
- Gamification : Récompenser l'engagement avec des tokens
- Preuve d'authenticité : Vérification cryptographique de votre parcours
Vous pouvez modifier :
- La difficulté de minage dans
Blockchain.cs
(propriétéDifficulty
) - Le bloc Genesis avec vos informations personnelles
- Les endpoints pour ajouter de nouvelles fonctionnalités
- Le format des tokens de récompense
N'hésitez pas à proposer des améliorations :
- Nouvelles fonctionnalités
- Interface web
- Optimisations de performance
- Tests unitaires
Ce projet est open source. Utilisez-le librement pour créer votre CV blockchain unique !
"Votre parcours professionnel mérite une technologie à la hauteur de vos ambitions !" 🌟