Skip to content

icantsaylove/fitnessA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

每日状态追踪仪表板

一个基于 Next.js 的个人状态记录站点,首次进入页面即可填写当天的身体、心理、情绪评分,系统会结合定位自动补充天气、空气质量、日照等客观因素,同时提供 AI 智能洞察与行动建议,帮助你发现生活规律与潜在影响因素。

主要功能

  • ✍️ 每日状态记录:身体、心理、情绪评分,睡眠、压力、重点事件等补充信息,支持快捷评分与标签选择。
  • 📍 自动定位与环境采集:调用浏览器定位,结合 Open-Meteo 接口获取天气、空气质量、日照时长、月相等数据并写入本地 SQLite。
  • 🛰️ 节律面板:现代化玻璃拟态 UI,顶栏展示 7 日趋势卡片,主面板支持拖动滑杆、快捷标签与自定义因素。
  • 📈 趋势与相关性分析:折线图展示三项评分走势,自动计算情绪与环境指标的皮尔逊相关系数。
  • 🤖 AI 洞察助手:通过 OpenRouter 接入 LLM,从近期数据生成影响因素、行动建议、生活选项及推荐关注标签,可一键添加至表单。
  • 📒 历史速览:最近 14 天的关键指标表格,便于快速复盘。

环境配置

  1. 安装依赖

    npm install
  2. 配置 OpenRouter API Key

    在项目根目录下创建 .env.local(或其它 Next.js 支持的环境文件),写入:

    OPENROUTER_API_KEY=你的-openrouter-key

    出于安全考虑,不要将密钥写入仓库。可以在终端导出为临时环境变量或使用 .env.local

  3. 启动开发服务器

    npm run dev

    打开 http://localhost:3000 访问页面。首次进入请允许浏览器访问定位,便于自动补全环境信息。

  4. 编译生产构建(可选)

    npm run build
    npm run start

数据存储

  • 所有数据保存在仓库根目录下的 data/wellbeing.sqlite 文件。
  • 首次运行时会自动创建数据库与 entries 表,无需手动初始化。
  • 数据包含:打分记录、睡眠与压力备注、定位信息、天气/空气质量/日照等客观字段,以及原始 JSON 上下文,便于后续数据扩展。

API 说明

  • GET /api/entries:返回所有记录(按日期升序)。支持通过 ?date=YYYY-MM-DD 查询指定日期。
  • POST /api/entries:提交当日记录,后端会自动获取环境数据并写入 SQLite,已存在的日期会被覆盖更新。
  • GET /api/environment?lat=..&lon=..&date=YYYY-MM-DD:根据经纬度与日期返回环境快照。
  • POST /api/analysis:调用 OpenRouter LLM,基于近期数据输出 JSON 格式的分析、建议与推荐标签。

使用提示

  • 需要浏览器支持并允许定位权限。
  • 天气与空气质量数据来自 Open-Meteo 免费接口,无需额外密钥。
  • AI 分析使用 OpenRouter,默认模型为 openai/gpt-4o-mini,可根据需要在 src/app/api/analysis/route.ts 调整。
  • 建议定期备份 data/wellbeing.sqlite,以防设备异常导致数据丢失。

欢迎根据个人习惯扩展更多维度或统计分析!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors