JMI-OPENATOMJMI-OPENATOM
首页
快速开始
  • 架构概览
  • 项目结构
  • 认证与权限
  • 数据库迁移
  • 配置说明
  • 开发规范
  • 架构概览
  • 项目结构
  • 路由与权限
  • API 请求
  • 组件库
  • UniApp 小程序
  • Docker 部署
  • CI/CD
  • Nginx 反向代理
  • 环境变量
  • QQ 机器人
  • 实验室管理系统
  • API 权限清单
  • 数据库表结构
  • 常见问题
首页
快速开始
  • 架构概览
  • 项目结构
  • 认证与权限
  • 数据库迁移
  • 配置说明
  • 开发规范
  • 架构概览
  • 项目结构
  • 路由与权限
  • API 请求
  • 组件库
  • UniApp 小程序
  • Docker 部署
  • CI/CD
  • Nginx 反向代理
  • 环境变量
  • QQ 机器人
  • 实验室管理系统
  • API 权限清单
  • 数据库表结构
  • 常见问题
  • 开始

    • 项目介绍
    • 快速开始
    • 项目结构详解
    • 常见问题

项目结构详解

顶层目录

openatom-system/
├── .github/workflows/          # CI/CD 工作流
├── astrbot/                    # AstrBot QQ 机器人
├── backend/                    # 后端 Spring Boot 项目
├── docs/                       # PRD 及 API 文档
├── docs-site/                  # VuePress 开发文档
├── frontend/
│   ├── web_pc/                 # PC 端 Vue 3 项目
│   ├── uni_app/                # UniApp 微信小程序
│   └── ios_app/                # iOS 原生项目(预留)
├── lab-management-system/      # 实验室管理系统后端
├── lab-ui-web/                 # 实验室管理系统前端
├── docker-compose.yml          # 全栈 Docker 编排
├── Dockerfile                  # 后端容器化配置
├── README.md                   # 项目说明
├── DESIGN.md                   # 设计规范
├── BOTPRD.md                   # QQ 机器人需求文档
└── LMS.md                      # 实验室管理系统需求文档

后端结构 (backend/)

backend/
├── db/                                 # 手工初始化 SQL
│   ├── create_table.sql                # 全量建表脚本
│   ├── alter_recruitment_form_feature.sql
│   └── cleanup_duplicate_memberships.sql
├── src/main/java/edu/jmi/openatom/server/openatomsystem/
│   ├── OpenatomSystemApplication.java  # 主启动类
│   ├── bootstrap/                      # 启动初始化器
│   │   ├── SystemUserInitializer.java  #   默认管理员
│   │   ├── SystemPermissionInitializer.java # 权限种子
│   │   ├── DefaultClubInitializer.java #   默认社团
│   │   ├── SchemaCompatibilityInitializer.java # 兜底
│   │   └── ...
│   ├── config/                         # 配置类
│   │   ├── SaTokenConfigure.java       #   Sa-Token 配置
│   │   ├── SaPermissionInterfaceImpl.java # 权限接口实现
│   │   ├── MybatisPlusConfig.java      #   MyBatis Plus 配置
│   │   ├── RedisConfig.java            #   Redis 配置
│   │   └── FlywayRepairStrategyConfig.java
│   ├── security/                       # 安全
│   │   └── PasswordService.java        #   密码服务
│   ├── controller/                     # 控制器(44 个)
│   │   ├── AuthController.java         #   认证
│   │   ├── ClubController.java         #   社团
│   │   ├── UserController.java         #   用户
│   │   ├── ApplicationController.java  #   入会申请
│   │   ├── MembershipController.java   #   成员管理
│   │   ├── ActivityController.java     #   活动
│   │   ├── BotManagementController.java #  QQ 群管理
│   │   └── ...
│   ├── service/                        # 服务层
│   │   ├── AuthService.java
│   │   ├── ClubService.java
│   │   ├── UserService.java
│   │   └── ...
│   ├── service/impl/                   # 服务实现
│   ├── mapper/                         # MyBatis Mapper 接口
│   ├── entity/                         # 实体类(60+ 个)
│   ├── dto/                            # 请求 DTO(70+ 个)
│   ├── vo/                             # 响应 VO
│   ├── enums/                          # 枚举
│   │   ├── SystemPermission.java       #   权限点枚举
│   │   ├── UserStatus.java
│   │   └── VoteResultVisibility.java
│   ├── common/                         # 公共工具
│   │   ├── Result.java                 #   统一响应
│   │   ├── Jsons.java                  #   JSON 工具
│   │   ├── Times.java                  #   时间工具
│   │   ├── FormSchemaFields.java       #   表单字段
│   │   └── web/                        #   Web 拦截器
│   │       ├── OperationLogInterceptor.java
│   │       ├── ApplicationSubmitRateLimitInterceptor.java
│   │       └── ...
│   ├── aspect/                         # AOP 切面
│   │   └── ControllerLogAspect.java    #   控制器日志
│   ├── exception/                      # 异常处理
│   │   ├── GlobalExceptionHandlerAdvice.java
│   │   └── RateLimitExceededException.java
│   └── cache/                          # 缓存
├── src/main/resources/
│   ├── application.yml                 # 主配置
│   ├── application-dev.yaml            # 开发环境
│   ├── application-prod.yaml           # 生产环境
│   └── db/migration/                   # Flyway 迁移脚本
│       ├── V1__init_schema.sql
│       ├── V2__add_qq_openid_to_user.sql
│       ├── ...
│       └── V29__add_alumni_group_feature.sql
└── pom.xml                             # Maven 配置

前端结构 (frontend/web_pc/)

frontend/web_pc/
├── src/
│   ├── main.ts                         # 应用入口
│   ├── App.vue                         # 根组件
│   ├── api/                            # API 请求
│   │   ├── request.ts                  #   Axios 实例与拦截器
│   │   └── index.ts                    #   API 方法定义
│   ├── router/
│   │   └── index.ts                    #   路由配置(含权限守卫)
│   ├── layouts/                        # 布局
│   │   ├── AdminLayout.vue             #   管理后台布局
│   │   └── SiteLayout.vue             #   前台布局
│   ├── views/                          # 页面视图
│   │   ├── admin/                      #   管理后台(35 个页面)
│   │   │   ├── Dashboard.vue
│   │   │   ├── Users.vue
│   │   │   ├── Clubs.vue
│   │   │   ├── Memberships.vue
│   │   │   ├── Applications.vue
│   │   │   ├── Activities.vue
│   │   │   ├── Interviews.vue
│   │   │   ├── Blogs.vue
│   │   │   ├── Points.vue
│   │   │   ├── Leaves.vue
│   │   │   └── ...
│   │   └── site/                       #   前台展示(30 个页面)
│   │       ├── Home.vue
│   │       ├── Profile.vue
│   │       ├── Recruitment.vue
│   │       ├── ApplicationForm.vue
│   │       ├── Blog.vue
│   │       ├── Activities.vue
│   │       └── ...
│   ├── components/                     # 公共组件
│   │   ├── admin/                      #   管理后台组件
│   │   ├── common/                     #   通用组件
│   │   ├── site/                       #   前台组件
│   │   │   ├── home/                   #   首页组件
│   │   │   ├── shell/                  #   布局壳组件
│   │   │   ├── workspace/              #   工作台组件
│   │   │   └── blog/                   #   博客组件
│   │   └── ui/                         #   动画 UI 组件
│   │       ├── aurora-background/
│   │       ├── apple-card-carousel/
│   │       ├── flip-card/
│   │       ├── globe/
│   │       ├── marquee/
│   │       ├── smooth-cursor/
│   │       └── ...
│   ├── composables/                    # 组合式函数
│   │   ├── useAppStatus.ts
│   │   ├── useRouteTransition.ts
│   │   ├── useTheme.ts
│   │   └── useSiteMotion.ts
│   ├── utils/                          # 工具函数
│   │   ├── auth.ts                     #   认证 Token 管理
│   │   ├── oidc.ts                     #   OIDC 认证
│   │   ├── permission.ts               #   权限判断
│   │   ├── format.ts                   #   格式化
│   │   ├── markdown.ts                 #   Markdown 渲染
│   │   └── qr.ts                       #   二维码
│   ├── constants/                      # 常量
│   ├── plugins/                        # 插件注册
│   ├── styles/                         # 样式
│   ├── lib/                            # 第三方库封装
│   └── vendor/                         # 第三方代码
├── public/                             # 静态资源
├── package.json
├── vite.config.ts
├── tsconfig.json
└── Dockerfile                          # 前端容器化配置

Docker 编排结构

系统通过 docker-compose.yml 编排以下服务:

服务容器名端口说明
redisopenatom-redis6379Redis 缓存,仅本地访问
backendopenatom-backend8921Spring Boot 后端,host 网络模式
frontendopenatom-frontend18080→80Vue 前端 + Nginx
astrbotopenatom-astrbot6185, 6198AstrBot 机器人核心
napcatopenatom-napcat6099, 3000NapCat QQ 协议端

文档资源

文件说明
README.md项目整体说明与部署指南
DESIGN.md前端设计规范(Apple 风格设计系统)
BOTPRD.mdQQ 群机器人需求文档
LMS.md实验室管理系统需求文档
docs/club-management-prd.md社团管理系统 PRD
docs/club-management-rest-api.mdREST API 文档
docs/club-management-openapi.yamlOpenAPI 规范
docs/oauth-usage.mdOAuth 使用指南
docs/ai-activity-automation-prd.mdAI 活动自动化 PRD
docs/ai-integration-guide.mdAI 集成指南
Prev
快速开始
Next
常见问题