# AI-SS **Repository Path**: Lemons-e/AI-SS ## Basic Information - **Project Name**: AI-SS - **Description**: 爱刷刷-AI智能面试刷题平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-05-06 - **Last Updated**: 2026-03-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎯 爱刷刷面试平台(AI Interview Assistant Platform) ## 📖 项目简介 **爱刷刷面试平台** 是一个面向计算机专业学生和求职者的智能面试训练平台。项目结合 **AI 问答、技术社区、搜索系统和用户互动机制**,帮助用户更高效地进行面试准备和技术交流。 在实际求职过程中,很多同学会遇到: * 面试题不知道从哪里开始练习 * 技术问题没有人可以讨论 * 知识点零散、缺乏系统整理 因此我们开发了这个平台,希望通过 **AI 辅助 + 社区交流 + 面试题练习** 的方式,打造一个轻量但实用的面试学习工具。 平台支持 **用户系统、帖子交流、点赞收藏、全文搜索以及 AI 面试问答等功能**。 整体采用 **前后端分离架构**,后端基于 Spring Boot 构建,前端基于 Next.js 实现,并结合 Redis 和 Elasticsearch 提供高效的数据访问与搜索能力。 --- # 🏗️ 系统架构 ![输入图片说明](%E5%9B%BE%E7%89%871.png) ``` Frontend (Next.js) │ │ REST API ▼ Backend (Spring Boot) │ ┌──────┼─────────┐ │ │ │ MySQL Redis Elasticsearch ``` 系统主要由以下几个部分组成: **前端客户端** * 使用 Next.js + React 构建用户界面 * 负责页面展示、用户交互和接口调用 **后端服务** * 基于 Spring Boot 构建 RESTful API * 处理用户逻辑、帖子管理、AI接口调用等核心业务 **数据库** * 使用 MySQL 存储用户信息、帖子数据和互动记录 **缓存系统** * 使用 Redis 实现 Session 管理与部分热点数据缓存 **搜索引擎** * 基于 Elasticsearch 实现帖子全文检索,提高搜索效率 --- # 🛠️ 技术架构 ## 后端技术 项目后端主要基于 Java Web 技术栈构建: * Spring Boot 2.7 * Spring MVC * MyBatis / MyBatis Plus * Spring AOP * Spring Scheduler 定时任务 * Spring Transaction 事务管理 * Spring Session + Redis 这些技术共同构成了一个较完整的企业级开发框架。 --- ## 数据存储 系统采用多种数据存储方案以满足不同场景需求: * **MySQL**:存储核心业务数据 * **Redis**:缓存和分布式 Session * **Elasticsearch**:全文搜索引擎 * **腾讯云 COS**:用于文件上传和资源存储 --- ## 常用工具库 在开发过程中,我们引入了一些常用工具库来提升开发效率: * **EasyExcel**:用于 Excel 文件处理 * **Hutool**:Java 工具类库 * **Apache Commons Lang3**:字符串和工具方法 * **Lombok**:减少重复代码,提高开发效率 --- ## 前端技术 前端部分主要使用现代 Web 技术实现: * Next.js * React * TypeScript * Tailwind CSS Next.js 提供了良好的开发体验和页面组织结构,使得前端项目更加清晰和易维护。 --- # ✨ 核心功能 ## 👤 用户系统 平台提供基础的用户管理功能,包括: * 用户注册 * 用户登录 / 注销 * 用户信息修改 * 用户权限控制 系统通过 **Redis Session** 实现登录状态管理,提高访问效率。 --- ## 💬 技术帖子社区 为了方便用户交流技术问题,平台提供了简单的技术社区模块。 用户可以: * 发布技术帖子 * 编辑或删除自己的帖子 * 浏览其他用户发布的内容 * 查看帖子详情并进行互动 社区模块可以帮助用户在准备面试的过程中进行经验交流。 --- ## 👍 点赞与收藏 平台提供基础互动功能,增强社区活跃度: * 帖子点赞 * 取消点赞 * 收藏帖子 * 取消收藏 * 查看收藏列表 用户可以将重要内容保存下来方便后续复习。 --- ## 🔍 搜索系统 为了提高内容查找效率,系统集成了 **Elasticsearch 搜索引擎**。 用户可以通过关键词快速查找帖子,例如: * 技术关键词搜索 * 标题搜索 * 内容全文搜索 系统还实现了: * **数据库 → Elasticsearch 全量同步** * **数据库 → Elasticsearch 增量同步** 通过定时任务保证搜索数据与数据库保持一致。 --- ## 🤖 AI 面试助手 AI 面试助手是平台的重要功能之一。 用户可以向 AI 提问各种技术问题,例如: * Java 面试题 * 操作系统知识 * 数据结构问题 * 项目经验相关问题 AI 会返回对应的解释或答案,帮助用户更好地理解知识点。 该功能可以作为面试前的 **快速复习工具**。 --- # ⚙️ 系统工程化设计 在项目开发过程中,我们也尝试引入一些工程化设计,以提升代码的可维护性: * 统一响应结果封装 * 全局异常处理 * 自定义错误码体系 * 接口访问日志记录 * 全局跨域配置 * 权限校验注解 * Long 类型精度问题处理 * 多环境配置管理 * Swagger + Knife4j 接口文档 这些设计能够使系统结构更加规范。 --- # ⚡ 代码生成器 项目中还实现了一个 **简单的业务代码生成器**。 开发者可以通过配置参数,自动生成基础代码,例如: * Entity * Mapper * Service * Controller 这可以大幅减少重复的 CRUD 开发工作,提高开发效率。 --- # 📁 项目结构 ``` project ├── backend │ ├── controller │ ├── service │ ├── mapper │ ├── model │ └── job │ ├── frontend │ ├── app │ ├── components │ └── pages │ └── sql ``` 整体结构按照常见的 **前后端分离项目组织方式**进行划分,便于后续维护与扩展。 --- # 🚀 快速启动 ## 1 启动后端服务 ### 修改数据库配置 编辑 `application.yml` ```yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/interview_platform username: root password: 123456 ``` --- ### 初始化数据库 执行 SQL 文件: ``` sql/create_table.sql ``` 创建项目所需的数据库表。 --- ### 启动项目 启动 Spring Boot 后端服务后,访问: ``` http://localhost:8101/api/doc.html ``` 即可打开接口文档页面,并在线调试 API。 --- ## 2 Redis 配置 修改 Redis 连接配置: ```yaml spring: redis: host: localhost port: 6379 password: 123456 ``` 开启 Session 存储: ```yaml spring: session: store-type: redis ``` --- ## 3 Elasticsearch 配置 编辑配置: ```yaml spring: elasticsearch: uris: http://localhost:9200 ``` 创建索引: ``` PUT post_v1 ``` 索引结构参考: ``` sql/post_es_mapping.json ``` --- ## 4 启动前端 进入前端目录: ```bash npm install npm run dev ``` 浏览器访问: ``` http://localhost:3000 ``` 即可打开前端页面。 --- # 🧪 单元测试 项目中包含基础的单元测试示例: * JUnit5 用于验证部分核心业务逻辑。 --- # 🌟 项目特点 与普通练习项目相比,本项目尝试结合多种技术实现一个较完整的 Web 系统: * 前后端分离架构 * Redis 分布式 Session * Elasticsearch 全文搜索 * AI 面试问答功能 * 自动代码生成工具 * 基本的工程化规范设计 做出来会像 **GitHub 上 5k ⭐ 项目的 README 水平**,面试官一看就很加分。 ![输入图片说明](%E5%9B%BE%E7%89%871.png)