# 中学成绩档案(初中 / 高中) Secondary School Grade Archive — 多用户 Web 系统:成绩录入、占比趋势分析、错题 OCR + 本地 AI 解法。 **版权所有 © 马建军** · 微信 **dekun03** · 手机 **18364911125** > 完整版权说明见 [COPYRIGHT.md](./COPYRIGHT.md) · 许可证见 [LICENSE](./LICENSE) **代码仓库:** [https://git.bz121.com/dekun/secondary-school-grade-archive.git](https://git.bz121.com/dekun/secondary-school-grade-archive.git) --- ## 文档索引 | 文档 | 说明 | |------|------| | [docs/DEPLOY.md](./docs/DEPLOY.md) | **Ubuntu 一键 Docker 部署**(/opt、端口 23566) | | [docs/USAGE.md](./docs/USAGE.md) | **用户使用说明** | | [COPYRIGHT.md](./COPYRIGHT.md) | 版权与授权 | | [LICENSE](./LICENSE) | 许可证全文 | --- ## 功能概览 - 用户注册/登录,数据按账号隔离 - 学生管理(**初中 / 高中**学段、年级、班级) - 成绩录入:周考 / 月考 / 期末(总分、得分、占比) - 分科曲线:上升绿、下降红、大幅波动高亮 - 错题库:上传图片 → PaddleOCR → Ollama 生成解法 - 成绩 CSV 导出、备份脚本 --- ## Ubuntu 一键部署(生产环境) **要求:** root 用户 · Ubuntu · Docker · 目录 `/opt/secondary-school-grade-archive` · 端口 **23566** ```bash git clone https://git.bz121.com/dekun/secondary-school-grade-archive.git /opt/secondary-school-grade-archive cd /opt/secondary-school-grade-archive chmod +x deploy/*.sh bash deploy/install.sh ``` 部署完成后访问:`http://<服务器IP>:23566` 脚本会自动:检测系统环境 → 安装 Docker(若缺失)→ 生成 `.env` → 构建并启动服务。 详细说明、运维命令、故障排查见 **[docs/DEPLOY.md](./docs/DEPLOY.md)**。 > **反向代理(HTTPS/域名)不包含在本项目中**,请自行配置 Nginx/Caddy 等,参见部署文档第 7 节。 --- ## 本地开发 ### Docker Compose(默认端口 23566) ```bash cp .env.example .env docker compose --env-file .env up --build ``` - 前端:http://localhost:23566 - API 健康检查:http://localhost:23566/api/health ### 分步开发 ```bash # 仅数据库 docker compose up db -d # 后端 cd backend && pip install -r requirements.txt && cp .env.example .env uvicorn app.main:app --reload --port 8000 # 前端 cd frontend && npm install && npm run dev ``` ### Ollama(错题 AI,可选) ```bash ollama pull qwen2.5:7b ollama serve ``` --- ## 运维快捷命令 ```bash cd /opt/secondary-school-grade-archive docker compose ps # 状态 bash deploy/update.sh # 更新 bash deploy/backup.sh # 备份 bash deploy/uninstall.sh # 停止服务 ``` --- ## 环境变量 见 [.env.example](./.env.example) --- ## 技术支持 - **作者:** 马建军 - **微信:** dekun03 - **手机:** 18364911125 未经授权不得商业使用或去除版权信息。