# findCat **Repository Path**: chen_jeff/find-cat ## Basic Information - **Project Name**: findCat - **Description**: 寻找流浪猫 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: 260210-chore-add-stray-cat-requirements - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-10 - **Last Updated**: 2026-02-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🐱 流浪猫寻找定位APP 一款基于鸿蒙系统开发的流浪猫救助与寻找应用,帮助用户发现、标记、救助流浪猫。 ## 📱 项目概述 - **前端**: HarmonyOS 4.0+ / ArkTS / ArkUI - **后端**: Java 21 / Spring Boot 3.x / MySQL - **支持设备**: 手机、平板 ## ✨ 核心功能 | 功能 | 描述 | 状态 | |------|------|------| | 👤 用户系统 | 注册、登录、JWT认证 | ✅ | | 🗺️ 地图功能 | 展示流浪猫标记位置 | ✅ | | 📍 标记管理 | 创建、编辑、删除标记 | ✅ | | 🏷️ 标签系统 | 品种、性别、健康状况等标签 | ✅ | | 📷 图片功能 | 上传、浏览流浪猫图片 | ✅ | | 💬 评价系统 | 提交评价、查看历史 | ✅ | | ⭐ 收藏功能 | 收藏感兴趣的标记 | ✅ | | 📤 分享功能 | 生成分享海报 | ✅ | ## 📁 项目结构 ``` find-cat/ ├── backend/ # Spring Boot 后端服务 │ ├── src/main/java/com/straycat/ │ │ ├── common/ # 公共组件 │ │ │ ├── Result.java # 统一响应 │ │ │ ├── ExceptionAdvice.java # 全局异常处理 │ │ │ ├── BusinessException.java │ │ │ └── ResourceNotFoundException.java │ │ ├── config/ # 配置类 │ │ │ ├── SecurityConfig.java │ │ │ └── RedisConfig.java │ │ ├── user/ # 用户模块 │ │ │ ├── entity/User.java │ │ │ ├── repository/UserRepository.java │ │ │ ├── service/UserService.java │ │ │ ├── controller/UserController.java │ │ │ └── dto/UserDTO.java │ │ ├── marker/ # 标记模块 │ │ │ ├── entity/Marker.java │ │ │ ├── entity/MarkerImage.java │ │ │ ├── repository/MarkerRepository.java │ │ │ ├── service/MarkerService.java │ │ │ ├── controller/MarkerController.java │ │ │ └── dto/MarkerDTO.java │ │ ├── review/ # 评价模块 │ │ │ ├── entity/Review.java │ │ │ ├── repository/ReviewRepository.java │ │ │ ├── service/ReviewService.java │ │ │ ├── controller/ReviewController.java │ │ │ └── dto/ReviewDTO.java │ │ ├── favorite/ # 收藏模块 │ │ │ ├── entity/Favorite.java │ │ │ ├── repository/FavoriteRepository.java │ │ │ ├── service/FavoriteService.java │ │ │ └── controller/FavoriteController.java │ │ ├── image/ # 图片模块 │ │ │ ├── service/ImageService.java │ │ │ └── controller/ImageController.java │ │ └── StrayCatApplication.java │ ├── src/main/resources/ │ │ ├── application.yml │ │ └── application-dev.yml │ ├── Dockerfile │ ├── docker-compose.yml │ └── pom.xml │ ├── frontend/ # HarmonyOS 前端 │ ├── entry/src/main/ets/ │ │ ├── entryability/ │ │ │ └── EntryAbility.ts │ │ ├── pages/ │ │ │ ├── index/Index.ts # 首页 │ │ │ ├── auth/Login.ts # 登录 │ │ │ ├── auth/Register.ts # 注册 │ │ │ ├── map/MapPage.ts # 地图页 │ │ │ ├── marker/ │ │ │ │ ├── MarkerDetail.ts # 标记详情 │ │ │ │ ├── CreateMarker.ts # 创建标记 │ │ │ │ └── EditMarker.ts # 编辑标记 │ │ │ ├── profile/ │ │ │ │ ├── Profile.ts # 个人中心 │ │ │ │ ├── MyMarkers.ts # 我的标记 │ │ │ │ └── MyReviews.ts # 我的评价 │ │ │ └── favorite/Favorites.ts # 我的收藏 │ │ ├── services/ │ │ │ ├── AuthService.ts # 认证服务 │ │ │ ├── LocationService.ts # 定位服务 │ │ │ └── MarkerService.ts # 标记服务 │ │ ├── components/ │ │ │ ├── common/ │ │ │ │ └── MapView.ts # 地图组件 │ │ │ └── custom/ │ │ │ ├── SharePanel.ts # 分享面板 │ │ │ └── PosterGenerator.ts # 海报生成 │ │ ├── model/ │ │ │ ├── User.ts │ │ │ ├── Marker.ts │ │ │ └── Review.ts │ │ └── utils/ │ │ ├── Constants.ts # 常量定义 │ │ ├── HttpUtil.ts # HTTP工具 │ │ └── AdaptiveLayout.ts # 自适应布局 │ ├── entry/src/main/resources/ │ │ ├── base/element/string.json │ │ ├── base/element/color.json │ │ └── base/profile/main_pages.json │ ├── build-profile.json5 │ └── module.json5 │ └── .monkeycode/ # 项目文档 └── specs/stray-cat-location/ ├── requirements.md # 需求文档 ├── design.md # 技术设计文档 └── tasklist.md # 开发任务列表 ``` ## 🚀 快速开始 ### 后端服务 ```bash # 1. 安装依赖 cd backend mvn install # 2. 配置数据库(MySQL) # 编辑 application.yml 配置数据库连接 # 3. 启动服务 mvn spring-boot:run # 或使用 Docker docker-compose up -d ``` ### 前端(HarmonyOS) ```bash # 1. 使用 DevEco Studio 打开 frontend 目录 # 2. 配置签名 # 3. 构建并运行 ``` ## 📡 API 接口 ### 认证模块 | 接口 | 方法 | 说明 | |------|------|------| | `/api/auth/send-code` | POST | 发送验证码 | | `/api/auth/register` | POST | 用户注册 | | `/api/auth/login` | POST | 用户登录 | | `/api/auth/me` | GET | 获取当前用户 | ### 标记模块 | 接口 | 方法 | 说明 | |------|------|------| | `/api/markers` | GET | 获取标记列表 | | `/api/markers/{id}` | GET | 获取标记详情 | | `/api/markers` | POST | 创建标记 | | `/api/markers/{id}` | PUT | 更新标记 | | `/api/markers/{id}` | DELETE | 删除标记 | | `/api/markers/tags` | GET | 获取标签选项 | ### 评价模块 | 接口 | 方法 | 说明 | |------|------|------| | `/api/markers/{id}/reviews` | GET | 获取评价列表 | | `/api/markers/{id}/reviews` | POST | 提交评价 | | `/api/markers/{id}/reviews/statistics` | GET | 获取评价统计 | ### 收藏模块 | 接口 | 方法 | 说明 | |------|------|------| | `/api/favorites` | GET | 获取收藏列表 | | `/api/favorites` | POST | 添加收藏 | | `/api/favorites/{id}` | DELETE | 取消收藏 | ### 图片模块 | 接口 | 方法 | 说明 | |------|------|------| | `/api/images/upload` | POST | 上传图片 | | `/api/images/upload/batch` | POST | 批量上传 | ## 🔧 配置说明 ### 后端配置(application.yml) ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/stray_cat username: root password: root123 app: jwt: secret: your-secret-key expiration: 604800000 # 7天 oss: endpoint: localhost:9000 bucket: stray-cat-images ``` ### 前端配置(utils/Constants.ts) ```typescript export const BASE_URL: string = 'http://your-backend-server:8080/api'; ``` ## 🐳 Docker 部署 ```bash # 启动所有服务 docker-compose up -d # 服务说明 # - backend: 后端服务 (8080端口) # - mysql: MySQL数据库 (3306端口) # - redis: Redis缓存 (6379端口) # - minio: 对象存储 (9000端口) ``` ## 📝 开发计划 - [x] 项目初始化 - [x] 用户系统 - [x] 标记功能 - [x] 评价功能 - [x] 收藏功能 - [x] 图片上传 - [ ] 地图SDK集成 - [ ] 单元测试 - [ ] 性能优化 ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request!