
router
TanStack Router is a type-safe, data-driven React router with built-in caching, prefetching, and nested layouts, while TanStack Start extends it into a full-stack SSR framework.
完全隐私优先——身体数据只保留在用户自己的机器上,并内置自动去重、周期推导和相位着色功能,无需 Node.js 或外部服务即可运行。
极简自托管经期记录。一个 JSON 文件存数据、两个 API、一页前端——没有账号、没有云、没有广告、没有数据上报,你的身体数据只待在你自己的机器上。
period_state.json,备份 = 复制一个文件pip install -r requirements.txt
python server.py
# 打开 http://127.0.0.1:8080
前端构建产物已带在 static/ 里,克隆即用,不装 Node 也能跑。
| 环境变量 | 默认 | 说明 |
|---|---|---|
PERIOD_DATA | ./period_state.json | 数据文件路径 |
PERIOD_PORT | 8080 | 端口 |
PERIOD_HOST | 127.0.0.1 | 监听地址。要对外服务请自己套认证(反代 + Basic Auth 等) |
GET /api/period/state
→ {state: {starts: ["YYYY-MM-DD", ...], period_length: 5}, derived: {...}}
POST /api/period/log
body: {action: "start" | "undo", date?: "YYYY-MM-DD"} # date 省略 = 今天
→ 同上
derived 字段:last_start / next_due / recorded / cycles / avg_cycle / period_length / day_of_cycle / days_until_next / phase。
cd web
npm install
npm run dev # 开发:5173 端口,API 代理到 :8080
npm run build # 构建落到 ../static
pip install pytest
pytest tests/
⚠️ 预测仅供参考,不构成医疗建议;周期异常请咨询医生。
MIT
极简自托管经期记录 · self-hosted period tracker: one JSON file, two APIs, one page
根据分类、Topic 和编程语言匹配的相似项目。

TanStack Router is a type-safe, data-driven React router with built-in caching, prefetching, and nested layouts, while TanStack Start extends it into a full-stack SSR framework.
scriptc compiles ordinary TypeScript into small, fast native executables without needing Node.js, V8, or any JavaScript runtime in the binary.
A React component library that renders six hand-tuned animated thought orb loading indicators on a plain 2D canvas, with two purpose-tuned sizes and automatic theme detection for AI and agent UIs.