npmdeep/skillSprint
GitHub: npmdeep/skillSprint
一个基于 Stellar Soroban 智能合约的去中心化专注学习追踪器,通过链上记录与徽章激励解决学习进度无法公开验证的问题。
Stars: 0 | Forks: 0
# ⚡ SkillSprint Ledger
**构建于 Stellar 上的去中心化专注学习追踪器**
*审核并将学习时间里程碑游戏化,由 Stellar Soroban 智能合约和 ICC 徽章保障*
[](https://skill-sprint-stellar.netlify.app/)
[](https://github.com/npmdeep/skillSprint)
[](https://stellar.expert/explorer/testnet)
[](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
标签:DApp, Soroban, Stellar, 区块链, 可视化界面, 学习追踪, 数据可视化, 智能合约, 游戏化, 自定义脚本