当前位置: 首页 > news >正文

AI写的超级好用的课堂互动系统

柯猿课堂互动系统

一个现代化的课堂互动系统,专为教师和培训师设计,提供公平、高效的学生选择功能。

开源地址:https://cnb.cool/YuanCollab-2025/Keyuan-Class-Connect

开源发行版:https://cnb.cool/YuanCollab-2025/Keyuan-Class-Connect/-/releases/tag/Official

🌟 功能特性

核心功能

  • 课堂互动: 支持单个、多个和分组点名模式
  • 名单管理: 导入/导出学生名单,支持 Excel 和 CSV 格式
  • 历史记录: 自动保存点名历史,支持查看和导出
  • 音效设置: 多种音效选择,可调节音量

高级工具

  • 权重点名: 为不同学生设置不同的被选中概率
  • 避免重复: 智能避免短时间内重复选择同一学生
  • 条件筛选: 根据条件筛选特定学生群体
  • 统计分析: 详细的点名统计和分析报告

课堂工具

  • 出勤管理: 记录学生出勤情况
  • 分组功能: 智能分组和随机配对
  • 课堂互动: 支持多种课堂互动模式

实用工具

  • 数据导出: 支持多种格式的数据导出
  • 备份恢复: 自动备份和数据恢复功能
  • 快捷键: 丰富的键盘快捷键支持

🚀 快速开始

环境要求

  • Node.js 18.0 或更高版本
  • npm 或 yarn 包管理器

安装步骤

  1. 克隆项目
git clone <repository-url>
cd random-name-picker
  1. 安装依赖
npm install
  1. 启动开发服务器
npm run dev
  1. 打开浏览器访问 http://localhost:5173

构建生产版本

npm run build

📖 使用指南

基本使用流程

  1. 导入学生名单

    • 点击"导入名单"按钮
    • 支持手动输入、Excel 文件或 CSV 文件导入
    • 系统会自动验证和去重
  2. 开始点名

    • 选择点名模式(单个/多个/分组)
    • 设置相关参数(如选择数量、分组大小等)
    • 点击"开始点名"按钮
  3. 查看结果

    • 点名结果会实时显示
    • 自动保存到历史记录
    • 支持导出结果

高级功能使用

权重点名
  1. 在高级工具中选择"权重点名"
  2. 为不同学生设置权重值
  3. 权重越高,被选中概率越大
避免重复
  1. 启用"避免重复"功能
  2. 设置避免重复的时间间隔
  3. 系统会智能避免重复选择
分组功能
  1. 在课堂工具中选择"智能分组"
  2. 设置分组数量或每组人数
  3. 系统会自动进行均衡分组

⚙️ 配置选项

音效设置

  • 音效类型: 铃声、掌声、音乐
  • 音量控制: 0-100% 可调
  • 启用/禁用: 可完全关闭音效

动画设置

  • 动画类型: 淡入淡出、旋转、缩放
  • 动画速度: 慢速、正常、快速
  • 启用/禁用: 可关闭所有动画效果

数据存储

  • 所有数据自动保存到浏览器本地存储
  • 支持数据导出和备份
  • 支持跨设备数据同步(需要手动导入/导出)

🎯 键盘快捷键

快捷键功能
Ctrl+S打开设置
Ctrl+H显示帮助信息
Escape关闭当前对话框

📁 项目结构

random-name-picker/
├── src/
│   ├── components/          # React 组件
│   │   ├── ui/             # 基础 UI 组件
│   │   ├── header.tsx      # 页面头部
│   │   ├── name-list-manager.tsx    # 名单管理
│   │   ├── picker-control.tsx       # 点名控制
│   │   ├── result-display.tsx       # 结果显示
│   │   ├── settings-dialog.tsx      # 设置对话框
│   │   ├── utility-tools.tsx        # 实用工具
│   │   ├── advanced-tools.tsx       # 高级工具
│   │   └── classroom-tools.tsx      # 课堂工具
│   ├── utils/              # 工具函数
│   │   └── storage.ts      # 数据存储管理
│   ├── hooks/              # 自定义 Hooks
│   ├── lib/                # 库文件
│   ├── App.tsx             # 主应用组件
│   ├── main.tsx            # 应用入口
│   └── globals.css         # 全局样式
├── public/                 # 静态资源
├── package.json            # 项目配置
└── README.md              # 项目文档

🛠️ 技术栈

  • 前端框架: React 18 + TypeScript
  • 构建工具: Vite
  • UI 库: Tailwind CSS + shadcn/ui
  • 动画库: Framer Motion
  • 图标库: Lucide React
  • 状态管理: React Hooks
  • 数据存储: LocalStorage

🔧 开发指南

添加新功能

  1. src/components/ 目录下创建新组件
  2. 在相应的工具组件中集成新功能
  3. 更新类型定义(如需要)
  4. 添加相应的测试

样式规范

  • 使用 Tailwind CSS 进行样式开发
  • 遵循响应式设计原则
  • 保持组件样式的一致性

代码规范

  • 使用 TypeScript 进行类型检查
  • 遵循 React Hooks 最佳实践
  • 保持组件的单一职责原则

📊 数据格式

学生数据格式

interface Student {id: string;        // 唯一标识符name: string;      // 学生姓名
}

点名结果格式

interface PickResult {students: Student[];    // 被选中的学生timestamp: Date;        // 点名时间mode: 'single' | 'multiple' | 'group';  // 点名模式
}

设置数据格式

interface Settings {soundEnabled: boolean;                    // 是否启用音效soundType: 'bell' | 'applause' | 'music'; // 音效类型volume: number;                           // 音量 (0-1)animationEnabled: boolean;                // 是否启用动画animationSpeed: 'slow' | 'normal' | 'fast'; // 动画速度animationType: 'fade' | 'rotate' | 'scale';  // 动画类型
}

🐛 常见问题

Q: 导入的名单数据丢失了怎么办?

A: 系统会自动保存数据到浏览器本地存储。如果数据丢失,可能是浏览器清理了缓存。建议定期导出备份数据。

Q: 如何确保点名的公平性?

A: 系统使用真随机算法,每次点名都是完全独立的。可以在历史记录中查看统计数据验证公平性。

Q: 可以在移动设备上使用吗?

A: 是的,系统采用响应式设计,完全支持移动设备访问。

Q: 如何批量导入大量学生?

A: 支持 Excel 和 CSV 文件导入,可以一次性导入数百个学生。建议使用标准格式的文件。

📄 许可证

本项目采用 MIT 许可证。

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

柯猿课堂互动系统 (Keyuan Class Connect) - 让课堂互动更加公平高效! 🎓

http://www.dtcms.com/a/403688.html

相关文章:

  • 山东建设机械协会网站课程网站建设的设计报告
  • 第四部分:Netty核心源码解析(下)
  • 攻克 大 Excel 上传难题:从异步处理到并发去重的全链路解决方案
  • 【双光相机配准】红外相机与可见光相机配准方案
  • 中国建设银行网站个人客户wordpress 主题显示
  • 开源超级终端PuTTY改进之:增加点对点网络协议IocHub,实现跨网段远程登录
  • 帮别人做网站如何备案wordpress video plugin
  • 118. 杨辉三角(dp)
  • 济宁网站开发招聘威海建设集团官方网站
  • 【QT】QPainter的使用
  • 北京代理网站备案成都市建设工程交易中心网站
  • PyTorch 数据处理工具箱与可视化工具
  • python的高阶函数
  • Python请求示例JD商品评论API接口,json数据返回
  • Json格式化处理碰到的问题
  • 驱动开发(4)|鲁班猫rk356x镜像编译,及启用SPI控制器驱动
  • Rust语言了解
  • 深圳成交型网站建设天元建设集团有限公司企业号
  • 织梦系统做的网站忘记登录密码semir是什么品牌
  • Python实现ETF网格自动化交易集成动量阈值判断
  • 使用c语言连接数据库
  • 网站在百度找不到了王占山人物简介
  • Windows Server 定时备份 MySQL 数据升级版:单表备份 + 压缩功能 + 运维统计
  • gpt-4o+deepseek+R生成热力图表
  • 管理系统前端模板河北seo网络推广
  • Mac完整Homebrew安装教程、brew安装教程踩过的坑、brew安装总结、安装brew遇到的问题
  • 想学做网站学那个软件好淘宝代运营公司排名
  • 网站建设策划怎么谈做视频网站用什么模板
  • 千秋网络是家西安做网站的公司安装免费下载app
  • P1073题解