一个基于 Rust + React 构建的去中心化任务管理和奖励发放平台,支持通过 SUI 区块链进行代币奖励发放。
- 任务管理: 完整的任务创建、编辑、删除功能
- 提交审核: 任务提交记录管理和审核流程
- 权限控制: 基于角色的访问控制(管理员/普通用户)
- 区块链集成: 支持 SUI 区块链代币奖励发放
- 现代化界面: 基于 Material-UI 的响应式界面设计
- JWT 认证: 安全的用户认证和授权机制
- Rust - 主要编程语言
- Actix-web - Web 框架
- SQLx - 数据库 ORM
- MySQL - 数据库
- JWT - 身份验证
- React 18 - 前端框架
- Material-UI (MUI) - UI 组件库
- SUI dApp Kit - 区块链集成
- React Router - 路由管理
- Axios - HTTP 客户端
- Node.js >= 18
- Rust >= 1.70
- MySQL >= 8.0
- Git
git clone <repository-url>
cd rust_learn2earn
在项目根目录创建 .env
文件:
DATABASE_URL=mysql://username:password@localhost:3306/learn2earn
JWT_SECRET=your-super-secret-jwt-key
RUST_LOG=debug
# 创建数据库
mysql -u root -p -e "CREATE DATABASE learn2earn;"
# 运行数据库迁移
cargo run --bin migration
# 安装依赖并启动
cargo run
后端服务将在 http://localhost:8080
启动
cd frontend
npm install
npm run dev
前端应用将在 http://localhost:5173
启动
系统提供以下测试账户:
- 管理员:
admin
/admin123
- 普通用户:
demo
/user123
rust_learn2earn/
├── src/ # 后端源码
│ ├── controllers/ # 控制器层
│ ├── services/ # 业务逻辑层
│ ├── models/ # 数据模型
│ ├── routes/ # 路由配置
│ ├── middleware/ # 中间件
│ ├── database/ # 数据库配置
│ ├── config/ # 配置管理
│ └── utils/ # 工具函数
├── frontend/ # 前端源码
│ ├── src/
│ │ ├── components/ # React 组件
│ │ ├── contexts/ # React Context
│ │ ├── hooks/ # 自定义 Hooks
│ │ └── services/ # API 服务
│ └── public/ # 静态资源
└── target/ # Rust 编译输出
└── sql/ # 数据库脚本
POST /api/auth/login # 用户登录
GET /api/auth/profile # 获取用户信息
POST /api/auth/admin/users # 创建用户(管理员)
GET /api/tasks # 获取任务列表(分页)
GET /api/tasks/all # 获取所有任务
GET /api/tasks/{id} # 获取单个任务
POST /api/tasks # 创建任务
PUT /api/tasks/{id} # 更新任务
DELETE /api/tasks/{id} # 删除任务
GET /api/tasks/{id}/submissions # 获取任务提交记录
GET /api/submissions/{id} # 获取提交详情
POST /api/submissions/{id}/approve # 通过提交
POST /api/submissions/{id}/reject # 拒绝提交
- 创建、编辑、删除任务
- 任务搜索和筛选
- 分页浏览任务列表
- 查看任务提交记录
- 审核提交(通过/拒绝)
- 状态筛选和管理
- SUI 区块链集成
- 钱包连接和管理
- 代币奖励自动发放
- 基于角色的访问控制
- JWT Token 认证
- 细粒度权限控制
- admin: 管理员,拥有所有权限
- user: 普通用户,基础权限
task:create
- 创建任务task:update
- 更新任务task:delete
- 删除任务submission:approve
- 审核提交
-
数据库优化
- 配置连接池
- 设置合适的索引
- 定期备份数据
-
安全配置
- 使用强 JWT 密钥
- 配置 HTTPS
- 设置 CORS 策略
-
监控日志
- 配置日志级别
- 设置错误监控
- 性能指标监控
- JWT Token 安全存储
- API 请求频率限制
- 输入验证和 SQL 注入防护
- 敏感信息加密存储
- Rust: 遵循 Rust 官方编码规范
- React: 使用 ESLint 和 Prettier
- 提交信息: 遵循 Conventional Commits
# 后端测试
cargo test
# 前端测试
cd frontend && npm test
- Fork 项目
- 创建功能分支
- 提交更改
- 推送到分支
- 创建 Pull Request
MIT License
- 初始版本发布
- 基础任务管理功能
- SUI 区块链集成
- 用户认证和权限系统