A full-stack application that enables learners to join online courses and receive NFT-based certificates stored and verified on the Ethereum Sepolia testnet. This project was built as part of a graduation thesis at the University of Sciences, Hue University.
The platform aims to provide a reliable and interactive online learning experience, combining:
- Course management system for learners and instructors.
- NFT-based certification with verification on-chain.
- Use of blockchain (Sepolia), IPFS, and AI Assistant.
- Real-time updates and decentralized storage for integrity and transparency.
- Register & login securely
- Browse, enroll in courses
- Track learning progress
- Receive NFT certificates
- Validate certificate authenticity on-chain
- Apply to become an instructor
- Create, update, and publish courses & lessons
- Manage users, courses, categories
- Review instructor applications
- View platform analytics
- Issued as ERC-721 tokens
- Metadata stored on IPFS
- Soulbound (non-transferable)
- Verifiable on the Sepolia blockchain
| Layer | Technologies |
|---|---|
| Frontend | Next.js, Tailwind CSS, TypeScript |
| Backend | Spring Boot, PostgreSQL, Firestore |
| Blockchain | Solidity, Hardhat, Sepolia Testnet |
| Storage | AWS S3, IPFS (Pinata) |
| DevOps | Docker, Docker Compose |
| AI Assistant | Gemini Generative Language API |
docker-compose up --buildnpx hardhat run scripts/deploy.js --network sepolia- ERC-721 standard
- Metadata stored on IPFS
- Hash verification for integrity
function verifyMetadataHash(bytes32 hash) external view returns (bool) {
return _usedHashes[hash];
}- Learner completes course
- System generates metadata + image
- Uploads to IPFS via Pinata
- Mints NFT using
mint()in smart contract - Metadata hash stored on-chain
- Learner receives certificate in wallet
- Verifier hashes metadata & checks on-chain
"Xây dựng Website cung cấp khóa học trực tuyến và ứng dụng blockchain để lưu trữ chứng chỉ trên mạng lưới Sepolia"
- Author: Mai Tiến Dũng, K45 - IT
- Advisor: Dr. Nguyễn Văn Trung
- Hue University of Sciences, June 2025
This project is for educational purposes only and not intended for production use.
- Etherscan, Pinata, Alchemy
- Gemini API by Google
- Spring, Hardhat, Next.js communities

