一个现代化的课堂互动系统,专为教师和培训师设计,提供公平、高效的学生选择功能。
git clone <repository-url>
cd random-name-picker
npm install
npm run dev
http://localhost:5173npm run build
导入学生名单
开始点名
查看结果
| 快捷键 | 功能 |
|---|---|
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 # 项目文档
src/components/ 目录下创建新组件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'; // 动画类型
}
A: 系统会自动保存数据到浏览器本地存储。如果数据丢失,可能是浏览器清理了缓存。建议定期导出备份数据。
A: 系统使用真随机算法,每次点名都是完全独立的。可以在历史记录中查看统计数据验证公平性。
A: 是的,系统采用响应式设计,完全支持移动设备访问。
A: 支持 Excel 和 CSV 文件导入,可以一次性导入数百个学生。建议使用标准格式的文件。
本项目采用 MIT 许可证。详见 LICENSE 文件。
欢迎提交 Issue 和 Pull Request!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)如有问题或建议,请通过以下方式联系:
柯猿课堂互动系统 (Keyuan Class Connect) - 让课堂互动更加公平高效! 🎓