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

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

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

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 & 中大猫谱:让每一只流浪猫都有家的更多相关文章
- 遇见一只黑猫,她说Python是个怪物
导读: Python猫是一只喵星来客,它爱地球的一切,特别爱优雅而无所不能的 Python.我是它的人类朋友豌豆花下猫,被授权润色与发表它的文章.如果你是第一次看到这个系列文章,那我强烈建议,请先看看 ...
- 居于U2000手机管理光猫,小区运营商FTTH光猫注册神器,MA5680T手机管理,自动添加光猫
此软件居于U2000开发,需要U2000管理支持 主要功能: 光猫查看->上线情况.下线原因.下线时间.光猫重启.光模块发送功能.接收功能.温度 Radius诊断->用户基本信息.拨打电话 ...
- JS理论-:一只tom猫告诉你构造函数 实例 实例原型 实例原型的实例原型是什么
参考地址:https://github.com/mqyqingfeng/Blog/issues/2 感谢这位大佬 下面说说我的理解: 第一,看下人物: tom--一只叫tom的猫 Cat()--猫的构 ...
- GIMP如何制作一只大佬猫头像
新建文件File -> 设置宽度为24px,高度5px:高级选项中将背景图片设置为无色 使用铅笔,前景色设为黑色,画出眼镜的模样,画出反光效果:将前景色设为灰色 放大图片,右击空白区域-> ...
- 用oop分析场景,写出代码。房间里,有人、猫、老鼠在睡觉,然后猫醒了发出叫声,叫声惊醒了人,人从床上坐起来,惊醒了老鼠,老鼠开始逃跑。
首先分析有哪些类: 应该有房子.动物类.人类.猫类.老鼠类. 房子不仅仅是一个容器,因为猫在房子里叫,惊醒了人和老鼠,所以猫叫是一个事件,通过这个事件触发人和老鼠的惊醒. 可以定义一个委托,利用委托绑 ...
- 有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?
第二种方法:首先分析题意,可用概率的方法来计算,做了好几道百度的题目,觉得大多数是再考概率论,所以首先要弄懂题意,最后做题前把公式写出来,这样编码时才能游刃有余. 本题中下面的第一种用迭代枚举的方法来 ...
- 算法 PK 猫咪 | 章鱼保罗后继竟然是只猫?
简评:一只名叫阿喀琉斯(Achilles)的白猫一边小声叫着,一边慵懒地在分别插有俄罗斯和沙特阿拉伯国旗的食盆间踱步.这只看起来并不出众的小猫住在俄罗斯圣彼得堡埃尔米塔日博物馆(State Hermi ...
- Linux下一只五颜六色的「猫」
大家好,我是良许. 有使用过 Linux 系统的小伙伴,肯定会使用过 cat 这个命令.当然,在 Linux 下,此猫非彼猫,这里的 cat 并不代表猫,而是单词 concatenate 的缩写. c ...
- Laf v1.0 发布:函数计算只有两种,30s 放弃的和 30s 上线的
一般情况下,开发一个系统都需要前端和后端,仅靠一个人几乎无法胜任,需要考虑的特性和功能非常多,比如: 需要一个数据库来存放数据: 需要一个文件存储来存放各种文件,比如图片文件: 后端需要提供接口供前端 ...
- 中兴F412光猫超级密码破解、破解用户限制、关闭远程控制、恢复路由器拨号
不少家庭都改了光纤入户,那肯定少不了光猫的吧.今天以中兴F412光猫为例介绍下此型号光猫超级密码的破解方法.一.F412超级密码破解方法1.运行CMD,输入telnet 192.168.1.1: 2. ...
随机推荐
- R 语言关于 SSL 证书异常处理笔记
一.关于 TCGAbiolinks TCGAbiolinks 是一个用于 TCGA 数据综合分析的 R/BioConductor 软件包,能够通过 GDC Application Programmin ...
- 18.详解AQS家族的成员:Semaphore
关注:王有志,一个分享硬核Java技术的互金摸鱼侠. 欢迎你加入Java人的提桶跑路群:共同富裕的Java人 今天我们来聊一聊AQS家族中另一个重要成员Semaphore,我只收集到了一道关于Sema ...
- CSS中常见的场景实现
如何实现两栏布局 实现两栏布局一般指的是左边固定,右边自适应,这里给出几个案例给大家参考 直接使用 calc 计算 right 宽度 .left { width: 200px; background: ...
- 记一次 .NET 某旅行社审批系统 崩溃分析
一:背景 1. 讲故事 前些天有位朋友找到我,说他的程序跑着跑着就崩溃了,让我看下怎么回事,其实没怎么回事,抓它的 crash dump 就好,具体怎么抓也是被问到的一个高频问题,这里再补一下链接: ...
- 基于ChatGPT函数调用来实现C#本地函数逻辑链式调用助力大模型落地
6 月 13 日 OpenAI 官网突然发布了重磅的 ChatGPT 更新,我相信大家都看到了 ,除了调用降本和增加更长的上下文版本外,开发者们最关心的应该还是新的函数调用能力.通过这项能力模型在需要 ...
- Python 标准类库-并发执行之multiprocessing-基于进程的并行
实践环境 Python3.6 介绍 multiprocessing是一个支持使用类似于线程模块的API派生进程的包.该包同时提供本地和远程并发,通过使用子进程而不是线程,有效地避开了全局解释器锁.因此 ...
- DLang 与 C 语言交互
DLang 与 C 语言交互 很难受的是,这部分的文档太少了,根本没有 教程向 的文章.所以我写了此文以做分享. 本文原址链接(防止机器搬运):https://www.cnblogs.com/jeef ...
- 【Promptulate】一个强大的LLM Prompt Layer框架
本文节选自笔者博客: https://www.blog.zeeland.cn/archives/promptulate666 前言 在构建了[prompt-me]一个专为 Prompt Enginee ...
- yolov5实战之模型剪枝
续yolov5实战之二维码检测 目录 前沿 为什么要做轻量化 什么是剪枝 稀疏化训练 剪枝 微调 结语 模型下载 前沿 在上一篇yolov5的博客中,我们用yolov5训练了一个二维码检测器,可以 ...
- Python Django 模版全解与实战
本文首先介绍了Django模板系统的基础知识,接着探讨了如何安装和配置Django模板系统,然后深入解析了Django模板的基本结构.标签和过滤器的用法,阐述了如何在模板中展示模型数据,最后使用一个实 ...