校猫日记是一个结合校园流浪猫救助管理和社交分享的社区平台,通过记录和分享学校流浪猫的信息,连接爱猫人士,共同为猫猫创造更好的生活环境。
- 🐱 猫咪信息管理: 记录猫咪基本信息、健康状况、性格特点等
- 📍 位置追踪: 基于高德地图的猫咪轨迹记录与展示
- 📷 图片上传: 用户可上传猫咪图片
- 📊 数据分析: 猫咪数据可视化分析
- 🔗 短链接: 帖子短链接分享
- 📝 社交分享: 用户可发布帖子分享猫咪动态
- 💬 评论系统: 支持帖子和猫咪评论,包含审核机制
- 🔍 智能搜索: 集成Elasticsearch的全文搜索
- 💰 捐赠管理: 猫咪救助资金管理
- 🏠 领养申请: 猫咪领养申请与审核流程
- 📝 帖子审核: 帖子、评论审核
- 🔍 内容搜索: 基于MySQL、ES的内容搜索
- 🧑💻 角色管理: 基于RBAC模型的自定义注解权限系统
- 💬 AI对话: 基于DIFY的AI智能问答
- 🤖 AI识别: 基于MobileNetV3的猫咪品种识别(85%准确率)
实际页面效果如下(图片更新于2024/12,最新版已对部分页面重新优化)
- 框架: Spring Boot 3.3.4
- 数据库: MySQL 8.0+
- ORM: MyBatis-Plus 3.5.7
- 缓存: Redis + Caffeine (三级缓存)
- 搜索: Elasticsearch 8.15.0
- 消息队列: RabbitMQ
- 安全: Spring Security + JWT
- 监控: Micrometer + Prometheus
- 移动端: UniApp (H5/小程序)
- 地图: 高德地图 JS SDK
- 实时通信: WebSocket
- Java 17+
- MySQL 8.0+
- Redis 6.0+
- Maven 3.6+
- 克隆项目
git clone https://github.com/your-username/PawprintDiaries.git
cd PawprintDiaries- 数据库配置
# 创建数据库
mysql -u root -p
CREATE DATABASE catcat CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- 导入数据库表结构
# 执行 docs/database.md 中的SQL语句创建表结构- 配置文件
# 复制配置模板
cp src/main/resources/application-dev.yml.template src/main/resources/application-dev.yml
# 编辑配置文件,填入你的数据库、Redis等配置信息- 启动项目
mvn spring-boot:run- 访问接口文档
http://localhost:8080/doc.html
- 🔐 安全认证: Spring Security + JWT + BCrypt密码加密
- 🎯 权限控制: 基于RBAC模型的自定义注解权限系统
- ⚡ 缓存策略: Redis + Caffeine三级缓存 + 缓存预热
- 🔍 搜索引擎: Elasticsearch全文搜索
- 🤖 AI识别: MobileNetV3轻量化猫咪品种识别模型
- 📍 地图服务: 高德地图SDK + WebSocket实时位置更新
- 🛡️ 限流防护: 多层限流(IP/接口/全局)+ 黑名单机制
- 🔗 短链服务: 自定义短链接生成与重定向
- 🌸 防重复: Redis布隆过滤器防止重复点赞
- 📊 推荐算法: 权重随机推荐 + 时间衰减 + 协同过滤
权重计算公式:
权重 = 点赞数 × 0.4 + 收藏数 × 0.3 + 评论数 × 0.2 + 浏览量 × 0.1
最终分数:
最终分数 = 权重 × (0.8 + Random.nextDouble() × 0.4)
完整API文档请访问:http://localhost:8080/doc.html
详细的数据库表结构请查看:数据库文档
- user: 用户信息表
- cat: 猫咪信息表
- post: 帖子表
- post_comment: 帖子评论表
- cat_comment: 猫咪评论表
- coordinate: 位置坐标表
- role/permission: 权限管理表
- donate: 捐赠记录表
- 复制
application-dev.yml.template为application-dev.yml - 配置数据库连接信息
- 配置Redis连接信息
- 配置JWT密钥
- 配置文件上传路径
- Elasticsearch(搜索功能)
- RabbitMQ(消息队列)
- 阿里云DashScope API(AI对话)
src/main/java/com/qin/catcat/
├── unite/
│ ├── controller/ # 控制器层
│ ├── service/ # 服务层
│ ├── mapper/ # 数据访问层
│ ├── popo/ # 实体类和VO
│ ├── config/ # 配置类
│ ├── common/ # 公共工具类
│ └── security/ # 安全相关
└── CatcatApplication.java # 启动类
- 使用Lombok简化代码
- 统一的Result返回格式
- AOP切面日志记录
- 自定义权限注解
- 三级缓存策略
我们欢迎所有形式的贡献!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
- ✨ 基础功能完成
- 🐱 猫咪信息管理系统
- 📝 帖子发布与评论系统
- 🔐 用户认证与权限管理
- 📍 位置追踪功能
- 🤖 AI猫咪品种识别
- 💰 捐赠管理系统
A: 取消ES相关注释,配置elasticsearch连接信息即可。不配置ES也可正常使用MySQL搜索。
A: 识别模型代码暂未公开,但不影响其他功能运行。
A: 修改application-prod.yml配置,使用java -jar或Docker部署。
本项目采用 MIT License 许可证。
- Spring Boot - 核心框架
- MyBatis-Plus - ORM框架
- Knife4j - API文档
- 高德地图 - 地图服务
- 阿里云 - AI服务
如有问题或建议,请通过以下方式联系:
- 提交 Issue
- 项目地址: GitHub
- 前端项目: PawprintDiaries-H5
- 在线体验: https://pawprintdiaries.luckyiur.com
- 开发者博客: https://luckyiur.com
- 发送邮件至: [email protected]
如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!
Made with ❤️ for stray cats




