npmdeep/skillSprint

GitHub: npmdeep/skillSprint

一个基于 Stellar Soroban 智能合约的去中心化专注学习追踪器,通过链上记录与徽章激励解决学习进度无法公开验证的问题。

Stars: 0 | Forks: 0

# ⚡ SkillSprint Ledger
**构建于 Stellar 上的去中心化专注学习追踪器** *审核并将学习时间里程碑游戏化,由 Stellar Soroban 智能合约和 ICC 徽章保障* [![在线演示](https://img.shields.io/badge/Live_Demo-skill--sprint--stellar.netlify.app-6366f1?style=for-the-badge&logo=netlify)](https://skill-sprint-stellar.netlify.app/) [![GitHub](https://img.shields.io/badge/Source_Code-npmdeep%2FskillSprint-181717?style=for-the-badge&logo=github)](https://github.com/npmdeep/skillSprint) [![网络](https://img.shields.io/badge/Network-Stellar_Testnet-00B4D8?style=for-the-badge&logo=stellar)](https://stellar.expert/explorer/testnet) [![为 RiseIn 构建](https://img.shields.io/badge/Built_for-RiseIn_Level_3-f59e0b?style=for-the-badge)](https://www.risein.com/)
## 📋 目录 1. [问题陈述](#-problem-statement) 2. [为什么选择 Stellar?](#-why-stellar) 3. [在线部署](#-live-deployment) 4. [合约地址与交易](#-contract-addresses--transactions) 5. [架构](#-architecture) 6. [智能合约](#-smart-contracts) 7. [提交截图](#-submission-screenshots) 8. [测试](#-testing) 9. [技术栈](#-tech-stack) 10. [项目结构](#-project-structure) 11. [本地开发](#-local-development) 12. [路线图](#-roadmap) 13. [作者](#-author) ## 🔴 问题陈述 自主学习、技术训练营和开发者入门缺乏可问责的追踪基础工具。学习者难以证明其专注时间、验证进度里程碑以及分享成就,而不依赖中心化的验证表格。 | 问题 | 影响 | |-------|--------| | **无法验证的进度** | 专注学习时间和里程碑无法进行公开审计或分享证明。 | | **缺乏游戏化** | 学习者在达成时间里程碑时缺乏即时的链上奖励(如徽章)。 | | **中心化控制** | 学习成就被孤立在特定的私有学习管理平台中。 | **SkillSprint Ledger** 消除了这些限制。学习者连接 Freighter 钱包,配置学习里程碑,并直接将专注学习会话记录到 Stellar 账本中,从而获得经过验证的成就徽章。 ## 🌟 为什么选择 Stellar? SkillSprint Ledger 专为利用 Stellar 网络的原生优势而设计: | Stellar 特性 | SkillSprint 优势 | |-----------------|-------------------| | **约 5 秒的支付速度** | 可在 5 秒内验证每周目标打卡记录并发放里程碑徽章。 | | **极低的手续费 ($0.00001)** | 使得按小时记录微型学习会话在经济上变得可行。 | | **Soroban 智能合约** | 采用跨合约通信 (ICC) 将学习注册表与奖励分离。 | | **原生事件流** | 轮询实时事件,为访客提供公共账本流支持。 | ## 🌐 在线部署 | 资源 | 链接 | |----------|------| | 🌍 **在线 dApp** | [skill-sprint-stellar.netlify.app](https://skill-sprint-stellar.netlify.app/) | | 🎬 **演示视频** | [Google Drive — 演示录制](https://drive.google.com/file/d/1fyh44vwBPg8KkTM3u7AbpuhR0Jc8XqEj/view?usp=sharing) | | 💻 **GitHub 仓库** | [npmdeep/skillSprint](https://github.com/npmdeep/skillSprint) | ## 🔗 合约地址与交易 所有合约均使用 `npmdeep` 开发者凭证部署并进行交叉初始化于 **Stellar Testnet**。 ### 已部署的合约 ID | 合约 | 地址 | |----------|---------| | **Ledger 主合约** | `CBDDGQJN6OJRK445UERC5Y3NUVMRYU4XOUCRKYX6HZ36PV6POO2WJP7G` | | **奖励合约** | `CDIGB24SGW4LAYS74R776KKT7Y2L6WFWY5R6S773H7NOEFLNVE7G3RGM` | ### 链上部署交易 | 操作 | 交易哈希 | |--------|-----------------| | **奖励合约 — 上传与部署** | [`6ba0d83d841ead3c504dbec6f12c0b444d84eea289f191e09ca32db27088e523`](https://stellar.expert/explorer/testnet/tx/6ba0d83d841ead3c504dbec6f12c0b444d84eea289f191e09ca32db27088e523) | | **Ledger 合约 — 上传与部署** | [`fe21acd70f4d9066c19ae8153c3abf099ab958db4587b20edfeb6adab2e254da`](https://stellar.expert/explorer/testnet/tx/fe21acd70f4d9066c19ae8153c3abf099ab958db4587b20edfeb6adab2e254da) | | **奖励合约 — 初始化 (与 Ledger 交叉链接)** | [`aed5207343cdab18167b81876452d14c2c7e8711bbf259939569c69ddc336c88`](https://stellar.expert/explorer/testnet/tx/aed5207343cdab18167b81876452d14c2c7e8711bbf259939569c69ddc336c88) | | **Ledger 合约 — 初始化 (与 Rewards 交叉链接)** | [`4db24765451abb8c376a04cf1da977a0299bd269b23901ef495f12916b729c3a`](https://stellar.expert/explorer/testnet/tx/4db24765451abb8c376a04cf1da977a0299bd269b23901ef495f12916b729c3a) | ## 🏗️ 架构 SkillSprint Ledger 包含管理学习者档案和奖励的 Rust 合约,并结合 React 仪表盘直接展示来自 Stellar RPC getEvents 流的实时事件。 ``` ┌────────────────────────────────────────────────────────┐ │ React Dashboard │ │ │ │ Landing │ Dashboard │ Profile Configure │ Ledger │ │ │ │ Freighter Wallet │ └──────────────────────────┬─────────────────────────────┘ │ TypeScript Contract Client ┌────────▼────────┐ │ skill_sprint │ │ Contract │ │ │ │ save_profile() │ │ log_session() │ │ claim_badge() │ └─────────────────┘ Stellar Testnet ``` ### 跨合约通信 (ICC) 流程 在主账本注册表上记录学习会话时,使用 ICC 检查总学习分钟数,并在奖励合约上动态发放成就徽章。 ``` Step 1: User calls save_profile() → Sets up display profile and weekly targets. Step 2: User calls log_session() → Registers sessions, updates streaks, and emits events. Step 3: User calls claim_badge() → Ledger contract calls rewards contract via ICC to award milestone achievements. ``` ## 📜 智能合约 ### SkillSprint Ledger 合约 (`CBDDGQJN6OJRK445UERC5Y3NUVMRYU4XOUCRKYX6HZ36PV6POO2WJP7G`) 管理学习者档案注册表、专注时间和事件流。 | 函数 | 权限 | 描述 | |----------|--------|-------------| | `save_profile()` | 用户 | 配置显示名称和每周分钟数目标 | | `update_weekly_goal()` | 用户 | 更新当前的每周目标 | | `log_study_session()` | 用户 | 记录学习主题和分钟数 | | `get_dashboard()` | 公开 (只读) | 获取用户进度统计和打卡连击记录 | | `has_profile()` | 公开 (只读) | 检查用户档案是否已配置 | ### 奖励合约 (`CDIGB24SGW4LAYS74R776KKT7Y2L6WFWY5R6S773H7NOEFLNVE7G3RGM`) 处理成就徽章元数据并解析 ICC 徽章申领。 | 函数 | 权限 | 描述 | |----------|--------|-------------| | `award_badge()` | 仅限 Ledger 合约 | 通过 ICC 发放徽章记录 | | `get_badges()` | 公开 (只读) | 查询用户钱包获得的徽章 | ## 📸 提交截图 ### 💻 桌面端 UI

SkillSprint Dashboard View 1

SkillSprint Profile Config

SkillSprint Achievements

### 📱 移动端响应式 UI

SkillSprint Mobile UI

### 🔄 CI/CD 流水线

SkillSprint CI/CD Pipeline

## 🧪 测试 ### 测试摘要 | 套件 | 测试 | 状态 | |-------|-------|--------| | 前端 (Vitest) | 1 个测试 | ✅ 通过 | | Escrow 合约 (Rust) | 8 个测试 | ✅ 通过 | | **总计** | **9 个测试** | ✅ **9/9 通过** | ### 运行测试 ``` # Frontend 测试 npm --workspace frontend run test # Rust Contracts 测试 cargo test ``` ## 🛠️ 技术栈 | 层级 | 技术 | 版本 | 用途 | |-------|-----------|---------|---------| | **前端框架** | React + Vite | 5.4 | 快速、响应式的仪表盘 | | **编程语言** | JavaScript | ESModules | 动态状态与合约客户端集成 | | **样式** | Vanilla CSS | CSS3 | 温暖的纸质轻编辑组件 | | **智能合约** | Soroban (Rust) | stable | 链上账本注册表与打卡连击 | | **区块链 SDK** | @stellar/stellar-sdk | 12.x | 交易构建、XDR 编码、RPC 调用 | | **钱包集成** | Freighter API | 1.x | 钱包签名与网络握手 | | **托管** | Netlify | — | 生产环境托管 | ## 📁 项目结构 ``` skillsprint-ledger/ ├── .github/ │ └── workflows/ │ └── ci.yml # Automated contract build and frontend check ├── contracts/ │ ├── focus_forge/ # Main Ledger contract source code │ └── focus_forge_rewards/ # Rewards Incentive contract source code ├── deployments/ │ └── testnet.json # Deployed contract address records ├── frontend/ │ ├── public/ │ ├── src/ │ │ ├── lib/ │ │ │ ├── skillSprint.js # Freighter wrappers and RPC event stream pollers │ │ │ └── contract-config.js │ │ ├── App.jsx # Dashboard and feed stream │ │ ├── main.jsx # Application entry point │ │ └── styles.css # Warm paper theme style sheets │ └── package.json └── package.json ``` ## 🚀 本地开发 ### 前置条件 - Node.js 18+ - Rust stable 工具链 - Freighter 钱包浏览器扩展 ### 安装 ``` # Clone the repository git clone https://github.com/npmdeep/skillSprint.git cd skillSprint # Install dependencies npm install # 启动本地 dev server npm run dev ``` ## 🗺️ 路线图 ### ✅ Level 3 — Orange Belt (已完成) - 主 Ledger 与 Rewards 双合约架构,支持跨合约通信 (ICC)。 - 使用 Stellar RPC 触发器的实时事件轮询流。 - 为两个合约和前端编写并通过单元测试。 - 部署在 Stellar Testnet 上并托管于 Netlify。 - 移动端响应式 UI 与自动化 CI/CD 检查。 ## 👨‍💻 作者 **npmdeep** — [@npmdeep](https://github.com/npmdeep)
标签:DApp, Soroban, Stellar, 区块链, 可视化界面, 学习追踪, 数据可视化, 智能合约, 游戏化, 自定义脚本