# 星火纪元 · 儿童个人成长系统(自托管) 给自家孩子用的轻量成长记录 Web 服务:追踪**学科进度**、**读书**、**运动打卡**、**健康**并颁发轻量徽章。 纯本地、离线可用,数据存在你自己的 SQLite 文件里,不依赖任何云、不用 Docker。 ## 特性 - 📅 **学期 / 假期双日历**:进度环旁两张点状日历——「学期日历」与「假期日历」,每点代表一天,按颜色区分打卡密度(越深越多 / 蓝=周末 / 灰=未打卡 / 圆环=今天)。起止日期(学期起止、假期起止)都在家长后台「孩子信息」里设定。 - 🎡 **各学科进度一览**:一行小进度环,每屏 3 个学科自动轮播;右侧有半透明「›」箭头可手动切下一屏。 - 📚 **学科进度(单科轮播)**:整年课表(学科 → 单元/章节)逐科展示;每科按任务顺序显示「已完成 3 · 进行中 1 · 待完成 3」,点一下即完成、下一任务自动接上。点「详情」弹窗看全部单元与目标日。 - 📖 **书架墙**:已读完的书以封面墙展示——上排 3 本最近读完、下排 3 本随机回顾;点「详情」弹窗可按书名/作者/分类搜索、分类筛选、排序。无封面时显示彩色书脊,封面完成日期标在右下角。封面支持本地上传(自动标准化为统一 2:3 并生成缩略图)或填图片 URL。 - 💗 **健康综合**:主视图只显示「身高 / 体重」当前值与同龄标准参考(标签置于数字左侧);点右上角「📈 图表详情」弹窗看最近两年的身高(绿)/体重(橙)双线趋势。家长后台可补录任意历史日期的健康数据。 - 🚀 **浮动快捷打卡**:仪表盘右下角常驻竖向按钮(默认跳绳 / 仰卧起坐 / 读书),点一下即记录当天打卡;**类型可在家长后台「浮动打卡项」里新增、改名、删除**,仪表盘即时更新。 - 🏅 **轻量徽章**:由任务完成数、读书、运动等实时派生(如「迈出第一步」「任务小达人」「单科全通关」「学年进度过半」等),随进展自动获得;仪表盘顶部轮播已得徽章,点开可看全部(含未解锁)与获得时间。 - 🎨 **主题**:家长后台「孩子信息」里设定默认主题(浅色 / 暗色 / 糖果 / 海洋),服务端直接应用,刷新即生效。 - 🔒 **双角色**:孩子无 PIN 直进仪表盘;家长后台 `/admin` 用密码管理课表、健康记录与数据(含一键导出 JSON)。 ## 运行(不用 Docker) 需要 Python 3.10+。 ```bash cd tracker python -m venv venv venv\Scripts\activate # Windows # macOS/Linux: source venv/bin/activate pip install -r requirements.txt python app.py ``` 启动后打开: - 仪表盘: http://127.0.0.1:5000/ - 家长后台: http://127.0.0.1:5000/admin (默认账号 `admin` / 密码 `admin123`) 首次启动会自动建库并写入一份示例数据,方便直接看效果。 ## 配置(环境变量,可选) | 变量 | 默认 | 说明 | |---|---|---| | `ADMIN_USER` | admin | 家长后台用户名 | | `ADMIN_PASSWORD` | admin123 | 家长后台密码 | | `PORT` | 5000 | 服务端口 | | `SECRET_KEY` | change-me... | Flask 会话密钥 | 例:`ADMIN_PASSWORD=你的强密码 PORT=8080 python app.py` ## 家长后台数据管理 - **重置全部数据**:清空所有进度 / 打卡 / 健康记录,但保留学科、单元、书目结构(方便从零开始新一轮记录)。 - **浮动打卡项(可增删改)**:新增 / 改名 / 删除右下角常驻的打卡按钮;删除时会一并清掉该类型的打卡记录。 > 徽章由进度实时派生,重置后会随孩子的新进展自动重新累积,无需手动发徽章。 界面说明:仪表盘无顶部导航栏;时钟居中并显示「距结束还有 XX 天」(按后台设定的学期止计算)。 ## 数据与备份 - 数据库文件:`data/tracker.db`(单文件,复制即备份)。 - 上传的本地封面:`static/covers/`(备份时建议连同此目录一起复制)。 - 家长后台「导出全部数据」可下载 `tracker-export.json`。 ## 目录结构 ``` tracker/ ├── app.py # Flask 应用 + 数据库 + 纯 SVG 图表逻辑 ├── requirements.txt ├── data/tracker.db # 自动生成 ├── templates/ │ ├── base.html # 布局 + 主题类挂载 │ ├── dashboard.html # 孩子仪表盘 │ ├── admin.html # 家长后台 │ ├── login.html │ └── _book_cover.html # 书架封面局部(主墙与详情弹窗共用) └── static/ ├── style.css └── covers/ # 上传的本地封面 ``` ## 说明 - 图表用纯 SVG 生成,无任何外部 CDN 依赖,断网也能用。 - 按需求定制:单孩子、无 PIN、Python、不用 Docker、小学阶段、手动录课表、轻量徽章。 - 多孩子、教材章节模板、更多健康指标可在现有数据模型上平滑扩展。