星火纪元 · 儿童个人成长系统(自托管)

给自家孩子用的轻量成长记录 Web 服务:追踪学科进度读书运动打卡健康并颁发轻量徽章。 纯本地、离线可用,数据存在你自己的 SQLite 文件里,不依赖任何云、不用 Docker。

特性

  • 📅 学期 / 假期双日历:进度环旁两张点状日历——「学期日历」与「假期日历」,每点代表一天,按颜色区分打卡密度(越深越多 / 蓝=周末 / 灰=未打卡 / 圆环=今天)。起止日期(学期起止、假期起止)都在家长后台「孩子信息」里设定。
  • 🎡 各学科进度一览:一行小进度环,每屏 3 个学科自动轮播;右侧有半透明「›」箭头可手动切下一屏。
  • 📚 学科进度(单科轮播):整年课表(学科 → 单元/章节)逐科展示;每科按任务顺序显示「已完成 3 · 进行中 1 · 待完成 3」,点一下即完成、下一任务自动接上。点「详情」弹窗看全部单元与目标日。
  • 📖 书架墙:已读完的书以封面墙展示——上排 3 本最近读完、下排 3 本随机回顾;点「详情」弹窗可按书名/作者/分类搜索、分类筛选、排序。无封面时显示彩色书脊,封面完成日期标在右下角。封面支持本地上传(自动标准化为统一 2:3 并生成缩略图)或填图片 URL。
  • 💗 健康综合:主视图只显示「身高 / 体重」当前值与同龄标准参考(标签置于数字左侧);点右上角「📈 图表详情」弹窗看最近两年的身高(绿)/体重(橙)双线趋势。家长后台可补录任意历史日期的健康数据。
  • 🚀 浮动快捷打卡:仪表盘右下角常驻竖向按钮(默认跳绳 / 仰卧起坐 / 读书),点一下即记录当天打卡;类型可在家长后台「浮动打卡项」里新增、改名、删除,仪表盘即时更新。
  • 🏅 轻量徽章:由任务完成数、读书、运动等实时派生(如「迈出第一步」「任务小达人」「单科全通关」「学年进度过半」等),随进展自动获得;仪表盘顶部轮播已得徽章,点开可看全部(含未解锁)与获得时间。
  • 🎨 主题:家长后台「孩子信息」里设定默认主题(浅色 / 暗色 / 糖果 / 海洋),服务端直接应用,刷新即生效。
  • 🔒 双角色:孩子无 PIN 直进仪表盘;家长后台 /admin 用密码管理课表、健康记录与数据(含一键导出 JSON)。

运行(不用 Docker

需要 Python 3.10+。

cd tracker
python -m venv venv
venv\Scripts\activate        # Windows
#   macOS/Linux: source venv/bin/activate
pip install -r requirements.txt
python app.py

启动后打开:

首次启动会自动建库并写入一份示例数据,方便直接看效果。

配置(环境变量,可选)

变量 默认 说明
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、小学阶段、手动录课表、轻量徽章。
  • 多孩子、教材章节模板、更多健康指标可在现有数据模型上平滑扩展。
S
Description
星火纪元 - 小学生个人成长追踪 (Flask + SQLite, 自托管)
Readme 125 KiB
Languages
Python 52%
HTML 28.2%
CSS 19.8%