# GdeiAssistant **Repository Path**: darkStone/GdeiAssistant ## Basic Information - **Project Name**: GdeiAssistant - **Description**: 广东第二师范学院校园助手系统是基于 Spring Boot 4 + Vue 3 构建的现代化 Monorepo,通过网络爬虫与 RESTful API 驱动 Android/iOS/小程序多端生态。全面适配 Docker 一键编排与 GraalVM 原生编译。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://github.com/GdeiAssistant - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 73 - **Created**: 2026-04-17 - **Last Updated**: 2026-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GdeiAssistant | 广东第二师范学院校园助手系统     广东第二师范学院校园助手系统采用了网络爬虫模拟登录技术和 Spring Boot 4 以及 Vue 3 框架开发构建,实现了前后端分离和无状态架构。 项目适配了 Docker 容器化与 GraalVM Native Image 技术,支持以原生二进制文件运行,具有毫秒级启动与极低内存占用的优势。 --- ## 📂 目录结构概览 ```text GdeiAssistant/ # 仓库根目录 ├── src/main/java/ # 后端 Java 源码 ├── frontend/ # 前端 Vue.js 源码 │ ├── src/ │ ├── package.json │ └── vite.config.js ├── db-init/ # 数据库初始化脚本 │ ├── mysql/ # MySQL 结构与 Mock 数据 │ └── mongodb/ # MongoDB 初始化 ├── docker-compose.yml # 基础设施全栈编排 └── .env.template # 环境变量配置模板 ``` --- ## 快速入门 **1. 环境** 安装 Docker + Docker Compose。若需要本地前端开发,建议使用 Node.js `24.14.1 LTS`(仓库已提供 `.nvmrc`)。 **2. 配置** 复制并编辑环境变量。**根目录 `.env` 默认只服务本地 `development`**,供 `./gradlew bootRun`、`docker compose up -d` 和本地前端联调用: ```bash cp .env.template .env ``` 填写本地开发所需的数据库密码、Redis、JWT 等(见模板注释)。环境语义统一为: - `development`:本地开发,保持仓库内全栈 Docker 方案 - `staging`:演示 / 测试环境,推荐前后端与数据库拆开部署 - `production`:正式环境,推荐前后端与数据库拆开部署 > **当前约定:** > - 根目录 `.env` 保持 `development` 默认值,优先指向本地 `localhost` > - `staging` / `production` 不要直接复用本地 `.env` > - 演示 / 生产请改用各自独立的环境变量配置,例如 Azure App Service App Settings、CI Secret、部署平台 Secret 文件 > **演示 / 生产外部数据库常用变量:** > - MySQL:`DB_USERNAME`、`DB_JDBC_PARAMS`、`DB_JDBC_URL_APP`、`DB_JDBC_URL_LOG`、`DB_JDBC_URL_DATA` > - Redis:`REDIS_USERNAME`、`REDIS_SSL_ENABLED` > - MongoDB:`MONGO_URI` > > 当前 MySQL 仍默认使用三套 schema:`DB_NAME`、`DB_NAME_LOG`、`DB_NAME_DATA`。 > **生产环境必填变量:** > - `JWT_SECRET` — JWT 签名密钥(至少 32 位随机串) > - `CRON_SECRET` — 定时任务触发密钥(任意随机串) > - `ENCRYPT_ENABLE=true` — 启用敏感字段加密 > - `ENCRYPT_PRIVATE_KEY` — AES 加密密钥 > > 缺少以上变量时,生产环境会拒绝启动。 **3. 运行** - **开发全栈(Docker)**:`docker compose up -d`(前后端 + MySQL + Redis + MongoDB)。 - **测试全栈编排**:`docker compose -f docker-compose-staging.yml up -d`。 - **生产全栈编排**:`docker compose -f docker-compose-prod.yml up -d`。 - **仅后端**:`./gradlew bootRun`(自动加载根目录 `.env`,按 `development` 语义启动)。 - **演示 / 生产推荐形态**:后端单独部署,前端单独构建,数据库改为外部服务;例如当前演示环境前端可使用 `https://gdeiassistant.pages.dev`,后端 API 使用 `https://gdeiassistant.azurewebsites.net/api`。 - **仅前端**:进入前端目录安装依赖并启动开发服务器: ```bash cd frontend npm install npm run dev ``` 前端开发服务器默认运行在 `http://localhost:5173`,需配置接口代理指向本地后端(如 `http://localhost:8080`),参见 `frontend/vite.config.*` 或 `frontend/.env*`。 > 如果你要在本机临时直连演示环境,请不要改仓库根目录 `.env` 的默认语义;更稳妥的做法是单独导出一次环境变量,或在 IDE / 部署平台里覆盖 `SPRING_PROFILES_ACTIVE`、数据库连接串和 `CORS_ALLOWED_ORIGIN_PATTERNS`。 更完整的环境矩阵见:`docs/environment-matrix.md`。 --- ## 技术栈 | 端 | 技术 | |----|------| | 后端 | JDK 17、Spring Boot 4.0、MySQL 8.0、MyBatis-Plus、MongoDB、Redis、Gradle 8.14、GraalVM Native Image(可选) | | 前端 | Vue 3、Vue Router、Vite、Axios、WeUI、Node.js 24.14.1 LTS | --- ## 预览