落地输入合规、探索题库、报告日/时辰刷新、账号头像、OEJTS 量表,并补齐 H5 埋点与 Admin 漏斗;同步 ESS 工件、切至自建 Git、清理 GitHub Actions。 Co-authored-by: Cursor <cursoragent@cursor.com>
1.3 KiB
1.3 KiB
Tech Stack — frozen unless ADR says otherwise
Backend
- Language: Go 1.22+
- HTTP: gin
- DB: PostgreSQL
- Migrations: goose (or golang-migrate) under
apps/api/migrations/ - Log: structured (zap or slog wrapper). No
fmt.Printlnin business paths. - Module path:
github.com/yuxingu/digital-psychology/apps/api(Go import 身份;不表示托管在 GitHub) - Git host:
https://git.jackyu66.com/jack/digital-psychology.git(唯一远程origin;无 GitHub Actions)
User H5
- Vue 3 + TypeScript (
strict: true) + Vite - Router: vue-router
- State: pinia
- Package:
@yuxingu/user-h5
Shared
- npm workspaces at repo root
@yuxingu/sdkcreateClient({ baseURL, adapters })- TS camelCase in app; SDK converts to/from API snake_case
Mini program
- Native WeChat mini-program structure
- Same SDK via adapters (
wx.request, storage) - No shared Vue SFC with H5
Deploy
- Docker Compose for local Postgres:
deploy/docker-compose.yml - API health:
/api/v1/healthz(liveness). Add readiness when DB is wired. - Never deploy with image tag
latestin prod.
Do not introduce without ADR
- Another backend language
- GraphQL / gRPC as primary public API (REST is primary)
- ORM that hides SQL without team agreement
- New state manager besides Pinia on H5