合租屋值日系统 · 租客卫生排班与拍照验收
给合租屋用的值日工具:自动轮值排班、手机现场拍照验收、防作弊查重、可选 AI 打分,租客点微信链接就能用,房东一个后台管到底
项目概述
合租屋的公共区域卫生,靠自觉和群里喊几乎一定会失效:谁该打扫说不清,打扫了没有说不清,干不干净更说不清。这个系统把这三件事都交给程序:排班自动轮换、完成要现场拍照、照片由系统验收,房东只处理少数需要人工判断的情况。
整套系统是一个 Python 文件加一个网页,跑在自己的服务器上。租客在微信里点自己的专属链接就能用,不用注册、不用装 App。
核心功能
- 自动轮值:4 个区域(大厅 / 厨房 / 洗手间 / 洗衣房)× 5 人,每周轮换、每周 1 人轮休,5 周一个循环,每个人都会轮到每个区域
- 现场拍照:网页直接调用手机摄像头拍照,每个区域至少 2 张不同角度;打开相机时发放一次性验证码,15 分钟内有效
- 防作弊
- 照片指纹(感知哈希)和历史上所有照片比对,拿旧照片或别人的照片会被拒
- 同一批照片不能是同一角度;太暗、太糊、拍白墙直接拒收
- 服务器给每张照片打水印:区域 | 租客 | 时间 | LIVE / UPLOAD
- 打不开相机才允许相册上传,但一律转房东人工审核
- 所有租客能互相看到照片,靠透明度互相监督
- AI 验收(可选):配置 Anthropic API key 后,由 Claude Haiku 判断「是不是这个区域、是不是翻拍屏幕、干不干净」并打分,≥70 分自动通过,不干净直接打回重做,可疑的转房东
- 找人代打扫:没空的租客选一位室友发请求,对方在自己的链接里点「同意」才生效;同意后由对方拍照验收,逾期也记在对方名下
- 房东后台:看照片、一键通过 / 驳回 / 撤销,最近 12 周统计(通过、驳回、逾期、帮人、被代),一键复制本周 / 下周排班消息发到微信群
- 租客管理:改名、复制链接、换新链接(旧的立即失效)、停用搬走的人、添加新租客;增减人从下周起影响轮值,本周和历史不变
技术实现
- 后端:单文件 FastAPI + SQLite,照片存本地磁盘,90 天后删除原图但保留指纹继续查重
- 前端:一个原生 HTML/JS 页面,适配微信内置浏览器,无构建步骤
- 图片处理:Pillow 做亮度 / 清晰度检查和水印,imagehash 做重复检测
- AI:Anthropic Messages API,多图 + 验收标准一起送给 Claude Haiku,返回结构化 JSON;不配 key 也能完整运行
- 部署:Caddy 或 Nginx 反代 HTTPS(手机网页调摄像头必须 HTTPS)+ systemd 常驻,约 10 分钟装好;每月 AI 费用只有几美分
在线 Demo
点上方「访问」进入演示版,界面和真实系统完全一样:
- 顶部可以切换身份:房东后台或任意一位租客
- 以租客身份可以查看本周值日、拍照(或从相册选图)提交验收、发起 / 同意代打扫请求
- 以房东身份可以审核照片、驳回和撤销、管理租客、复制排班消息,看 12 周统计
- 预置了 12 周的示例数据;所有操作都只在你的浏览器里运行,照片不会上传到任何地方,刷新页面即恢复初始状态
- 演示版没有接 AI,现场拍摄的照片通过基础检查后直接通过
源码和部署说明见 GitHub。
相关开发日志