Laf 中大猫谱:让每一只流浪猫都有家
猫谱简介
中大猫谱是一款辅助校园流浪猫救助的开源小程序项目,服务端使用 Laf 云开发。

猫谱主要功能包括:猫咪信息登记、照片分享、拍照识猫、公告和留言等。项目创立的初衷,是解决校园猫猫交流群里的一个常见问题:问猫猫是谁。

如果,把猫猫的信息和照片都整理到小程序上,就可以筛选“宿舍楼”和“橘猫”,快速定位到几只小猫的资料卡。再比对照片和眼前的猫猫,基本就可以确定它的名字,并看到它的相关资料。
2019年春天,在这个简单的需求驱动下,猫谱上线了。在热心猫友和笃行志愿者服务队的帮助下,猫猫资料日渐丰富。至今4年多的时间里,功能逐渐增加,参与开发和信息维护的同学也越来越多。
甚至,猫谱成为了不少同学的精神寄托,让我们更有动力去更新维护。一位同学领养了名为“浅脸”的猫猫,在浅脸生病去世后的一年里,每隔两天就会到猫谱上给浅脸留言、上传旧照片。

原文链接:https://forum.laf.run/d/1012
2021年初,项目代码改为开源,制作部署教程,并逐步推广到数十所高校或救助组织。在这些高校的猫谱上,不仅登记有小猫小狗,还有乌龟、天鹅等各种神奇校园动物。
目前,无需编程基础,只需要半天左右即可完成猫谱项目的部署+上线全流程。
功能介绍
猫猫信息维护
针对问猫需求,我们的解决方案是维护猫猫信息和相片。在猫谱上,由管理员负责维护准确的信息;普通用户可以上传猫猫近照,由管理员审核后展示到猫猫相册中。

围绕这个核心功能,我们还开发了许多后台管理小功能,让管理员无需接触代码,包括:
- 照片批量审核、缩略图生成
- 校区/区域/花色管理
- 猫猫关系管理
- 管理员等级管理
拍照识猫
随着猫猫数量的增多,手动筛选的效率略显不足。我们实现了一套基于 yolov5+CNN 的图像识猫模型,让用户随手拍一张照片,就能识别出猫猫是谁。

目前,识猫功能作为猫谱部署的一项可选功能,其代码也已经开源。它会用猫谱里的猫猫照片进行训练,需要更多的耐心跟随教程进行部署。我们也在探索将人工智能模型部署到 Laf 平台,降低部署难度和成本,希望有类似想法的朋友一起交流。
公告、便利贴和反馈
与用户交流方面,猫谱实现了三个渠道:
- 公告板:由管理员发布(猫谱 → 用户)
- 便利贴墙:由用户发布,管理员审核(用户 → 猫猫)
- 信息反馈:由用户发送,管理员后台回复(用户 → 猫谱)

猫猫关系、徽章和榜单
为增加更多的可玩性,猫谱还新增了几个有趣的功能:
- 猫猫关系:将猫际关系登记在册,除血缘关系外,还有各种错综复杂的情感纠纷
- 徽章系统:用户通过登录/看广告获取徽章,赠送给心爱的猫猫
- 榜单:包括用户拍照数量榜,照片点赞榜,猫猫徽章收集榜


为什么是 Laf
初识机缘
2022年秋季,受微信云开发定价修改的影响,单个猫谱的部署成本从每月几毛钱,直线上升到50+元。当时,猫谱部署交流群里已有近百名成员,数十所高校的猫谱已在线上运行。高昂的成本让原本就捉襟见肘的流浪救助团体难以承担,关停小程序的情况逐渐增多。
为应对这种情况,猫谱团队从两个方面进行优化:
- 优化 API 调用量,降低云开发使用量成本
- 调研合适的迁移平台
此时,处在开发初期的 Laf 平台进入了我们的视野:
- 学习成本低:熟悉的 ServerLess 的云开发模式,函数+数据表+存储功能组合
- 开源保障:开源的源码库支持私有部署,既能作为兜底,又能满足自有服务器的需求
- 无冷启动:Laf 常驻内存的方案天然就没有冷启动问题,调用非常迅速
- 计费清晰合理:从最初的免费试用,到如今的灵活配置收费,部署成本可接受
- 友好的开源社区:有任何问题可以反馈到论坛和微信群,会有社群成员或官方团队出手帮忙解决
迁移过程
Laf 0.8版本,我们着手迁移猫谱项目,大致可以分为三个阶段:
- 小程序端同时兼容两套云开发,使用私有部署 Laf,上线测试
- 更新预览版 Release,整理迁移文档,在小范围内测
- Laf 1.0 上线后,全面重写项目文档,完全切换至 Laf 平台
在整个迁移的过程中,Laf 团队的朋友积极提供技术支持、及时解决需求 issue,帮助猫谱团队在短时间内顺利迁移。猫谱团队将迁移过程整理出迁移教程、数据导入和数据导出的工具,帮助数十所高校的小程序也完成了迁移。
合作
2023年夏季,我们与 Laf 团队的朋友,就高校代金券方案,从技术和实施方面探讨了多个想法。最终,我们以一种简单的方式进行小范围尝试,即“猫谱高校代金券计划”。
具体的,Laf 团队生成一批代金券,交由猫谱团队进行发放。猫谱团队接受各高校的小程序运营者申请,审核通过后发放代金券,足以免费使用最低配的 Laf 实例。
在申请过程中,我们设立了几个小小的门槛:猫谱上累积猫猫10+只,累计用户100+。我们相信,对于真心想运营小程序的团队,这些条件都很容易达成,薅羊毛的则会望而却步。
短短2个月内,已有来自全国14所高校的同学完成了申请,让更多的同学从实践上了解到 Laf 平台。其中,大多数运营者完全不懂代码编程,也同样完成了项目部署,可见 Laf 平台的易用性非常优秀。
| 小程序 | 来自高校 |
|---|---|
| HUT喵世界 | 湖南工业** |
| 喵汪图鉴 | 湖南** |
| 老和山猫咪图鉴 | 浙江** |
| 小理猫谱 | 广州理工** |
| 猫猫北方工 | 北方工业** |
| 大黄的山竹铺子 | 华南师范** |
| 崴喵猫谱 | 山东** |
| ZUEL汪汪图鉴 | 中南财经政法** |
| 火大猫谱 | 火箭军工程** |
| SUFE的招财喵谱 | 上海财经** |
| 技大喵喵屋 | 深圳技术** |
| 南华猫谱 | 南华** |
| 成师猫咪家谱 | 成都师范** |
| 交医喵屋图鉴 | 上海交通大学医** |
结语
接下来,猫谱项目将继续基于 Laf 云开发平台,新增更多实用的、有趣的功能。欢迎感兴趣的小伙伴加入开发,提供你的想法和创意。
借此机会,感谢如此多同学对猫谱项目、Laf 平台和校园流浪动物的大力支持。期待有更多的高校同学,使用猫谱为流浪动物救助事业添砖加瓦。
打个小广告,请各位关注“笃行志愿者服务队”公众号,这是广东多所高校同学联合组织的救助小团队,主要负责校园内的猫猫救助和信息登记,也会分享有趣的猫猫故事。在成立至今的四年多里,通过绝育等手段有效地控制住了校园流浪猫的数量,并为许多猫咪找到了新家。

相关文章:
Laf 中大猫谱:让每一只流浪猫都有家
猫谱简介 中大猫谱是一款辅助校园流浪猫救助的开源小程序项目,服务端使用 Laf 云开发。 猫谱主要功能包括:猫咪信息登记、照片分享、拍照识猫、公告和留言等。项目创立的初衷,是解决校园猫猫交流群里的一个常见问题:问猫猫是谁。…...
uniapp 使用mqtt 报错 socketTask onOpen is not a function
1. 报错的解决方法 在man.js文件添加这个 // #ifndef MP // 处理 wx.connectSocket promisify 兼容问题,强制返回 SocketTask uni.connectSocket (function(connectSocket) {return function(options) {console.log(options)options.success options.success ||…...
Docker部署RustDesk Server 设置开机自启
三、Docker安装 Docker官方和国内daocloud都提供了一键安装的脚本,使得Docker的安装更加便捷。 官方的一键安装方式: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 国内 daocloud一键安装命令: curl -sSL https://…...
ESLint如何在vue3项目中配置和使用
目录 问题描述: 配置: 注意: 问题描述: 在用vite创建vue3项目时已经选择了添加ESLint,创建完成后使用 pnpm install命令(或者npm i)安装了项目依赖之后,ESLint在项目中需要怎样配…...
Frida-hook:微信数据库的破解
Frida-hook:微信数据库的破解 Frida-hook:微信数据库的破解1. 准备条件2. 用frida获取key2.1 静态分析微信apk文件2.2 frida hook: 3. 用sqlcipher打开数据库: Frida-hook:微信数据库的破解 我们可以从root过的手机中,找到微信相关数据库&am…...
【Unity每日一记】WheelColider组件汽车游戏的关键
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:uni…...
项目-IM
tim-server tim-server启动类实现CommandLineRunner接口,重写run()方法 run()方法开启一个线程,创建zk持久父节点,创建临时顺序子节点,将netty-server信息写入 1.1 用户登录 1.2 gateway向认证授权中心请求token 1.3 从zookee…...
2023年口腔医疗行业研究报告
第一章 行业概况 1.1 定义 口腔医疗行业是以口腔医疗服务消费为基础,包含医疗及消费双重属性,是 为满足口腔及颌面部疾病的预防和诊疗、口腔美容等需求提供相关医疗服务的行业。 该行业的主要参与者包括口腔保健专业人员(如牙医、口腔外科…...
1Java:JDK是什么
1Java是介于编译型语言和解释型语言之间 编译型语言:c c先编译成机器码,再执行 解释型语言:pytn 解释器直接加载源码运行,但是运行效果低 Java是将代码编译成一张字节码,优点 针对不同平台编写虚拟机,不同平台的虚拟…...
使用 Amazon Lambda 进行无服务器计算:云架构中的一场革命
引言 十年前,无服务器架构还像是痴人说梦。不再如此了! 有了 Amazon Lambda,我们现在可以建构和运行应用程序而不需要考虑服务器。云供应商会无缝地处理所有服务器的供应、扩展和管理。我们只需要关注代码。 这为云部署带来了前所未有的敏捷性、自动化和优化。但是,要发挥它的…...
谨慎使用Lombok的@Builder注解
现在很多程序员都习惯使用Lombok来使代码更加 “简洁”。但是使用Lombok也会造成很多问题,尤其Builder 有个很大的坑,已经见过好几次由于使用Builder注解导致默认值失效的问题,如果测试时没有在意这个问题,就很容易引发线上问题。…...
leetcode455. 分发饼干 【贪心】
题目: 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,…...
4V-28V Vin,6A同步降压DCDC变换器,集成3.3V和150mA LDO——SCT2361FPBR
SCT2361是一种高效率的同步降压型DC-DC变换器,集成3.3V和150mA LDO。输入电压范围为4V-28V,输出电压可调为0.6V,具有3mmx3mm的小QFN封装,可提供连续6A的输出电流。该器件将高、低压侧功率mosfet集成,使导通损耗降到最低…...
Linux中的scp指令
在Linux和Unix系统中,scp(Secure Copy Protocol)是一个用于通过SSH协议进行安全文件传输的命令行实用程序。与传统的cp(copy)命令不同,scp允许用户在不同的机器之间、或同一台机器的不同位置之间传输文件或…...
剑指 Offer 11. 旋转数组的最小数字
剑指 Offer 11. 旋转数组的最小数字 二分 要注意的是,由于存在重复数字,所以初始状态可能不满足二分的性质。不满足的情况是:左边开始的数字和右边结束的数字相等,所以一开始要缩小右边界,让右边界的数字小于第一个数…...
Redis面试题总结
1.什么是Redis Redis 是一种基于内存的数据库对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、Hash(哈希)、…...
【Eclipse】搭建python环境;运行第一个python程序helloword
目录 0.环境 1.需准备&搭建思路 2.搭建具体步骤 1)查看是否安装过python 2)安装eclipse 3)安装和配置pyDev 3.创建第一个python程序具体步骤 1)新建项目 2)输入项目名字,和配置选项 3&#x…...
OpenAI 发布企业版ChatGPT-4
OpenAI 发布企业版ChatGPT-4 ChatGPT Enterprise 版本功能ChatGPT Enterprise 对比ChatGPT Enterprise 不同点未来发布计划OpenAI 发布企业版ChatGPT-4 OpenAI 宣布,鉴于ChatGPT的爆炸性成果,推出了针对企业的 ChatGPT Enterprise 版 ChatGPT Enterprise 版本功能 包含所有…...
Flowable7 设计器
1、flowable7 已经在主版本上移除了Flowable UI相关的包,包含bpm-json相关的所有包和流程设计器相关前端文件。 2、flowable7 版本目前只保留了xml运行相关的包,ui modeler已经移除 3、目前官方给的回复是只能在 flowable 云产品上使用设计器ÿ…...
Flutter问题记录 - Unable to find bundled Java version
新版本的Android Studio真的移除了JRE,jre目录找不到,怪不得报错了,不过多了一个jbr目录,找了个以前的Android Studio版本对比 搜了一下jbr(JetBrains Runtime),原来IDEA老早就开始用了…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
