Course-Service CLI 实现文档

# Course-Service CLI 实现文档

## 项目结构

由于权限限制,CLI 实现已创建在以下目录:

“`
/System/Volumes/Data/webcode/service-edt-plat/services/course-service/agent-harness/
├── setup.py # PyPI 配置
└── cli_anything/ # 命名空间包
├── __init__.py
└── course_service/ # 子包
├── __init__.py
├── course_service_cli.py # 主 CLI 入口点
├── core/ # 核心模块
│ ├── __init__.py
│ ├── project.py # 项目管理
│ └── session.py # 会话管理(撤销/重做)
├── utils/ # 工具
│ ├── __init__.py
│ └── repl_skin.py # 统一 REPL 界面
└── tests/ # 测试
└── __init__.py
“`

## 核心功能

### 1. 课程管理
– `course create` – 创建新课程
– `course list` – 列出所有课程
– `course get ` – 获取课程详情
– `course update ` – 更新课程信息
– `course delete ` – 删除课程

### 2. 章节管理
– `chapter create` – 创建新章节
– `chapter list ` – 列出课程的所有章节

### 3. 课时管理
– `lesson create` – 创建新课时
– `lesson list ` – 列出章节的所有课时

### 4. 报名管理
– `enrollment create` – 报名课程
– `enrollment list ` – 列出用户的所有报名

### 5. 学习进度管理
– `progress update` – 更新学习进度
– `progress get ` – 获取学习进度

### 6. 学习笔记管理
– `notes save` – 保存学习笔记
– `notes get ` – 获取学习笔记

### 7. 数据分析
– `analytics course ` – 获取课程分析
– `analytics teacher ` – 获取教师分析

## 安装和使用方法

### 方法一:本地安装

1. **创建虚拟环境**
“`bash
cd /Users/guanxue/Downloads/23813321_edu.eluup.com_nginx
python3 -m venv venv
source venv/bin/activate
“`

2. **安装依赖**
“`bash
pip install click prompt-toolkit requests
“`

3. **直接运行**
“`bash
python /System/Volumes/Data/webcode/service-edt-plat/services/course-service/agent-harness/cli_anything/course_service/course_service_cli.py –help
“`

### 方法二:使用开发模式安装

1. **复制到可写目录**
“`bash
cp -r /System/Volumes/Data/webcode/service-edt-plat/services/course-service/agent-harness ~/course-service-cli
cd ~/course-service-cli
“`

2. **安装**
“`bash
python3 -m venv venv
source venv/bin/activate
pip install -e .
“`

3. **验证安装**
“`bash
which cli-anything-course-service
cli-anything-course-service –help
“`

## 使用示例

### 1. 创建课程
“`bash
cli-anything-course-service course create –title “Python 基础教程” –teacher-id 1 –description “Python 入门到精通” –price 99.0 –status “published”
“`

### 2. 列出课程
“`bash
cli-anything-course-service course list
“`

### 3. 获取课程详情
“`bash
cli-anything-course-service course get 1
“`

### 4. 创建章节
“`bash
cli-anything-course-service chapter create –course-id 1 –title “第一章:Python 简介” –order 1
“`

### 5. 列出章节
“`bash
cli-anything-course-service chapter list 1
“`

### 6. 创建课时
“`bash
cli-anything-course-service lesson create –chapter-id 1 –title “1.1 Python 安装” –content “Python 安装步骤…” –type “text” –order 1
“`

### 7. 列出课时
“`bash
cli-anything-course-service lesson list 1
“`

### 8. 报名课程
“`bash
cli-anything-course-service enrollment create –user-id 101 –course-id 1
“`

### 9. 列出用户报名
“`bash
cli-anything-course-service enrollment list 101
“`

### 10. 更新学习进度
“`bash
cli-anything-course-service progress update –user-id 101 –course-id 1 –progress 50
“`

### 11. 获取学习进度
“`bash
cli-anything-course-service progress get 101 1
“`

### 12. 保存学习笔记
“`bash
cli-anything-course-service notes save –user-id 101 –course-id 1 –lesson-id 1 –notes “Python 是一种解释型语言…”
“`

### 13. 获取学习笔记
“`bash
cli-anything-course-service notes get 101 1 1
“`

### 14. 获取课程分析
“`bash
cli-anything-course-service analytics course 1
“`

### 15. 获取教师分析
“`bash
cli-anything-course-service analytics teacher 1
“`

### 16. 进入交互式 REPL
“`bash
cli-anything-course-service
“`

## JSON 输出模式

所有命令都支持 `–json` 选项,用于生成机器可读的 JSON 输出:

“`bash
cli-anything-course-service –json course list
“`

## 项目文件管理

可以使用 `–project` 选项指定项目文件,保存和加载状态:

“`bash
# 保存到项目文件
cli-anything-course-service –project course_data.json course create –title “Python 高级教程” –teacher-id 1

# 从项目文件加载
cli-anything-course-service –project course_data.json course list
“`

## 技术特点

1. **状态管理**:支持撤销/重做功能,最多保存 50 个历史状态
2. **双输出模式**:支持人类可读和 JSON 机器可读输出
3. **交互式 REPL**:提供统一的命令行界面,支持命令补全
4. **命名空间包**:使用 PEP 420 命名空间包,避免包冲突
5. **模块化设计**:清晰的代码结构,易于扩展

## 注意事项

1. **数据存储**:当前实现使用本地 JSON 文件存储数据,适合测试和演示
2. **权限问题**:在 `/System/Volumes/Data` 目录下可能存在权限限制,建议复制到用户目录使用
3. **依赖安装**:需要安装 `click`、`prompt-toolkit` 和 `requests` 包
4. **功能扩展**:可以根据实际需求扩展核心功能,如添加数据库支持、API 调用等

## 后续建议

1. **连接实际 API**:修改 `session.py` 中的方法,使其调用实际的 course-service API
2. **添加数据库支持**:使用 SQLite 或其他数据库替代 JSON 文件存储
3. **完善测试**:添加单元测试和端到端测试
4. **发布到 PyPI**:将 CLI 打包发布到 PyPI,方便用户安装

## 故障排除

### 常见问题

1. **权限错误**:如果遇到权限错误,将 agent-harness 目录复制到用户可写目录
2. **依赖缺失**:确保安装了所有必要的依赖包
3. **路径问题**:确保 Python 能够找到 cli_anything 包

### 解决方案

– **权限问题**:
“`bash
cp -r /System/Volumes/Data/webcode/service-edt-plat/services/course-service/agent-harness ~/course-service-cli
cd ~/course-service-cli
“`

– **依赖问题**:
“`bash
pip install click prompt-toolkit requests
“`

– **路径问题**:
“`bash
export PYTHONPATH=$PYTHONPATH:~/course-service-cli
“`

Scroll to Top