智慧房屋租赁管理系统
基于 Spring Boot 3.2 + Vue 3 + Element Plus + MySQL 8 的前后端分离房屋租赁系统。
项目截图








技术栈
| 层级 | 技术 |
|---|---|
| 后端 | JDK 17, Spring Boot 3.2, Spring Security, JWT, MyBatis Plus, MySQL 8, Redis, MinIO(可选), Swagger |
| 前端 | Vue 3, Vite, Element Plus, Vue Router 4, Pinia, Axios, ECharts |
功能模块
- 用户:注册/登录(手机、邮箱、用户名)、JWT+Refresh Token、角色(管理员/房东/租客)、个人资料与头像
- 房源:发布/编辑、多图上传、状态(待审核/上架/下架/已出租)、搜索筛选(城市、价格、户型、面积)
- 预约看房:租客预约、房东确认/拒绝
- 订单:创建订单、待支付→已支付→履约中→已完成、模拟支付、取消
- 消息:系统消息、站内信、未读数量
- 管理后台:数据统计、用户禁用/启用、房源审核、公告/轮播(数据表已建)
快速开始
1. 数据库
创建库并导入表结构与初始数据:
bash
mysql -u root -p < backend/src/main/resources/db/schema.sql
mysql -u root -p < backend/src/main/resources/db/data.sql
或手动执行 backend/src/main/resources/db/schema.sql 和 data.sql。
初始账号(密码均为 123456):
| 账号 | 角色 |
|---|---|
| admin | 管理员 |
| landlord1 / landlord2 | 房东 |
| tenant1 / tenant2 | 租客 |
2. 后端
bash
cd backend
# 修改 application.yml 中 datasource、redis 等配置
mvn spring-boot:run
- 接口文档:http://localhost:8080/api/swagger-ui.html
- 若需文件上传,在
application.yml中取消 MinIO 的endpoint等配置并启动 MinIO。
3. 前端
bash
cd frontend
npm install
npm run dev
访问 http://localhost:5173 ,前端通过 Vite 代理将 /api 转发到后端 8080。
项目结构
HouseRentalSystem/
├── backend/ # Spring Boot
│ ├── src/main/java/com/smart/rental/
│ │ ├── common/ # 统一结果、异常处理
│ │ ├── config/ # 安全、JWT、MinIO、MyBatis
│ │ ├── controller/ # 认证、用户、房源、订单、预约、消息、上传、公开、管理
│ │ ├── entity/ # 实体
│ │ ├── mapper/ # MyBatis Plus Mapper
│ │ ├── security/ # JWT 过滤与工具
│ │ └── service/ # 业务逻辑
│ └── src/main/resources/
│ ├── application.yml
│ └── db/ # schema.sql, data.sql
├── frontend/ # Vue 3 + Vite
│ ├── src/
│ │ ├── api/ # 请求封装与各模块 API
│ │ ├── router/ # 路由与鉴权
│ │ ├── stores/ # Pinia(用户状态)
│ │ └── views/ # 登录、首页、房源、订单、预约、消息、个人中心、管理后台
│ └── vite.config.js # 代理 /api -> 8080
└── README.md
说明
- 支付为模拟,仅更新订单状态与流水记录。
- 合同生成与 PDF 导出、续租提醒等可在现有订单/消息模块上扩展。
- 轮播图、公告已建表并预留接口,管理端 CRUD 可后续在后台管理中增加页面与接口。