面试陪跑工作台 - 简历管理、投递追踪、学习准备、面试复盘一站式工具
拆分方案: - index.html 仅保留页面结构与资源引用 - css/ 拆为 base(变量布局) + components(通用组件) + responsive(移动端适配) - js/core/ 拆为 utils(工具) + storage(数据层) + modal(模态框) - js/modules/ 按业务拆分 7 个模块 + constants(常量) - js/nav.js 统一导航与 refreshAll() 刷新入口 - js/app.js 初始化入口 架构约束: - 脚本按依赖顺序加载: utils->storage->modal->nav->constants->modules->app - 渲染函数严禁互调,统一由 Nav.refreshAll() 调度,避免递归环 - 新增模块只需新建文件+注册即可 功能增强: - 初始化预渲染全部页面,切换立即可见 - 新增示例数据(含逾期项)与载入示例/清空数据入口 - 仪表盘新增今天要处理区,聚合逾期任务/临近面试/待跟进投递 文档: - README 补充模块划分与架构约定 - deployment.md 新增部署速查卡(环境/配置项/待提供信息/最短命令) 并强调必须整目录部署(含 css/ js/),遗漏会白屏 |
||
|---|---|---|
| assets | ||
| css | ||
| docs | ||
| js | ||
| .gitignore | ||
| index.html | ||
| README.md | ||
面试陪跑工作台
帮助求职者系统化管理求职面试全流程的 Web 应用,涵盖简历管理、投递追踪、学习准备、面试日程、复盘笔记、目标公司库六大模块。
功能模块
核心模块(需求侧)
| 模块 | 说明 |
|---|---|
| 简历管理 | 创建维护多份简历版本,每份标注「适用方向」「版本号」「文件名」,并统计各版本被用于多少次投递 |
| 投递追踪 | 记录公司、岗位、使用的简历版本、渠道、投递日期、反馈状态(已投递/已查看/笔试/面试中/已通过/被拒),支持按状态、简历版本、关键词多维筛选 |
| 学习准备 | 面试知识点学习任务管理,含分类、优先级、截止日期、完成进度条,逾期自动标红置顶 |
拓展模块(主动补充)
| 模块 | 说明 |
|---|---|
| 面试日程 | 面试时间/轮次/类型/地点/面试官记录,今日面试高亮,倒计时提醒 |
| 面试复盘 | 自评分(1-5 星)、做得好的、需要改进的、被问题目、其他笔记,形成可复用的应答素材库 |
| 目标公司库 | 意向公司的行业、地点、目标岗位、期望薪资、优先级、官网、备注,投递时可自动补全 |
辅助功能
- 仪表盘总览:投递漏斗(投递→已查看→笔试→面试→Offer)、学习进度、关键指标卡片
- 今天要处理:自动聚合逾期学习任务、3 天内截止任务、临近面试、待跟进投递,红色标注 + 一键处理
- 数据导入导出:JSON 备份与恢复,防止清缓存丢数据
- 响应式设计:PC 侧边栏导航 / 移动端底部 Tab,手机浏览器可添加到桌面当 APP 用
技术栈
- 原生 HTML + CSS + JavaScript,零外部依赖(无框架、无 CDN、无图表库)
- 数据存浏览器
localStorage - 图表(漏斗图、进度条)为纯 CSS 手写,图标为内联 SVG
- 无需构建步骤,部署即静态文件
项目结构(模块化,便于维护)
interview-coach/
├── index.html # 页面结构入口(仅 HTML + 资源引用)
├── css/
│ ├── base.css # 变量、重置、布局、侧边栏、移动端导航
│ ├── components.css # 按钮/卡片/表单/表格/模态框/Badge/进度条/漏斗图
│ └── responsive.css # 响应式适配(<768px 移动端规则)
├── js/
│ ├── core/
│ │ ├── utils.js # 工具函数(日期、转义、Toast、下载)
│ │ ├── storage.js # 数据层(localStorage 读写、示例数据、导入导出)
│ │ └── modal.js # 模态框系统(含二次确认)
│ ├── modules/
│ │ ├── constants.js # 业务常量(状态、渠道、分类、优先级)
│ │ ├── dashboard.js # 仪表盘
│ │ ├── resume.js # 简历管理
│ │ ├── application.js # 投递追踪
│ │ ├── study.js # 学习准备
│ │ ├── schedule.js # 面试日程
│ │ ├── review.js # 面试复盘
│ │ └── company.js # 目标公司
│ ├── nav.js # 导航 + 统一刷新入口 refreshAll()
│ └── app.js # 初始化入口(最后加载)
├── docs/
│ └── deployment.md # 部署文档
├── README.md
└── assets/ # 静态资源预留目录
架构约定
- 脚本加载顺序有依赖,在
index.html底部按固定顺序引入,勿随意调整:utils → storage → modal → nav → constants → 业务模块 → app - 统一刷新入口:所有数据变更后调用
App.Nav.refreshAll(),由它按序刷新筛选器、仪表盘、当前页。 渲染函数之间严禁互调(避免递归环),这是硬性架构约束。 - 新增模块只需:在
js/modules/新建文件 → 在index.html加<script>→ 在app.js的renderAllPages()和Nav.register()中注册。
快速开始
本地直接双击 index.html 即可使用(无需服务器)。
如需部署到服务器,见 docs/deployment.md。
远程仓库
- 地址:https://git.shawlab.cn/workbuddy001/interview-coach
- 默认分支:main
- 克隆:
git clone https://git.shawlab.cn/workbuddy001/interview-coach.git