- SQLite(bun:sqlite,编号迁移):班级、用户、会话(只存令牌哈希)、作品 - 登录取代统一访问口令:老师账号由配置设定;接口和 WebSocket 都要登录;按 IP 限制输错次数 - 班级管理页:建班、改名、删除(有学生时不能删);上传 CSV 名单导入(兼容 GBK / UTF-8, 识别表头,标出被 Excel 变成科学计数法的学号),密码留空生成 6 位数字;查看、重置密码, 导出带密码的名单 - 学生作品自动保存到服务器(按账号和实验),显示保存状态;离开页面前立即保存 - 前端加路由:登录页、实验页、班级管理页 - 部署:TEACHER_PASSWORD 必填,数据库放在数据卷 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
25 lines
538 B
JSON
25 lines
538 B
JSON
{
|
|
"name": "@iot/web",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "bun --bun vite",
|
|
"build": "vue-tsc --noEmit && bun --bun vite build",
|
|
"typecheck": "vue-tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@iot/shared": "workspace:*",
|
|
"monaco-editor": "^0.57.0",
|
|
"naive-ui": "^2.41.0",
|
|
"vue": "^3.5.0",
|
|
"vue-router": "^4.6.4"
|
|
},
|
|
"devDependencies": {
|
|
"@types/bun": "^1.2.0",
|
|
"@vitejs/plugin-vue": "^6.0.0",
|
|
"typescript": "^5.8.0",
|
|
"vite": "^7.0.0",
|
|
"vue-tsc": "^3.0.0"
|
|
}
|
|
}
|