Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jwiki

基于 JDK8 + Spring Boot + MyBatis Plus + Vue 3 + Vite + MySQL 的全栈 Wiki 系统。

技术栈

后端

技术 版本
JDK 1.8
Spring Boot 2.7.18
MyBatis Plus 3.5.5
Spring Security 5.7.11
JJWT 0.11.5
MySQL Connector 8.0.33
Knife4j 4.4.0
Lombok 1.18.30

前端

技术 版本
Vue 3.5.x
Vite 6.x
Element Plus 2.14.x
Vue Router 4.5.x
Pinia 3.0.x
vue-i18n 11.x
md-editor-v3 5.x
Axios 1.x

功能特性

  • JWT 认证 - 登录/注册/刷新 Token
  • 三级权限 - 管理员(ADMIN)、编辑(EDITOR)、用户(USER)
  • 编辑申请 - 用户可申请成为编辑,管理员审核
  • 文章管理 - Markdown 编辑、分类、标签、全文搜索
  • 版本历史 - 文章每次编辑自动保存版本
  • 评论系统 - 文章评论与回复
  • 附件上传 - 文件上传与管理
  • 个人资料 - 修改昵称/邮箱/头像/密码
  • 主题切换 - Dark/Light 实时切换
  • 国际化 - 中英文 i18n
  • 瑞士国际风格 - 简洁扁平化 UI 设计
  • 逻辑删除 - 所有表使用 is_delete 字段
  • 密码加密 - BCrypt 加密存储
  • K8s 部署 - 完整的 Kubernetes 部署清单

项目结构

Jwiki_qwen/
├── backend/                    # Spring Boot 后端
│   ├── pom.xml
│   └── src/main/java/com/jwiki/
│       ├── JwikiApplication.java
│       ├── config/             # 配置类
│       ├── common/             # 通用类(Result/异常/常量)
│       ├── security/           # JWT + Spring Security
│       ├── entity/             # 实体类
│       ├── mapper/             # MyBatis Plus Mapper
│       ├── service/            # 业务逻辑
│       ├── controller/         # REST API
│       └── dto/                # 数据传输对象
├── frontend/                   # Vue 3 前端
│   ├── package.json
│   ├── vite.config.js
│   └── src/
│       ├── router/             # 路由配置
│       ├── store/              # Pinia 状态管理
│       ├── api/                # Axios API 封装
│       ├── i18n/               # 国际化语言包
│       ├── styles/             # 全局样式
│       ├── layouts/            # 布局组件
│       ├── components/         # 通用组件
│       └── views/              # 页面组件
├── sql/
│   └── init.sql                # 数据库初始化脚本
├── docker/                     # Docker 配置
│   ├── Dockerfile.backend
│   ├── Dockerfile.frontend
│   └── nginx.conf
└── k8s/                        # Kubernetes 部署清单
    ├── configmap.yaml
    ├── mysql-deployment.yaml
    ├── backend-deployment.yaml
    ├── frontend-deployment.yaml
    └── ingress.yaml

快速开始

环境要求

  • JDK 1.8+
  • Maven 3.6+
  • Node.js 18+
  • MySQL 8.0+

1. 数据库初始化

mysql -u root -p < sql/init.sql

2. 启动后端

cd backend
mvn spring-boot:run

后端默认运行在 http://localhost:8080

API 文档: http://localhost:8080/doc.html

3. 启动前端

cd frontend
npm install
npm run dev

前端默认运行在 http://localhost:5173

4. 默认管理员账号

  • 用户名: admin
  • 密码: admin123

API 端点

认证

方法 路径 说明
POST /api/auth/login 登录
POST /api/auth/register 注册
POST /api/auth/refresh 刷新 Token

用户

方法 路径 说明 权限
GET /api/users/me 当前用户信息 登录用户
PUT /api/users/me 修改个人资料 登录用户
GET /api/users 用户列表 ADMIN
PUT /api/users/{id}/role 修改角色 ADMIN
DELETE /api/users/{id} 删除用户 ADMIN

文章

方法 路径 说明 权限
GET /api/articles 文章列表 公开
GET /api/articles/{id} 文章详情 公开
POST /api/articles 创建文章 EDITOR+
PUT /api/articles/{id} 更新文章 EDITOR+
DELETE /api/articles/{id} 删除文章 EDITOR+
GET /api/articles/{id}/versions 版本历史 公开
GET /api/articles/{id}/comments 评论列表 公开
POST /api/articles/{id}/comments 发表评论 登录用户

分类/标签/附件

完整的 CRUD API,详见 Swagger 文档。

编辑申请

方法 路径 说明 权限
POST /api/editor-applications 申请成为编辑 登录用户
GET /api/editor-applications 申请列表 ADMIN
GET /api/editor-applications/mine 我的申请 登录用户
PUT /api/editor-applications/{id}/approve 通过申请 ADMIN
PUT /api/editor-applications/{id}/reject 拒绝申请 ADMIN

构建生产版本

后端

cd backend
mvn clean package -DskipTests
java -jar target/jwiki-backend-1.0.0.jar

前端

cd frontend
npm run build

构建产物在 frontend/dist/ 目录。

Docker 部署

# 构建后端镜像
docker build -f docker/Dockerfile.backend -t jwiki-backend:latest backend/

# 构建前端镜像(在仓库根目录执行)
docker build -f docker/Dockerfile.frontend -t jwiki-frontend:latest .

Kubernetes 部署

# 应用所有配置
kubectl apply -f k8s/configmap.yaml
kubectl apply -f k8s/init-sql-configmap.yaml
kubectl apply -f k8s/mysql-deployment.yaml
kubectl apply -f k8s/backend-deployment.yaml
kubectl apply -f k8s/frontend-deployment.yaml
kubectl apply -f k8s/ingress.yaml

配置 hosts 或 DNS 将 jwiki.local 指向 Ingress IP。

权限模型

操作 ADMIN EDITOR USER
用户管理 - -
文章 CRUD ✅ (自己的) -
分类/标签管理 -
评论管理 -
发表评论
查看文章
个人资料修改
附件上传 -
申请成为编辑 - -
审核编辑申请 - -

License

MIT

About

基于 JDK8 + Spring Boot + MyBatis Plus + Vue 3 + Vite + MySQL 的全栈 Wiki 系统,前端通过Electron打包

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages