Skip to content

likefallwind/whichprofession

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

未来专业人格卡 H5

高考后专业兴趣探索 H5 —— 18 道大学场景题,基于 RIASEC 职业兴趣模型生成「未来专业人格卡」, 推荐优先探索的专业大类与职业出口。实现自 PRD v1.1(gaokao_future_major_personality_prd_v1_1.md)。

技术栈

Vite + React 18 + TypeScript。全屏移动端 H5,单一「科技蓝」主题。

开发

npm install
npm run dev        # 本地开发 http://localhost:5173
npm run build      # 类型检查 + 生产构建
npm run preview    # 预览生产构建
npm run test       # 单元测试(vitest)

服务器管理脚本

run.sh 封装了开发服务器的启停:

./run.sh start     # 启动(已在运行则不重复启动)
./run.sh stop      # 停止所有本项目的服务实例(含历史遗留的多个进程)
./run.sh restart   # 重启
./run.sh status    # 查看运行状态

stop 会同时按 PID 文件和工作目录扫描,能把之前多次启动遗留的所有实例一并清理干净。

生产部署与提交日志

生产环境不要使用 Vite dev server。推荐让 Nginx 直接托管 dist/,并通过多进程 submit-api 接收提交日志;所有 API 进程再写入单独的 log-writer 进程,统一落盘到 /root/work/data/logs

./run.sh prod-deploy       # npm run build → 启动日志进程/API 多进程 → 安装 Nginx 配置 → reload Nginx
./run.sh prod-status       # 查看 log-writer 和 submit-api 状态
./run.sh prod-restart      # 重启生产日志链路
./run.sh prod-bench-log    # 压测提交日志接口

常用环境变量:

API_PROCESSES=8 API_PORT_START=3101 ./run.sh prod-deploy
LOG_DIR=/tmp/whichprofession-logs INSTALL_NGINX=0 RELOAD_NGINX=0 ./run.sh prod-restart
BENCH_DURATION=10 BENCH_CONCURRENCY=500 ./run.sh prod-bench-log
SUBMIT_LOG_STRICT_VALIDATE=1 ./run.sh prod-restart  # 开启提交日志深度 JSON 校验,吞吐会下降

日志文件为 JSONL,当前日期文件在 LOG_DIR,历史文件归档到 LOG_DIR/history,单文件超过 100MiB 自动切分。

流程(8 屏)

首页 → 题前说明 → 18 题双选答题 → 生成动画 → 人格卡结果 → 完整专业报告 → 16 张图鉴 → 分享海报

目录

  • src/data/quiz.ts — 18 题 / 16 人格卡 / 99 专业大类 / RIASEC 元数据
  • src/lib/score.ts — 双层打分算法(PRD §8,含三处对齐修订);算法详解见 docs/algorithm.md
  • src/components/ — 手绘 SVG 图元 + 共享原子组件
  • src/screens/ — 8 屏页面
  • src/App.tsx — 屏幕状态机
  • design-reference/ — Claude Design 导出的原始设计稿存档

测试

npm run test 运行单元测试(vitest + Testing Library),覆盖:

  • 数据层data/quiz.test.ts)—— 18 题 / 16 人格 / 99 大类的结构与引用完整性、合规词检查
  • 打分算法lib/score.test.ts)—— PRD §8 主干 + 三处修订 + 边缘场景(空/部分作答、规范序、确定性)
  • 屏幕状态机App.test.tsx)—— 双选答题、取消、自动进题、上一题、答满 18 题
  • 8 屏组件screens/screens.test.tsx)—— 渲染冒烟与导航交互
  • 基础组件components/components.test.tsx)—— atoms 与 doodles

合规

无 MBTI 字样;含免责声明;文案统一用「优先探索 / 当前吸引力较低」,不出现「最适合 / 不适合 / 命定」(PRD §13)。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors