当前位置: 首页 > news >正文

Laf 中大猫谱:让每一只流浪猫都有家

猫谱简介

中大猫谱是一款辅助校园流浪猫救助的开源小程序项目,服务端使用 Laf 云开发

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

如果,把猫猫的信息和照片都整理到小程序上,就可以筛选“宿舍楼”和“橘猫”,快速定位到几只小猫的资料卡。再比对照片和眼前的猫猫,基本就可以确定它的名字,并看到它的相关资料。

2019年春天,在这个简单的需求驱动下,猫谱上线了。在热心猫友和笃行志愿者服务队的帮助下,猫猫资料日渐丰富。至今4年多的时间里,功能逐渐增加,参与开发和信息维护的同学也越来越多。

甚至,猫谱成为了不少同学的精神寄托,让我们更有动力去更新维护。一位同学领养了名为“浅脸”的猫猫,在浅脸生病去世后的一年里,每隔两天就会到猫谱上给浅脸留言、上传旧照片。

原文链接:https://forum.laf.run/d/1012

2021年初,项目代码改为开源,制作部署教程,并逐步推广到数十所高校或救助组织。在这些高校的猫谱上,不仅登记有小猫小狗,还有乌龟、天鹅等各种神奇校园动物。

目前,无需编程基础,只需要半天左右即可完成猫谱项目的部署+上线全流程。

功能介绍

猫猫信息维护

针对问猫需求,我们的解决方案是维护猫猫信息和相片。在猫谱上,由管理员负责维护准确的信息;普通用户可以上传猫猫近照,由管理员审核后展示到猫猫相册中。

围绕这个核心功能,我们还开发了许多后台管理小功能,让管理员无需接触代码,包括:

  • 照片批量审核、缩略图生成
  • 校区/区域/花色管理
  • 猫猫关系管理
  • 管理员等级管理

拍照识猫

随着猫猫数量的增多,手动筛选的效率略显不足。我们实现了一套基于 yolov5+CNN 的图像识猫模型,让用户随手拍一张照片,就能识别出猫猫是谁。

目前,识猫功能作为猫谱部署的一项可选功能,其代码也已经开源。它会用猫谱里的猫猫照片进行训练,需要更多的耐心跟随教程进行部署。我们也在探索将人工智能模型部署到 Laf 平台,降低部署难度和成本,希望有类似想法的朋友一起交流。

公告、便利贴和反馈

与用户交流方面,猫谱实现了三个渠道:

  • 公告板:由管理员发布(猫谱 → 用户)
  • 便利贴墙:由用户发布,管理员审核(用户 → 猫猫)
  • 信息反馈:由用户发送,管理员后台回复(用户 → 猫谱)

猫猫关系、徽章和榜单

为增加更多的可玩性,猫谱还新增了几个有趣的功能:

  1. 猫猫关系:将猫际关系登记在册,除血缘关系外,还有各种错综复杂的情感纠纷
  2. 徽章系统:用户通过登录/看广告获取徽章,赠送给心爱的猫猫
  3. 榜单:包括用户拍照数量榜,照片点赞榜,猫猫徽章收集榜

为什么是 Laf

初识机缘

2022年秋季,受微信云开发定价修改的影响,单个猫谱的部署成本从每月几毛钱,直线上升到50+元。当时,猫谱部署交流群里已有近百名成员,数十所高校的猫谱已在线上运行。高昂的成本让原本就捉襟见肘的流浪救助团体难以承担,关停小程序的情况逐渐增多。

为应对这种情况,猫谱团队从两个方面进行优化:

  1. 优化 API 调用量,降低云开发使用量成本
  2. 调研合适的迁移平台

此时,处在开发初期的 Laf 平台进入了我们的视野:

  • 学习成本低:熟悉的 ServerLess 的云开发模式,函数+数据表+存储功能组合
  • 开源保障:开源的源码库支持私有部署,既能作为兜底,又能满足自有服务器的需求
  • 无冷启动:Laf 常驻内存的方案天然就没有冷启动问题,调用非常迅速
  • 计费清晰合理:从最初的免费试用,到如今的灵活配置收费,部署成本可接受
  • 友好的开源社区:有任何问题可以反馈到论坛和微信群,会有社群成员或官方团队出手帮忙解决

迁移过程

Laf 0.8版本,我们着手迁移猫谱项目,大致可以分为三个阶段:

  1. 小程序端同时兼容两套云开发,使用私有部署 Laf,上线测试
  2. 更新预览版 Release,整理迁移文档,在小范围内测
  3. 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&#xff0c…...

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 云产品上使用设计器&#xff…...

Flutter问题记录 - Unable to find bundled Java version

新版本的Android Studio真的移除了JRE,jre目录找不到,怪不得报错了,不过多了一个jbr目录,找了个以前的Android Studio版本对比 搜了一下jbr(JetBrains Runtime),原来IDEA老早就开始用了&#xf…...

Tomcat 日志乱码问题解决

我就是三井,一个永不放弃希望的男人。——《灌篮高手》 Tomcat 日志乱码问题解决 乱码原因:字符编码不一致 如:国内电脑一般都是GBK编码,而Tomcat日志使用的是UTF-8编码 解决方法:将对应字符编码由 UTF-8 改为 GBK 即…...

yum源以及rpm安装包配置、yum源冲突、yum-config-manager命令找不到、curl: (35)、docker镜像重复拉取失败

yum源配置并解决冲突、curl: (35)、docker镜像重复拉取失败、yum-config-manager命令找不到的解决方法 有的时候按照教程走,可能会设置yum源,设置后用yum下载东西很有可能或造成冲突 yum源冲突的解决方式无非有两种:1. 删除冲突软…...

ChatGPT和文心一言的优缺点比较

ChatGPT和文心一言都是自然语言生成技术的代表,下面是它们的优缺点比较: ChatGPT的优点: 自由度高:ChatGPT生成的文本与给定的话题没有紧密的关联,可以灵活地生成多种不同的文本。多样性高:ChatGPT可以生…...

⛳ 面试题-单例模式会存在线程安全问题吗?

🎍目录 ⛳ 面试题-单例模式会存在线程安全问题吗?🎨 一、单例模式-简介🚜 二、饿汉式🐾 三、懒汉式🎯 3.1、懒汉式:在调用 getInstance 的时候才创建对象。(线程不安全)&…...

C - 滑动窗口 /【模板】单调队列

Description 有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 例如: The array is [1,3,−1,−3,5,3,6,7] and k3。 Input 输入一共有…...

工厂人员作业行为动作识别检测算法

工厂人员作业行为动作识别检测算法通过yolov7python深度学习算法框架模型,工厂人员作业行为动作识别检测算法实时识别并分析现场人员操作动作行为是否符合SOP安全规范流程作业标准,如果不符合则立即抓拍告警提醒。Python是一种由Guido van Rossum开发的通…...

【数据结构】顺序表详解

当我们写完通讯录后,顺序表肯定难不倒你,跟着小张一起来学习顺序表吧! 线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表&#x…...

HTML 播放器效果

效果图 实现代码 <!DOCTYPE HTML> <html><head><title>爱看动漫社区 | 首页 </title><link href"css/bootstrap.css" relstylesheet typetext/css /><!-- jQuery --><script src"js/jquery-1.11.0.min.js"…...

C++常用23种设计模式总结(三)------装饰模式

往期回顾 C常用23种设计模式总结(一)------单例模式 C常用23种设计模式总结(二)------观察者模式 什么是装饰模式 装饰模式是一种结构型设计模式&#xff0c;它允许你在运行时为对象动态添加新的行为。该模式通过将对象放入包装器中来实现这一点&#xff0c;这个包装器会实现与…...

选择O型圈时要考虑哪些因素?

为您的应用选择正确的O型圈对于确保适当的密封和较佳性能至关重要。O型圈可用的材料和尺寸多种多样&#xff0c;做出正确的选择可能需要知道一些重要的知识点。在本文中&#xff0c;我们将讨论选择O型圈时需要考虑的一些关键因素。 1、材料兼容性&#xff1a;先要考虑的因素是…...