# interview-daily-push **Repository Path**: wxl212/interview-daily-push ## Basic Information - **Project Name**: interview-daily-push - **Description**: 面试题每日推送系统 - 支持语雀题库导入、邮件定时推送、在线查看,助力面试准备 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-28 - **Last Updated**: 2026-01-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Interview Daily Push 📚

面试题每日推送系统

一个简洁优雅的面试题库管理和定时推送系统,支持从语雀等平台导入题库,通过邮件定时推送面试题,助力面试准备。

Spring Boot JDK MySQL License

--- ## ✨ 功能特性 ### 📖 题库管理 - **语雀题库导入**:支持从语雀知识库一键导入面试题目录 - **多级分类**:自动解析语雀文件夹结构,支持无限级分类 - **内容抓取**:自动抓取语雀文档内容,支持 Markdown 渲染 ### 📧 邮件推送 - **定时推送**:支持自定义推送时间,每天定时发送面试题 - **灵活配置**:可选择工作日/周末/每天推送 - **多邮箱支持**:支持配置多个接收邮箱 - **精美邮件**:响应式邮件模板,手机端阅读体验佳 ### 🎯 学习模式 - **顺序推送**:按题目顺序依次推送,系统学习 - **随机推送**:随机抽取题目,查漏补缺 - **在线查看**:邮件内点击即可在线查看完整题目内容 ### 🔧 系统管理 - **SMTP 配置**:支持多套 SMTP 邮箱配置 - **用户管理**:基于 Sa-Token 的权限认证 - **零配置启动**:自动创建数据库和表结构 ## 🛠️ 技术栈 | 技术 | 说明 | |------|------| | Spring Boot 3.2 | 基础框架 | | Sa-Token | 权限认证 | | MyBatis-Plus | ORM 框架 | | Thymeleaf | 模板引擎 | | Bootstrap 5 | 前端 UI | | MySQL 8.0 | 数据库 | | Flexmark | Markdown 解析 | | Hutool | 工具库 | ## 🚀 快速开始 ### 环境要求 - JDK 21+ - MySQL 8.0+ - Maven 3.6+ ### 1. 克隆项目 ```bash git clone https://github.com/your-username/interview-daily-push.git cd interview-daily-push ``` ### 2. 配置数据库 编辑 `src/main/resources/application.yml`,修改数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/interview_push?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&createDatabaseIfNotExist=true username: root password: your_password ``` > 💡 项目启动时会**自动创建数据库和表结构**,无需手动执行 SQL! ### 3. 运行项目 ```bash # 使用 Maven 运行 mvn spring-boot:run # 或者打包后运行 mvn clean package -DskipTests java -jar target/push-1.0.0.jar ``` ### 4. 访问系统 启动成功后访问:http://localhost:8000 **默认管理员账号**: - 用户名:`admin` - 密码:`admin` ## 📖 使用指南 ### 第一步:配置 SMTP 邮箱 进入「系统设置」页面,配置 SMTP 邮箱信息: | 邮箱 | SMTP 服务器 | 端口 | |------|-------------|------| | QQ邮箱 | smtp.qq.com | 465 (SSL) | | 163邮箱 | smtp.163.com | 465 (SSL) | | Gmail | smtp.gmail.com | 587 (TLS) | ### 第二步:添加题库来源 1. 进入「题库来源」页面 2. 点击「添加来源」 3. 填写语雀知识库 URL(如:`https://www.yuque.com/xxx/interview`) 4. 点击「同步」获取题目列表 ### 第三步:配置推送规则 1. 进入「推送配置」页面 2. 选择要推送的题库和分类 3. 设置推送时间(如:09:00, 18:00) 4. 选择推送日期类型(每天/工作日/周末) 5. 填写接收邮箱 ### 第四步:开始学习 - **定时推送**:系统会按配置的时间自动发送邮件 - **手动推送**:在「题目推送」页面点击「下一题」立即获取 ## 📁 项目结构 ``` src/main/java/com/interview/push/ ├── PushApplication.java # 启动类 ├── common/ # 公共类 │ ├── Constants.java # 常量定义 │ └── Result.java # 统一响应 ├── config/ # 配置类 │ ├── AppConfig.java # 应用配置 │ ├── DatabaseInitializer.java # 数据库初始化 │ ├── SaTokenConfig.java # 权限配置 │ └── ... ├── controller/ # 控制器 │ ├── AuthController.java # 认证接口 │ ├── PublicController.java # 公开访问(邮件链接) │ ├── PushController.java # 推送接口 │ └── ... ├── entity/ # 实体类 ├── mapper/ # Mapper 接口 ├── scheduler/ # 定时任务 │ └── EmailPushScheduler.java # 邮件推送调度器 └── service/ # 服务层 ├── impl/ └── YuqueParserService.java # 语雀解析服务 src/main/resources/ ├── application.yml # 配置文件 └── templates/ # 页面模板 ├── login.html # 登录页 ├── index.html # 首页/仪表盘 ├── source.html # 题库来源管理 ├── question.html # 题目管理 ├── push.html # 题目推送 ├── config.html # 推送配置 ├── settings.html # 系统设置 └── public/ # 公开页面(无需登录) └── question.html # 邮件在线查看 ``` ## 🐳 Docker 部署 ```bash # 构建镜像 docker build -t interview-daily-push . # 运行容器 docker run -d \ --name interview-push \ -p 8000:8000 \ -e SPRING_DATASOURCE_URL=jdbc:mysql://your-mysql:3306/interview_push \ -e SPRING_DATASOURCE_USERNAME=root \ -e SPRING_DATASOURCE_PASSWORD=your_password \ interview-daily-push ``` ## 📝 注意事项 1. **语雀访问**:部分语雀知识库需要登录才能访问,可在题库来源中配置 Cookie 2. **邮件发送**:QQ/163 邮箱需要开启 SMTP 服务并获取授权码 3. **定时任务**:推送时间精确到分钟,系统每分钟检查一次 4. **数据备份**:建议定期备份 MySQL 数据库 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 License [MIT License](LICENSE) ---

如果这个项目对你有帮助,请给一个 ⭐ Star 支持一下!