# homework **Repository Path**: yuliqing16/homework ## Basic Information - **Project Name**: homework - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-05 - **Last Updated**: 2026-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 作业小管家 面向小学低年级学生的作业管理应用,支持局域网访问,移动优先设计。 ## 技术栈 - Next.js 16 + React 19 + TypeScript - Prisma 7 + SQLite - shadcn/ui + Tailwind CSS 4 - Jest + Playwright ## 核心能力 - 今日作业录入、完成、撤销、删除 - 历史记录筛选与统计分析 - 成就、挑战、积分、连续打卡 - 学期管理与学期报告 - 附件上传、图片预览、录音与音频播放 - 数据导入导出 ## 开发命令 ```bash # 本地开发 npm run dev # 生产重启:停止旧进程 -> 迁移 -> 构建 -> 启动 HTTP/HTTPS ./restart.sh # 首次初始化数据库 ./init-db.sh # 重置数据库为小学默认配置 npx tsx scripts/reset-db.ts # 单元测试 npm test # 覆盖率 npm run test:coverage # E2E 测试 npx playwright test # 代码检查 npm run lint ``` ## 服务端口 `./restart.sh` 会同时启动两个服务: - HTTP: `http://localhost:3000` - HTTPS: `https://localhost:4001` HTTPS 主要用于录音功能,因为 `getUserMedia` 需要 HTTPS 或 `localhost` 安全上下文。 ## 目录结构 ```text src/ app/ App Router 页面与 API components/ 业务组件与 UI 组件 lib/ Server Actions、数据库、定义和工具函数 scripts/ 初始化、迁移、重置、测试数据脚本 __tests__/ Jest 单元测试 e2e/ Playwright 前端测试 prisma/ Schema 与 migrations ``` ## 开发约束 - 单一数据源:默认科目和默认成就只能来自 `src/lib/definitions.ts` - 前端改动必须走闭环:改代码 -> `./restart.sh` -> Playwright 验证 - 未经确认不得提交 git - 涉及后端逻辑变更时,至少运行 `npm test` ## 数据与文件 - 附件保存在 `public/uploads/` - 文件通过 `/api/files/uploads/{filename}` 访问 - 学期配置保存在 `Semester` 表 - 成就使用等级制,最大 5 级 ## 访问说明 局域网访问时,HTTP/HTTPS 地址会在 `./restart.sh` 输出中展示。首次打开 HTTPS 可能会看到自签名证书提示,继续访问即可。