a1354013-alt/fitness-plateau-detector
GitHub: a1354013-alt/fitness-plateau-detector
全栈体重停滞检测系统,利用规则逻辑识别平台期并提供可视化洞察与建议。
Stars: 0 | Forks: 0
# PlateauBreaker
PlateauBreaker 是一個「體重停滯(plateau)偵測 + 建議」的小型全端作品:
- Backend: FastAPI + SQLModel + Alembic + SQLite(DB-level CHECK constraints)
- Frontend: Vue 3 + Vite + Pinia + PrimeVue
- Contract: OpenAPI 匯出後由 `openapi-typescript` 生成 `frontend/src/generated/api.ts`,CI 會檢查 drift
## 截图



## 要求
- Python: 3.11(CI 使用 3.11)
- Node: 20.19.0(由 repo root `.nvmrc` 固定;`frontend/.npmrc` 啟用 `engine-strict`)
## 快速开始
### 后端
```
cd backend
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt -c constraints.txt
python -m pip install -r requirements-dev.txt -c constraints.txt
# 应用迁移
alembic -c alembic.ini upgrade head
# 开发服务器
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000 --env-file ../.env
```
### 前端
```
cd frontend
npm ci
npm run dev
```
- Dev server 會 proxy `/api` 到 `http://localhost:8000`(見 `frontend/vite.config.ts`)
- 若不使用 proxy(或 production),請設定 `VITE_API_BASE_URL`(見 `frontend/.env.example`)
## Docker(演示)
```
docker compose up --build
```
打開 `http://localhost:8000`:Backend 會在有 build artifact 時提供 SPA(並處理 history fallback)。
## CI Parity: Local Verification (與 CI 一致的驗收命令)
以下命令對齊 `.github/workflows/ci.yml`;建議從 repo root 依序執行:
```
# 合约
python scripts/check_version_sync.py
python scripts/check_api_contract.py
# 后端
cd backend
ruff check .
mypy app/
pytest -q
alembic -c alembic.ini upgrade head
# 前端
cd ../frontend
npm ci
npm run lint
npm run test:ci
npm run build
# 发布打包(冒烟测试)
cd ..
python scripts/make_release_zip.py --out-dir release
python scripts/validate_release_zip.py --out-dir release
# 集成冒烟测试(后端提供构建的前端服务)
python scripts/smoke_test_ci.py
# 端到端(Playwright)
cd frontend
npx playwright install --with-deps
npx playwright test
```
标签:Alembic, AV绕过, Docker, FastAPI, OpenAPI, Pinia, PrimeVue, SEO, SQLite, SQLModel, TypeScript, Vite, Vue 3, 交互仪表板, 代码示例, 体检监测, 体重停滞, 体重管理, 健康追踪, 健身数据, 前后端分离, 安全插件, 安全防御评估, 数据分析, 行动建议, 规则检测