一个面向程序员刷题、整理面试经验、生成个性化题集的项目骨架。
backend/:Spring Boot后端,负责岗位画像、题集生成、OpenAI 调用、MySQL 数据持久化frontend/:uni-app + Vue 3客户端,面向Web / 微信小程序 / Androidios-swiftui/: 原生SwiftUIiOS 客户端骨架docs/: 从架构到运行、从后端到 iOS 接入的分步文档
因为你明确说了 iOS 要用 SwiftUI,所以我把项目改成了 API-first 架构:
- 后端统一提供 REST API
Web / 微信小程序 / Android共享一套uni-app前端iOS单独走SwiftUI,更符合你的技术栈
cd /Users/geraldgan/Documents/GeraldGan/实践/InterviewSystem/backend
mysql -uroot -p -e "CREATE DATABASE IF NOT EXISTS interview_system DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/interview_system?createDatabaseIfNotExist=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8"export SPRING_DATASOURCE_USERNAME="root"export SPRING_DATASOURCE_PASSWORD="你的 MySQL 密码"export OPENAI_API_KEY="你的 OpenAI Key"
JAVA_TOOL_OPTIONS='-Djavax.net.ssl.trustStoreType=KeychainStore -Djavax.net.ssl.trustStore=NONE' ./gradlew bootRun如果你暂时还没有配置 OPENAI_API_KEY,系统也能跑,因为默认会自动回退到本地模拟题生成器。现在需要额外保证本地 MySQL 已启动且上述连接信息可用。
后端启动后会自动准备一个演示登录账号,方便你直接联调:
- 用户名:
test - 密码:
123456 - 登录接口:
POST /api/auth/login
cd /Users/geraldgan/Documents/GeraldGan/实践/InterviewSystem/frontend
npm install
npm run dev:h5如果你想按步骤理解网站端是怎么开发、怎么运行、怎么调试的,直接看:
cd /Users/geraldgan/Documents/GeraldGan/实践/InterviewSystem/frontend
npm run dev:mp-weixin- 后端
./gradlew test --no-daemon通过,测试环境仍使用 H2 内存库以避免依赖本地 MySQL SwiftUI源码已通过swiftc -typecheckuni-app前端已通过npm run build:h5
如果你现在主要想系统看懂后端,建议先从这份阅读导航开始:
如果你已经开始练手写后端接口,尤其是登录接口,也可以直接看这份练手导航: