Skip to content

bytewalking/java-interview-trainer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Interview Trainer

基于 JavaGuide 题库构建的 Java 面试刷题平台,支持随机刷题、错题本、收藏、自定义题目和 AI 生成面试题。

功能

  • 随机刷题 — 按分类/子分类随机抽题,支持自主作答和 AI 批改
  • 分类浏览 — 按模块系统学习,记录阅读时长
  • 错题本 — 标记错题,基于间隔重复安排复习
  • 收藏 — 随时收藏重点题目
  • 自定义题目 — 创建个人题目或公开到公共题库
  • AI 生成 — 调用 Claude API,从题库原题生成更贴近面试场景的问法

题库来源:Java、数据库(MySQL/Redis)、计算机基础、系统设计(Spring/MyBatis)、分布式、高性能、高可用,共约 2000+ 道

技术栈

技术
前端 Next.js 16 · React 19 · TypeScript · Tailwind CSS v4 · Zustand
后端 Spring Boot 3.3 · Spring Security · JPA/Hibernate · JWT
数据库 MySQL 8
AI Anthropic Claude(可选)

快速启动

前置条件

  • Java 17+
  • Node.js 18+
  • Docker

1. 启动 MySQL

docker run -d \
  --name mysql-trainer \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -e MYSQL_DATABASE=java_trainer \
  -p 3306:3306 \
  mysql:8

2. 启动后端

cd backend
./mvnw spring-boot:run

后端默认监听 http://localhost:8080,首次启动 Hibernate 自动建表。

导入题库(仅首次,需本地有 JavaGuide 仓库):

backend/src/main/resources/application.yml 中配置 JavaGuide 路径:

importer:
  javaguide-path: /path/to/JavaGuide/docs

然后执行:

./mvnw spring-boot:run -Dspring-boot.run.arguments=--import

3. 启动前端

cd frontend
npm install
npm run dev

前端默认访问 http://localhost:3000

配置

AI 生成(可选)

backend/src/main/resources/application.yml 中填入 Anthropic API Key:

ai:
  anthropic:
    api-key: "sk-ant-xxxxxxxx"
    model: claude-haiku-4-5-20251001

获取 Key:前往 console.anthropic.com 注册并创建。

不配置时 AI 生成功能不可用,其余功能正常。

其他配置项

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/java_trainer
    username: root
    password: 123456

jwt:
  secret: <base64-encoded-secret>   # 生产环境请替换

项目结构

java-interview-trainer/
├── backend/                        # Spring Boot 后端
│   └── src/main/java/com/javatrainer/
│       ├── controller/             # REST API
│       ├── service/                # 业务逻辑(含 AI 生成)
│       ├── entity/                 # JPA 实体
│       ├── repository/             # Spring Data JPA
│       ├── security/               # JWT 认证
│       ├── importer/               # JavaGuide 题库导入
│       └── parser/                 # Markdown 解析器
├── frontend/                       # Next.js 前端
│   └── src/
│       ├── app/                    # 页面路由
│       ├── components/             # 通用组件
│       ├── store/                  # Zustand 状态管理
│       └── lib/api.ts              # API 封装
└── README.md

API 概览

方法 路径 说明
POST /api/auth/register 注册
POST /api/auth/login 登录
GET /api/questions/random 随机题目
GET /api/questions/categories 分类列表
POST /api/practice/submit 提交作答
GET /api/practice/wrong 错题列表
GET/POST/DELETE /api/favorites/** 收藏管理
GET/POST/PUT/DELETE /api/custom-questions/** 自定义题目
POST /api/ai/generate AI 生成面试题
GET /api/stats/summary 学习统计

About

基于 JavaGuide 题库构建的 Java 面试刷题平台,支持随机刷题、错题本、收藏、自定义题目和 AI 生成面试题

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors