项目背景
传统的线下租房不便、途径少、信息更新慢,导致房屋租赁效率低。为了有效的提升租赁效率和房源信息管理、提供更优质的租赁服务。让房东出租宣传展示与房源管理、租客更好的检索房源信息、发布租房需求以及入住预定、后台房源管理、审核等一站式租赁服务平台。
- 租客:浏览房源、收藏房源、预定房源、发布租房需求、查看电子合同。
- 房东:发布房源、订单管理、查看电子合同。
- 管家:查看房源信息、回复咨询、线下带看房源。
- 管理员:用户管理、房源管理、订单管理、租房需求、实名认证、系统公告管理。
TODO
- 房源全文检索
- 租房需求支持评论
- 日租、合租模式
- 房源推荐系统(Go开发)
项目特色
- 采用了七牛云OSS、CDN服务加速一些图片资源。
- 采用 FastAPI 的后台任务实现异步发送短信验证码。
- 采用 tortoise-orm 完成数据库操作的封装。
- 通过模板字符串动态渲染富文本实现电子合同功能。
- 对接阿里支付实现了订单、支付模块,对接百度地图实现当前城市定位、房源附近信息查询等功能。
- 前端界面采用 Vue.js + Element ui 实现数据渲染,Bootstrap 实现自适应布局。
项目体验
项目体验地址 http://43.138.220.206:9999/huihome 由于注册需要发送短信验证码,而手机验证码服务现在只能给我的测试手机号发送验证码,因此不能使用注册服务。大家可以使用已有账号去登录体验。
账号类别 | 用户名 | 密码 | 备注 |
---|---|---|---|
用户账号 | hui | 123456 | 租客账号 |
用户账号 | wang | 123456 | 房东账号 |
项目源码:HuiDBK/HuiHome: 基于FastAPI的房屋租赁系统 (github.com)
项目还没有太完善,服务器也只是学习级别的,可能会出现很多异常,望大家多担待。
项目启动
- 准备好MySQL 与 Redis数据库服务,修改相关数据库配置信息
- 申请第三方服务:七牛云的OSS服务、容联云的短信服务、阿里的支付服务、百度地图服务
- 依赖于 Python 3.7.9 编程环境
- 安装 requirements.txt 项目依赖
pip install -r requirements.txt
- 启动项目 python run.py
- 如果成功在本地启动项目,访问 http://127.0.0.1:8080/docs 地址查看接口文档
项目部署
- 确保Mysql、Redis服务正常
- 在存在Dockerfile文件的项目目录下构建镜像 docker build -t house_rental_image . (最后.不要忘记)
- 运行镜像产生容器 docker run -d --name house_rental_container -p 80:80 house_rental_image
- docker ps 查看容器是否启动
系统整体功能图
项目结构
项目开发整体采用的是Python的FastAPI框架来搭建系统的接口服务,接口设计遵循 Restful API
接口规范。接口前后端交互都采用json格式进行数据交互,项目整体的结构如下:
项目Redis缓存设计
Redis key 规范:
project : module : business : unique key
项目名 : 模块名 : 业务 : 唯一区别key
例如:用户手机短信验证码缓存
house_rental:user:sms_code:13022331752
复制代码
用户模块缓存
房源模块缓存
其他缓存
系统整体ER图
房屋属性太多故在整体ER图省略
实际表属性更多进行了垂直分表。