Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

智慧校园管理系统 Smart Campus

Java Spring Boot Maven License

智慧校园全栈解决方案 · 后端采用 Maven 多模块架构 · 默认端口 8100


项目概览

  • 多模块单体架构:父工程 backend/ 下包含 26 个业务模块,通过 smart-campus-app 聚合运行,支持按需装配。
  • Spring Boot 3 + Java 21:全面使用 Spring Boot 3.5.0、Jakarta EE 10 生态,默认开启 Flyway、Springdoc、Knife4j、Resilience4j、Micrometer 等基础能力。
  • 多数据源与中间件:内置 PostgreSQL/MySQL/Oracle 三套 Flyway 脚本,支持 Redis、MongoDB、RabbitMQ,可通过 .env 灵活切换。
  • 丰富业务域:已落地系统管理、统一认证、教务、考勤、一卡通、通知消息、宿舍、奖助学金、图书、后勤、AI 助手等核心场景,其他模块持续建设中。
  • 一站式运维支持docker/ 提供 PostgreSQL、Redis、MongoDB、SkyWalking、Prometheus、Grafana、AlertManager 等依赖服务的 compose 编排,可一键启动开发环境。

📌 本仓库的 README 聚焦后端现状与使用方式,如需前端说明见 #前端工程


仓库结构

smart-campus/
├── backend/                 # Java 后端多模块工程
│   ├── pom.xml              # 父 POM,声明所有子模块
│   ├── smart-campus-app/    # 聚合启动模块(Spring Boot 应用)
│   ├── smart-campus-common/ # 公共基础设施(异常、工具、缓存、配置)
│   ├── smart-campus-auth/   # 统一认证与 OAuth2 / JWT
│   ├── smart-campus-system/ # 系统管理(用户、角色、菜单、字典)
│   ├── ...                  # 其他业务模块,见下表
├── frontend/                # Vue 3 + Vite 多包前端工程(pnpm workspace)
├── docker/                  # 开发依赖与监控组件的 Docker 编排
├── docs/                    # 需求、设计、接口文档与原型
├── scripts/                 # 辅助脚本
├── .env.example             # 默认环境变量示例
└── README.md                # 项目说明(当前文件)

后端模块一览

基础与公共能力

模块 说明 当前状态
smart-campus-common 公共异常、通用工具、缓存治理、基础实体、全局配置、AOP ✅ 已投入使用
smart-campus-auth 认证中心,提供 JWT/OAuth2 登录、账号安全策略、Token 管理 ✅ 已提供主要接口
smart-campus-system 用户、角色、菜单、组织、字典、日志等系统管理能力 ✅ 核心功能可用
smart-campus-file 文件存储抽象(本地/OSS/MinIO)、上传策略、文件预览 ✅ 已集成于聚合应用
smart-campus-workflow Flowable 流程引擎集成、流程与任务管理 🔄 基础骨架已搭建
smart-campus-data 数据中台、BI 仪表盘、风险评估接口 🔄 持续完善中

核心业务域

模块 说明 当前状态
smart-campus-edu 课程、选课、排课/排考、成绩、教学计划等教务场景 ✅ 核心流程已实现,持续补充
smart-campus-attendance 课堂考勤、签到码生成与校验、请假审批、统计分析 ✅ 可直接使用
smart-campus-dorm 宿舍楼/床位管理、入住调换、报修、访客、卫生检查 🔄 主流程在完善
smart-campus-card 一卡通卡片、充值消费、门禁访问、对账报表 ✅ 主干逻辑可用
smart-campus-finance 收费标准、账单、缴费、欠费策略 🔄 功能逐步完善
smart-campus-notice 公告、站内信、邮件、短信、推送策略 ✅ 已上线核心接口
smart-campus-ai 多模型(OpenAI/Gemini/DeepSeek/Qwen 等)接入与 Agent 工具库 ✅ 已可配置使用
smart-campus-library 图书借阅、座位预约、罚金、推荐系统 🔄 主要接口已实现
smart-campus-sfa 奖助学金(Scholarship & Financial Aid)申请、评审、发放 ✅ 核心流程已打通
smart-campus-club 社团活动、成员管理、活动审批 🔄 接口骨架可用
smart-campus-logistics 后勤保障(餐饮、保洁、校医院、车辆调度) 🔄 正在补充业务逻辑
smart-campus-monitoring 运维监控 API、告警 Webhook、指标采集 🔄 与监控体系联动中

集成与门户模块

模块 说明 当前状态
smart-campus-public 官网门户、招生信息公开、政策公示 ✅ 已提供查询接口
smart-campus-enrollment 招生迎新、离校清退流程 🔄 持续完善
smart-campus-integration 第三方系统对接(短信、支付、云服务等适配层) 🔄 适配器不断补充
smart-campus-gateway 对外开放接口网关(API Key、调用统计、开放平台) 🔄 Beta 阶段
smart-campus-app 聚合应用,负责装配所有依赖、暴露统一入口 ✅ 日常开发使用

ℹ️ 完整模块列表以 backend/pom.xml 为准,README 仅列举主要能力模块。若需裁剪功能,可在父 POM 中移除不需要的子模块,然后调整 smart-campus-app 的依赖。


技术栈

后端核心

  • Spring Boot 3.5.0、Spring Security、Spring MVC & WebFlux (SSE)
  • MyBatis-Plus、MyBatis 动态多租户支持、Flyway 数据迁移
  • Redisson、Caffeine、Resilience4j、Micrometer、Quartz、RabbitMQ

数据与中间件

  • PostgreSQL / MySQL / Oracle 三类型数据库
  • Redis、MongoDB(AI 会话与操作日志)、RabbitMQ(异步事件)
  • SkyWalking、Prometheus、Grafana、AlertManager(监控链路)

前端与工具

  • Vue 3、Vite、TypeScript、Pinia、Element Plus(前端仓库)
  • pnpm 多包管理、ESLint、Prettier
  • Docker Compose 一键环境、H2 内存数据库(测试 profile)

环境准备

组件 最低版本 说明
JDK 21 推荐 Temurin 21 LTS
Maven 3.9+ 支持 Maven Wrapper 或 mvnd
Node.js 18+ 前端构建需要(后端不强制)
pnpm 8+ 前端工作流默认包管理器
Docker & Compose 可选 用于启动数据库、缓存、监控等依赖

快速开始

  1. 克隆仓库

    git clone https://github.com/your-org/smart-campus.git
    cd smart-campus
  2. 准备环境变量

    cp .env.example .env
    # 按需修改数据库/Redis/邮件/AI 等配置
  3. 启动依赖服务(推荐)

    cd docker
    docker compose up -d      # PostgreSQL / Redis / MongoDB / 监控组件
    cd ..                     # 回到项目根目录
  4. 构建后端

    cd backend
    mvn clean install -DskipTests
  5. 运行聚合应用

    mvn -pl smart-campus-app spring-boot:run \
        -Dspring-boot.run.profiles=dev
    • 默认端口:http://localhost:8100
    • H2 快速演示:-Dspring-boot.run.profiles=test
  6. 访问接口文档

    • Swagger UI:http://localhost:8100/swagger-ui.html
    • Knife4j:http://localhost:8100/doc.html

✅ 首次启动时,Flyway 会根据 .env 中的数据库类型自动建库建表并初始化基础数据。


配置与环境变量

常用环境变量摘录(详见 .env.examplesmart-campus-app/src/main/resources/application*.yml):

类型 变量 默认值 说明
数据库 DB_TYPE postgresql 可选 postgresql / mysql / oracle
数据库 DB_URL / DB_HOST - 数据库连接信息,支持直接填写 URL
数据库 FLYWAY_ENABLED true 控制 Flyway 迁移,MySQL/Oracle 需设置 FLYWAY_LOCATION_SUFFIX
缓存 REDIS_HOST / REDIS_PASSWORD localhost / 空 Redis 连接信息
AI AI_ENABLED true AI 总开关;各模型需配置对应 *_API_KEY
安全 JWT_SECRET JWT 签名密钥(生产必填)
邮件 MAIL_HOST / MAIL_USERNAME / MAIL_PASSWORD - SMTP 配置,用于通知模块
消息队列 RABBITMQ_* localhost/guest 仅在启用异步任务时需要

更多可选项(MongoDB、SkyWalking、Prometheus、对象存储等)均可在 application.yml 中找到,对应的 ${ENV} 变量支持覆盖。


常用 Maven 命令

# 构建指定模块及其依赖
mvn -pl smart-campus-attendance -am clean package

# 运行单元测试
mvn -pl smart-campus-common test

# 启动聚合应用(dev 配置)
mvn -pl smart-campus-app spring-boot:run -Dspring-boot.run.profiles=dev

# 使用 H2 内存库快速演示(test 配置)
mvn -pl smart-campus-app spring-boot:run -Dspring-boot.run.profiles=test

# 生成并查看依赖树
mvn -pl smart-campus-app dependency:tree

API 文档与调试

  • OpenAPI/Swaggerhttp://localhost:8100/v3/api-docs
  • Knife4j UIhttp://localhost:8100/doc.html(中文界面)
  • Postman/Apifox 导入:直接使用 v3/api-docs JSON 地址
  • 认证流程:默认提供基于用户名/密码的登录接口,成功登录后返回 JWT,后续请求需在 Header 中携带 Authorization: Bearer <token>

监控与运维

  • docker/ 目录提供 PostgreSQL、Redis、MongoDB、SkyWalking、Prometheus、Grafana、AlertManager 等服务的 Docker Compose 编排。
  • 后端已集成 Micrometer + Prometheus 暴露指标,SkyWalking Agent 配置见 docker/README.md
  • management.endpoints.web.exposure.include 默认放开全部 Actuator,可按需调整。

前端工程

  • 代码位于 frontend/,采用 pnpm + Vite 组织多个子应用(后台、教师、学生门户等)。
  • 常用命令:
    cd frontend
    pnpm install
    pnpm dev              # 启动开发环境
    pnpm build            # 生产构建
  • 前后端通过 REST/JSON 通信,默认后台基地址 http://localhost:8100 可在前端 .env 中配置。

开发计划与贡献

  • ✅ 已完成:公共基础设施、认证授权、系统管理、教务、考勤、一卡通、通知消息、AI 集成等核心模块。
  • 🚧 正在推进:宿舍、财务、数据中台、工作流编排、开放网关等模块的业务细节与测试补充。
  • 📚 待完善:统一日志规范、自动化测试覆盖率、更多第三方集成适配。

欢迎通过 Issue / Pull Request 反馈问题或提交改进建议,提交前请确保代码风格与现有模块保持一致,并附带必要的中文注释与文档。


许可协议

项目基于 MIT License 开源,允许自由使用、修改与分发,请保留原作者版权声明。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages