AI智能面试平台-Day 1:项目环境搭建 + 前后端骨架
本系列记录我从 0 到 1 尽可能的复刻一个 JavaGuide 的开源 AI 智能面试平台的全过程。
技术栈:Vue3 + Spring Boot + PostgreSQL + Redis + Docker
我把原项目前端技术的React改成了我熟悉的Vue
Day 1 的目标很简单: 让项目真正跑起来,并完成前后端最小闭环。
一、Day 1 目标
今天结束时,我必须拿到这 5 个结果:
- Docker 依赖服务启动成功(PostgreSQL / Redis / MinIO)
- 前端 Vue3 项目启动成功
- 前端路由骨架可以正常切换页面
- 后端 Spring Boot 项目启动成功
- 浏览器访问 /api/health 能返回 JSON
也就是说:
项目从“空目录”,变成“可以运行的工程”。
二、项目整体结构设计
Day 1 首先确定了项目的基础目录结构:
ai-interview-platform/
frontend/
backend/
docs/
docker-compose.yml
README.md
这一步非常重要,因为:
项目结构一旦混乱,后面开发成本会指数级上升。
三、Docker 基础环境搭建
为了保证开发环境统一,我使用 Docker 启动依赖服务。
当前项目依赖:
- PostgreSQL
- Redis
- MinIO(对象存储,可选)
执行:
docker ps
当前运行容器:
- PostgreSQL: localhost:5432
- Redis: localhost:6379
- MinIO: localhost:9000
完成标准:
- 所有容器状态为 Running
- 端口成功映射
- Docker Desktop 能看到服务
四、前端项目初始化(Vue3)
前端使用:
- Vue3
- Vue Router
- Pinia
- Axios
- Vite
安装核心依赖
npm install vue-router
npm install pinia
npm install axios
五、前端项目结构设计
Day 1 不追求复杂功能,只做 最小可运行结构。
src/
api/
router/
stores/
views/
resume/
interview/
components/
assets/
六、核心页面设计
今天创建了 5 个核心页面:
- 上传简历
- 简历库
- 简历详情
- 模拟面试
- 面试记录
对应:
- UploadView.vue
- ResumeListView.vue
- ResumeDetailView.vue
- InterviewView.vue
- InterviewHistoryView.vue
七、Layout 布局实现
今天完成了:
左侧菜单 + 右侧内容区
Layout
├── Sidebar
└── Content
实现效果:
- 点击菜单
- 页面切换
- 路由正常工作
这一步意味着:
前端骨架已经完成。
八、前端验证请求能力(Axios)
为了验证前端网络请求链路,我封装了 Axios,并调用后端接口:
GET /api/health
验证内容:
- Axios 是否正常
- 代理是否正常
- CORS 是否正常
最终:
请求成功 页面成功展示结果
九、后端 Spring Boot 初始化
Day 1 的后端目标只有一个:
能启动,并能连接数据库。
使用依赖:
- Spring Web
- Validation
- Spring Data JPA
- PostgreSQL Driver
- Lombok
注意:
今天刻意不引入:
- Spring AI
- Redis
- MinIO SDK
- pgvector
原因:
Day 1 只做基础设施,不做业务。
十、数据库连接配置
配置内容:
- 端口:8080
- 数据库:PostgreSQL
- JPA:自动建表
示例:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/interview
username: postgres
password: 123456
jpa:
hibernate:
ddl-auto: update
完成标准:
Spring Boot 启动时没有数据库连接错误。
十一、实现健康检查接口
Day 1 唯一业务接口:
GET /api/health
返回:
{
"status": "UP",
"service": "ai-interview-platform"
}
作用:
- 验证后端是否正常运行
- 验证前后端通信是否成功
- 验证代理是否正确
十二、前后端联调成功
最终验证:
结果:
- 前端页面可访问
- 后端接口可访问
- Axios 请求成功
- JSON 成功展示
这一步意味着:
系统已经形成最小闭环。
十三、Day 1 最终验收清单
今天结束前,只检查这 8 条:
- 项目目录完整
- Docker 服务正常
- Vue3 项目可访问
- 前端路由骨架完成
- Spring Boot 工程可启动
- 数据库连接成功
- /api/health 可访问
- 写了 Day 1 开发记录
如果这 8 条都满足:
Day 1 就是成功的。
十四、Day 1 总结
今天没有做复杂功能,只完成了一件非常关键的事情:
把一个项目从 0 变成了一个真正可以运行的工程。
这是所有系统开发中最重要的一步。
因为:
一个跑不起来的系统,什么都不是。
十五、下一步(Day 2)
Day 2 的重点会是:
- 统一前端请求封装 request.ts
- 统一后端返回结构 Result
- 全局异常处理
- CORS 配置
- 数据库连接稳定
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)