main
星火纪元 · 儿童个人成长系统(自托管)
给自家孩子用的轻量成长记录 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
启动后打开:
- 仪表盘: 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、小学阶段、手动录课表、轻量徽章。
- 多孩子、教材章节模板、更多健康指标可在现有数据模型上平滑扩展。
Description
Languages
Python
52%
HTML
28.2%
CSS
19.8%