Code Nest 是一个基于 Spring Boot + Vue3 的前后端分离的一个程序员社区系统。
- 🔐 完善的权限管理 - JWT token认证,支持管理员和普通用户双重权限体系
- 📚 丰富的题库功能 - 支持题目分类、题单管理、随机抽题、收藏功能
- 🎯 智能抽题系统 - 可选择多个题单进行随机抽题,支持自定义抽题数量
- 💫 现代化UI - 基于Element Plus的美观界面,支持响应式设计
- 📊 系统监控 - SQL监控、操作日志、登录日志等完整的监控体系
- 🚀 高性能架构 - Redis缓存、数据库连接池、异步处理等性能优化
- 框架: Spring Boot 3.4.4
- 安全: Spring Security + JWT
- 数据库: MySQL 8.0 + MyBatis
- 缓存: Redis (Redisson)
- 文档: SpringDoc (OpenAPI 3.0)
- 工具: Hutool、Lombok
- 监控: 自研SQL监控系统
- 框架: Vue 3 + Composition API
- 构建工具: Vite
- UI组件: Element Plus
- 状态管理: Pinia
- 路由: Vue Router 4
- HTTP客户端: Axios
- 样式: SCSS
┌─────────────────┐ ┌─────────────────┐
│ 管理员端 │ │ 用户端 │
│ (vue3-admin) │ │ (vue3-user) │
└─────┬───────────┘ └─────┬───────────┘
│ │
└──────────┬───────────┘
│
┌────────────▼─────────────┐
│ Nginx (可选) │
└────────────┬─────────────┘
│
┌────────────▼─────────────┐
│ Spring Boot API │
│ ┌─────────────────┐ │
│ │ xiaou-system │ │
│ │ xiaou-user │ │
│ │ xiaou-interview │ │
│ │ xiaou-monitor │ │
│ │ xiaou-common │ │
│ └─────────────────┘ │
└────────────┬─────────────┘
│
┌────────────▼─────────────┐
│ MySQL + Redis │
└──────────────────────────┘
Code-Nest/
├── docs/ # 文档目录
├── sql/ # 数据库脚本
│ ├── struct.sql # 表结构
│ └── data.sql # 初始数据
├── vue3-admin-front/ # 管理员前端
├── vue3-user-front/ # 用户端前端
├── xiaou-application/ # 启动模块
├── xiaou-common/ # 公共模块
│ ├── annotation/ # 自定义注解
│ ├── aspect/ # 切面处理
│ ├── config/ # 配置类
│ ├── core/ # 核心类
│ ├── enums/ # 枚举类
│ ├── exception/ # 异常处理
│ ├── security/ # 安全相关
│ └── utils/ # 工具类
├── xiaou-interview/ # 面试题模块
│ ├── controller/ # 控制器
│ │ ├── admin/ # 管理员接口
│ │ └── pub/ # 公开接口
│ ├── domain/ # 实体类
│ ├── dto/ # 数据传输对象
│ ├── mapper/ # 数据映射
│ └── service/ # 业务逻辑
├── xiaou-monitor/ # 监控模块
├── xiaou-system/ # 系统模块
├── xiaou-user/ # 用户模块
└── pom.xml # Maven主配置
- Java 17+
- Node.js 16+
- MySQL 8.0+
- Redis 6.0+
- Maven 3.8+
git clone https://github.com/your-username/Code-Nest.git
cd Code-Nest# 创建数据库
mysql -u root -p
CREATE DATABASE code_nest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 导入表结构和数据
mysql -u root -p code_nest < sql/struct.sql
mysql -u root -p code_nest < sql/data.sql修改 xiaou-application/src/main/resources/application-dev.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/code_nest?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
username: your_username
password: your_password
data:
redis:
redisson:
config: |
singleServerConfig:
address: "redis://127.0.0.1:6379"
database: 3# 编译项目
mvn clean package -DskipTests
# 启动服务
cd xiaou-application
mvn spring-boot:run
# 或者运行jar包
java -jar target/xiaou-application-1.1.0.jar服务启动后访问: http://localhost:9999/api
API文档: http://localhost:9999/api/swagger-ui.html
cd vue3-admin-front
npm install
npm run dev默认管理员账号: admin / 123456
cd vue3-user-front
npm install
npm run dev可注册新用户或使用测试账号
# 后端打包
mvn clean package -DskipTests
# 前端打包
cd vue3-admin-front && npm run build
cd vue3-user-front && npm run build-
🔐 系统管理
- 管理员登录/登出
- 个人资料管理
- 密码修改
-
👥 用户管理
- 用户列表查看
- 用户状态管理
- 用户信息编辑
-
📚 题库管理
- 题目分类管理
- 题目CRUD操作
- 题单管理
- 批量导入导出
-
📊 系统监控
- SQL执行监控
- 慢查询分析
- 操作日志
- 登录日志
-
🔐 账户管理
- 用户注册/登录
- 个人中心
- 密码修改
-
📖 题库浏览
- 分类浏览题目
- 题单查看
- 题目搜索
-
🎯 学习功能
- 随机抽题练习
- 题目收藏
- 学习记录
-
💡 智能功能
- 多题单组合抽题
- 自定义抽题数量
- 收藏夹管理
jwt:
secret: your-secret-key
expiration: 604800 # 7天 (秒)
refresh-expiration: 2592000 # 30天 (秒)spring:
data:
redis:
redisson:
config: |
singleServerConfig:
address: "redis://127.0.0.1:6379"
database: 3xiaou:
monitor:
enabled: true # 启用SQL监控
slow-sql-threshold: 1000 # 慢SQL阈值(ms)
async-save: true # 异步保存日志
retention-days: 30 # 日志保留天数# 构建镜像
docker build -t code-nest:1.1.0 .
# 运行容器
docker run -d \
--name code-nest \
-p 9999:9999 \
-e SPRING_PROFILES_ACTIVE=prod \
code-nest:1.1.0server {
listen 80;
server_name your-domain.com;
# 前端静态文件
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html;
}
# API代理
location /api/ {
proxy_pass http://localhost:9999/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}欢迎贡献代码!请遵循以下步骤:
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
- 新增社区模块
- 社区帖子管理
- 评论系统
- 用户互动功能
- 优化系统架构
- 代码结构重构
- 性能优化
核心功能
- 后台管理
- 面试题管理
- 项目维护者: xiaou
- 邮箱: [email protected]
- 项目地址: https://github.com/xiaou61/Code-Nest
本项目基于 MIT License 开源协议。
⭐ 如果这个项目对你有帮助,请点个Star支持一下!⭐
- 社区功能
- 开发者工具功能