# xpz **Repository Path**: zhanglei-code/xpz ## Basic Information - **Project Name**: xpz - **Description**: xpz社区,轻量开源社区,发帖互动、消息通知、全文搜索、后台运营,前后端分离可独立部署。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: https://www.xpz01.cn - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-30 - **Last Updated**: 2026-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # XPZ > 轻量开源社区:发帖互动、消息通知、全文搜索、后台运营,前后端分离可独立部署。 [在线预览](https://xpz01.cn) · [在线工具](https://tools.xpz01.cn) ## 功能特性 **社区端** - 帖子动态流(最新 / 热门 / 话题),发帖、评论、点赞、收藏 - 用户主页、关注 / 粉丝、每日签到与积分 - 全局搜索(Elasticsearch)、站内消息(WebSocket) - 邮箱验证码注册 / 登录,Gitee / QQ / GitHub 等第三方登录 - 图片上传(阿里云 OSS)、意见反馈、友情链接 **管理端** - 用户、帖子、评论、话题、友链、反馈管理 - 独立后台账号体系(JWT) ## 技术栈 | 层级 | 技术 | |------|------| | 社区 / 管理前端 | Vue 3 · Vue Router 4 · Element Plus · Axios | | 社区 / 管理后端 | Spring Boot 2.5 · MyBatis-Plus · JWT · Hutool | | 中间件 | MySQL · Redis · Elasticsearch 7.12 · RabbitMQ | | 其他 | JustAuth(OAuth)· 阿里云 OSS · Spring Mail / WebSocket | ## 环境要求 | 工具 | 版本 | |------|------| | IntelliJ IDEA | 推荐 Ultimate / Community(后端导入运行) | | JDK | 1.8 | | Maven | 3.6+(可用 IDEA 自带) | | Node.js | 16+(推荐 LTS) | | MySQL | 5.7+ / 8.x | | Redis | 3.x+ | | Elasticsearch | **7.12.1**(与 `pom.xml` 锁定版本一致) | | RabbitMQ | 3.x+(邮件验证码等异步任务) | ## 架构示意 ```mermaid flowchart TB Browser["浏览器"] ClientUI["xpz-client
社区前端 :8080"] ClientAPI["xpz-client-server
:9015"] subgraph Infra["基础设施"] MySQL[(MySQL)] Redis[(Redis)] ES[(Elasticsearch)] MQ[[RabbitMQ]] OSS[阿里云 OSS] end Browser --> ClientUI ClientUI -->|/api| ClientAPI ClientAPI --> MySQL ClientAPI --> Redis ClientAPI --> ES ClientAPI --> MQ ClientAPI --> OSS ``` ## 快速开始 1. 执行 `mysql -uroot -p < init.sql` 初始化库表(后台默认 `admin` / `admin123`) 2. 修改 `xpz-*-server/.../application-dev.properties` 中的本地配置 3. IDEA 分别打开 `xpz-client-server`、`xpz-admin-server`,运行 `XpzClientApplication`、`XpzAdminApplication` 4. 前端启动: ```bash cd xpz-client && npm i && npm run serve # http://localhost:8080 cd xpz-admin && npm i && npm run serve # http://localhost:8087 ``` ## 配置说明(社区后端) | 配置项 | 用途 | |--------|------| | `spring.datasource.*` | MySQL | | `spring.redis.*` | 缓存、验证码、签到排行等 | | `spring.elasticsearch.rest.*` | 帖子搜索 | | `spring.rabbitmq.*` / `spring.mail.*` | 邮件验证码异步发送 | | `aliyun.oss.*` | 图片上传 | | `oauth.*.client-id/secret` | 第三方登录 | 管理端主要依赖 MySQL / Redis(以及帖子相关时的 ES),配置项更少。 ## 效果展示 **桌面端 · 首页** 桌面端首页 **桌面端 · 个人中心** 桌面端个人中心 **移动端 · 首页** 移动端首页 **移动端 · 个人中心** 移动端个人中心 ## 致谢 本项目基于以下优秀开源项目构建,在此致谢: **前端** | 项目 | 说明 | 地址 | |------|------|------| | Vue | 渐进式 JavaScript 框架 | https://github.com/vuejs/core | | Vue Router | 官方路由 | https://github.com/vuejs/router | | Element Plus | Vue 3 组件库 | https://github.com/element-plus/element-plus | | Axios | HTTP 客户端 | https://github.com/axios/axios | | undraw-ui | 评论 / 搜索等 UI 组件 | https://github.com/readpage/undraw-ui | | vue-cropper | 图片裁剪 | https://github.com/xyxiao001/vue-cropper | | browser-image-compression | 浏览器端图片压缩 | https://github.com/Donaldcwl/browser-image-compression | **后端** | 项目 | 说明 | 地址 | |------|------|------| | Spring Boot | 应用框架 | https://github.com/spring-projects/spring-boot | | MyBatis-Plus | ORM 增强 | https://github.com/baomidou/mybatis-plus | | JustAuth | 第三方登录 | https://github.com/justauth/JustAuth | | Hutool | Java 工具库 | https://github.com/dromara/hutool | | java-jwt | JWT | https://github.com/auth0/java-jwt | | Lombok | 代码简化 | https://github.com/projectlombok/lombok | | Aliyun OSS SDK | 对象存储 | https://github.com/aliyun/aliyun-oss-java-sdk | ## 参与贡献 欢迎 Issue 与 Pull Request: 1. Fork 本仓库并创建分支:`feat/xxx` 或 `fix/xxx` 2. 保持改动聚焦,附上问题复现或功能说明 3. 提交 PR 前尽量自行本地跑通社区端核心流程(登录 → 发帖 → 评论) ## License [MIT](./LICENSE) © 2026 zhanglei