commit d610f024b722b98a82e37e3305435baf764cb337 Author: yvan <8574526@qq.com> Date: Tue Aug 12 09:51:56 2025 +0800 1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/AugmentWebviewStateStore.xml b/.idea/AugmentWebviewStateStore.xml new file mode 100644 index 0000000..c730fad --- /dev/null +++ b/.idea/AugmentWebviewStateStore.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..81d0858 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/pet-ai.iml b/.idea/pet-ai.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/pet-ai.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..8c2b732 --- /dev/null +++ b/App.vue @@ -0,0 +1,17 @@ + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..b5d330d --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/main.js b/main.js new file mode 100644 index 0000000..c1caf36 --- /dev/null +++ b/main.js @@ -0,0 +1,22 @@ +import App from './App' + +// #ifndef VUE3 +import Vue from 'vue' +import './uni.promisify.adaptor' +Vue.config.productionTip = false +App.mpType = 'app' +const app = new Vue({ + ...App +}) +app.$mount() +// #endif + +// #ifdef VUE3 +import { createSSRApp } from 'vue' +export function createApp() { + const app = createSSRApp(App) + return { + app + } +} +// #endif \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..c72f634 --- /dev/null +++ b/manifest.json @@ -0,0 +1,72 @@ +{ + "name" : "pet-ai", + "appid" : "__UNI__2010549", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : {}, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : {} + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "", + "setting" : { + "urlCheck" : false + }, + "usingComponents" : true + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "3" +} diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..869105d --- /dev/null +++ b/pages.json @@ -0,0 +1,17 @@ +{ + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "uni-app" + } + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8" + }, + "uniIdRouter": {} +} diff --git a/pages/index/index.vue b/pages/index/index.vue new file mode 100644 index 0000000..ec0ec26 --- /dev/null +++ b/pages/index/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/pet.md b/pet.md new file mode 100644 index 0000000..de17034 --- /dev/null +++ b/pet.md @@ -0,0 +1,77 @@ +我想做一个宠物的小程序, +### 宠物相关 +创建、记录多个宠物的信息,展示宠物信息,包括名字,星座,品种,岁数,陪伴了多少天,宠物的照片头像 +显示宠物的所有的日常瞬间,包括随手记,大事记(绝育,第一次吃奶,第一次吃猫粮,第一次用猫砂,第一次搞破坏,第一次出门,第一次发情,生日,到家等等重要的时间记录),日常记录(体重、尿便、饮食、喝水、记账),健康记录(喂保健品,驱虫,疫苗,抗体水平,体检,看病,给药,住院,手术),洗护记录(洗澡,剪指甲,洗耳朵,刷牙,梳毛,剃脚毛,美容,挤肛门腺,擦眼屎),清洁记录(消毒,清洁,换猫砂,洗猫砂盆,洗食盆,洗水盆,洗玩具,洗笼子,换滤芯,换干燥剂),自定义类型 + +记账这个功能,可以对单只猫进行统计,按照月份,按照年份,也有对应的曲线图,可以切换猫咪 +这些日常都可以进行日常分享,或者私有自己看、或者选择只列出给家人看。 +而且类似体重、饮水、饮食这些,都可以生成对猫咪健康的分析,把品种和数据给AI进行分析 +每一只猫,按照目前所有的数据,进行猫咪的性格,健康分析。有自己专属的卡片记录,卡片有自己的信息,包括上面分享的一系列记录(如果选择公开的话)。 +每个人可以邀请其他人作为自己的共养家人,以及亲友团,这些都可以接收和观看所有的记录和提醒,事件也会进行微信推送。能看到宠物 + + +### 宠物助手 +包括一些宠物的知识库(包括宠物生病、宠物训练、宠物的喂养等)包括宠物的专属智能体,AI回答问话,这些对话的上下文需要记录,以及分页,并且可以打断,可以切换深度思考或者普通对话,包括一些tool或者mcp的调用,如果发了一句明天九点提醒我给宠物做疫苗,就会生成一条记录,明天早上九点的提醒以及记录,并提前给用户提醒,以及过半小时询问用户是否完成活动,并且更新活动状态。以及每一天对隔天的对话内容进行总结,如果提到了某些猫咪生病,不舒服之类的,隔天则进行提醒等站内信。 + +### 领养专区 +一些待领养的猫咪,可以发布领养的消息,可以对地区进行过滤筛选,用户可以发布领养消息,管理员进行审核,审核通过后即可展示在领养专区里,领养可以填写包括(名字,性别,种类,绝育,疫苗,生病,驱虫等信息)以及内容,还有图片,然后设置限时或者不限时,还有设置一些问题(要求养过猫,要求对猫绝育,要求对猫驱虫等要求),发布之后,有意向的人可以选择报名,并附加说明自己的情况(是否养过,目前有没有猫,几只宠物,是否能够)以及回答发布领养的人设置的问题,回答完通知领养人,领养人可以对这些内容进行查看,选择最适合领养宠物的选择,之后进行聊天谈细节等等。 + +这些是我第一个版本想做的功能,希望可以吸引用户来使用,你可以帮我进行每个功能点进行一些优化吗,然后补充一些我忘记写的细节,或者在帮我补充一些可以吸引人使用的功能。然后你扮演一个产品经理,然后帮我生成md文件,生成第一版本的计划、需求等。 + + +### 宠物社区 +还有宠物的社区相关内容,分享帖子、宠物等,你帮我补充遗漏的功能点 + +### 宠物食品/日用品测评 +宠物食品等的测评总结等,猫砂、猫粮、狗粮,你帮我补充遗漏的功能点 + + + +我想做一个宠物的小程序, +### 宠物相关 +创建、记录多个宠物的信息,展示宠物信息,显示宠物的所有的日常瞬间,显示宠物的计划(什么时候去打疫苗等),显示宠物的健康状况记录(每次生病的记录),体重记录等等,你帮我补充遗漏的功能点 + +### 宠物助手 +包括一些宠物的知识库(包括宠物生病、宠物训练、宠物的喂养等)包括宠物的专属智能体,AI回答问话,你帮我补充遗漏的功能点 + +### 领养专区 +一些待领养的猫咪,包括猫咪的详情信息等等,你帮我补充遗漏的功能点 + +### 宠物社区 +还有宠物的社区相关内容,分享帖子、宠物等,附近的宠物医院等。你帮我补充遗漏的功能点 + +### 宠物食品/日用品测评 +宠物食品等的测评总结等,猫砂、猫粮、狗粮,你帮我补充遗漏的功能点,给我一些建议,以及帮我补充每个功能点的一些细节功能,或者帮我创新一些新功能,还会有哪些功能能够吸引更多的人 + + +你帮我完善一下这些功能点,然后可以在增加一些创新的模块,帮我生成md + + +宠物的基本信息:宠物头像,宠物名字,猫咪种类(猫咪,狗狗),品种,性别,是否绝育,出生日期,到家日期,体重,性格 + +记录信息: +类型(随手记、大事记、日常记录(体重、尿便、饮食、喝水、记账)、健康记录(喂保健品、异常、驱虫、疫苗、抗体水平、体检、看病、给药、住院、手术)、洗护记录(洗澡、剪指甲、洗耳朵、刷牙、梳毛、剃脚毛、美容、挤肛门腺、擦眼屎)、清洁记录(消毒、清洁、换猫砂、洗猫砂盆、洗食盆、洗水盆、洗玩具、洗笼子、换滤芯、换干燥剂)) +哪一个宠物, +记录时间 +时间具体内容(json类型,每个记录都有不同的内容) +内容 +图片(多张) +视频(多张) +记录可见的范围(公开、家人、私有) + +家庭: +每个用户可以选择家庭加入,或者创建自己的家庭,只能选择其一,不能同时加入了家庭还创建家庭。一个家庭最多10个人 +可以邀请其他人加入,也可加入其他人的家庭。加入家庭之后,家庭内的成员共享所有的宠物信息,包括宠物信息(如果选择私有则不可见) + +领养: +每个用户可以发送领养帖子,包括宠物名字,宠物年龄,宠物性别,是否绝育,宠物品种,体重,性格,地区,宠物图片,健康状况(健康,生病),宠物视频,领养要求,领养条件(问答模式,添加问答或者选择题或者判断或者多选题的类型),截止时间,联系人电话 +领养人要进行申请,然后填写领养信息中的问卷回答问题进行报名,之后发布的人可以对报名领养的人进行查看以及筛选,也可以对进行报名的人进行联系 + +宠物智能体: +每个宠物智能体的llm对话表,需要保存这些聊天记录上下文的记录,每个用户查看自己的聊天记录。 + +AI助手: +AI助手智能体的llm对话表,然后需要保存这些聊天记录上下文。每个用户查看自己的聊天记录。 + +你帮我创建这些所有的表结构,生成sql文件 + diff --git a/static/logo.png b/static/logo.png new file mode 100644 index 0000000..b5771e2 Binary files /dev/null and b/static/logo.png differ diff --git a/uni.promisify.adaptor.js b/uni.promisify.adaptor.js new file mode 100644 index 0000000..5fec4f3 --- /dev/null +++ b/uni.promisify.adaptor.js @@ -0,0 +1,13 @@ +uni.addInterceptor({ + returnValue (res) { + if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) { + return res; + } + return new Promise((resolve, reject) => { + res.then((res) => { + if (!res) return resolve(res) + return res[0] ? reject(res[0]) : resolve(res[1]) + }); + }); + }, +}); \ No newline at end of file diff --git a/uni.scss b/uni.scss new file mode 100644 index 0000000..b9249e9 --- /dev/null +++ b/uni.scss @@ -0,0 +1,76 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ + +/* 行为相关颜色 */ +$uni-color-primary: #007aff; +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$uni-text-color:#333;//基本色 +$uni-text-color-inverse:#fff;//反色 +$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable:#c0c0c0; + +/* 背景颜色 */ +$uni-bg-color:#ffffff; +$uni-bg-color-grey:#f8f8f8; +$uni-bg-color-hover:#f1f1f1;//点击状态颜色 +$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 + +/* 边框颜色 */ +$uni-border-color:#c8c7cc; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm:12px; +$uni-font-size-base:14px; +$uni-font-size-lg:16px; + +/* 图片尺寸 */ +$uni-img-size-sm:20px; +$uni-img-size-base:26px; +$uni-img-size-lg:40px; + +/* Border Radius */ +$uni-border-radius-sm: 2px; +$uni-border-radius-base: 3px; +$uni-border-radius-lg: 6px; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 5px; +$uni-spacing-row-base: 10px; +$uni-spacing-row-lg: 15px; + +/* 垂直间距 */ +$uni-spacing-col-sm: 4px; +$uni-spacing-col-base: 8px; +$uni-spacing-col-lg: 12px; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2C405A; // 文章标题颜色 +$uni-font-size-title:20px; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle:26px; +$uni-color-paragraph: #3F536E; // 文章段落颜色 +$uni-font-size-paragraph:15px; diff --git a/宠爱小程序产品需求文档.md b/宠爱小程序产品需求文档.md new file mode 100644 index 0000000..056381c --- /dev/null +++ b/宠爱小程序产品需求文档.md @@ -0,0 +1,300 @@ +# 宠物管家小程序第一版本产品需求文档 + +## 1. 产品概述 + +### 1.1 产品定位 +宠物管家第一版本是一款专注于宠物日常管理的小程序,提供宠物档案管理、日常记录、记账统计、家庭共养等核心功能。 + +### 1.2 目标用户 +- **主要用户**:养宠家庭、宠物爱好者 +- **次要用户**:准备养宠人群、宠物救助者 + +### 1.3 第一版本目标 +- 帮助宠物主科学记录宠物日常生活 +- 提供简单的数据统计和分析 +- 支持家庭成员共同管理宠物 +- 建立基础的宠物领养信息平台 + +## 2. 第一版本核心功能 + +### 2.1 宠物档案管理 + +#### 2.1.1 基础信息录入 +- **必填信息**:宠物名字、品种、性别、生日、到家日期 +- **可选信息**:体重、毛色、性格标签、特殊说明 +- **头像上传**:支持拍照或从相册选择宠物照片 +- **自动计算**:根据生日自动计算年龄和星座 + +#### 2.1.2 信息展示 +- **宠物卡片**:在首页展示宠物基本信息和头像 +- **陪伴天数**:自动计算从到家日期到现在的天数 +- **详情页面**:完整展示宠物所有信息 +- **编辑功能**:支持修改宠物信息 + +### 2.2 日常记录系统 + +#### 2.2.1 记录分类 +- **随手记**:日常趣事、心情记录、文字+图片 +- **大事记**:重要时刻记录(绝育、第一次吃奶、第一次吃猫粮、第一次用猫砂、第一次搞破坏、第一次出门、第一次发情、生日、到家等) +- **日常记录**:体重、尿便、饮食、喝水、记账 +- **健康记录**:喂保健品、驱虫、疫苗、抗体水平、体检、看病、给药、住院、手术 +- **洗护记录**:洗澡、剪指甲、洗耳朵、刷牙、梳毛、剃脚毛、美容、挤肛门腺、擦眼屎 +- **清洁记录**:消毒、清洁、换猫砂、洗猫砂盆、洗食盆、洗水盆、洗玩具、洗笼子、换滤芯、换干燥剂 +- **自定义类型**:用户可以自定义记录类型 + +#### 2.2.2 记录功能 +- **添加记录**:选择记录类型,填写内容、时间、数值(如体重) +- **图片上传**:每条记录可以添加多张图片 +- **时间线展示**:按时间顺序展示所有记录 +- **分类筛选**:可以按记录类型筛选查看 +- **编辑删除**:支持修改和删除已有记录 + +### 2.3 记账统计功能 + +#### 2.3.1 消费记录 +- **记账分类**:食物、医疗、用品、服务、其他 +- **记录内容**:金额、类别、备注、关联宠物、时间 +- **多宠物支持**:可以选择消费是针对哪只宠物 + +#### 2.3.2 统计分析 +- **宠物切换**:可以切换查看不同宠物的消费统计 +- **时间维度**:按月份、按年份统计消费 +- **图表展示**:简单的柱状图或折线图展示消费趋势 +- **分类统计**:按消费类别统计金额和占比 + +## 3. 分享和家庭功能 + +### 3.1 分享设置 +- **分享权限**:每条记录可以设置三种分享模式 + - 公开:所有人可见 + - 仅家人:只有家庭成员可见 + - 私有:只有自己可见 +- **默认设置**:可以设置默认的分享权限 +- **批量设置**:可以批量修改已有记录的分享权限 + +### 3.2 家庭共养功能 +- **创建家庭**:宠物主人可以创建家庭 +- **邀请成员**:通过邀请码或微信直接邀请家人加入 +- **成员权限**: + - 主人:所有权限 + - 家人:可以查看和添加记录 + - 观察者:只能查看记录 +- **消息推送**:重要事件(如生病、疫苗等)会推送给所有家庭成员 + +## 4. AI宠物助手(基础版) + +### 4.1 基础对话功能 +- **文字对话**:用户可以通过文字与AI助手对话 +- **知识问答**:回答宠物相关的基础问题(生病、训练、喂养等) +- **上下文记录**:保存对话历史,支持分页查看 +- **对话打断**:用户可以随时开始新的对话主题 + +### 4.2 简单知识库 +- **宠物生病**:常见疾病的症状和处理建议 +- **宠物训练**:基础的训练方法和技巧 +- **宠物喂养**:不同年龄段的喂养指导 +- **紧急情况**:紧急情况的处理步骤 + +### 4.3 智能提醒功能 +- **语义识别**:识别用户对话中的时间和任务 + - 例如:"明天九点提醒我给宠物做疫苗" +- **自动生成**:自动生成提醒记录和任务 +- **推送提醒**:到时间后推送提醒消息 +- **状态跟踪**:提醒后询问用户是否完成,更新任务状态 + +### 4.4 每日总结 +- **对话总结**:每天对当天的对话内容进行总结 +- **健康关注**:如果提到宠物生病或不舒服,第二天会主动询问情况 +- **站内消息**:重要提醒通过站内消息推送 + +## 5. 领养专区 + +### 5.1 发布领养信息 +- **宠物信息**:名字、性别、种类、年龄、绝育状态、疫苗情况、驱虫情况、健康状况 +- **图片上传**:支持上传多张宠物照片 +- **详细描述**:宠物性格、习惯、特殊需求等文字描述 +- **领养要求**:设置领养条件(如要求养过猫、要求对猫绝育、要求对猫驱虫等) +- **筛选问题**:设置申请者需要回答的问题 +- **时效设置**:可以设置领养信息的有效期,或选择不限时 + +### 5.2 浏览和筛选 +- **地区筛选**:按地理位置筛选附近的领养信息 +- **基础搜索**:按宠物类型、性别、年龄等条件搜索 +- **信息展示**:列表展示领养信息,包含基本信息和照片 +- **详情查看**:点击查看完整的领养信息和要求 + +### 5.3 申请和沟通 +- **申请报名**:有意向的用户可以申请领养 +- **个人信息**:填写个人基本信息和养宠经验 +- **回答问题**:回答发布者设置的筛选问题 +- **申请说明**:说明自己的养宠条件和能力 +- **消息通知**:申请后通知发布者 +- **聊天功能**:申请通过后可以进行私聊沟通细节 + +### 5.4 管理和审核 +- **管理员审核**:发布的领养信息需要管理员审核通过 +- **申请管理**:发布者可以查看所有申请,选择合适的申请者 +- **状态更新**:领养成功后更新信息状态 + +## 6. 技术方案 + +### 6.1 技术架构 +- **前端框架**:uni-app + Vue3,支持微信小程序 +- **后端框架**:Node.js + Express +- **数据库**:MongoDB +- **文件存储**:腾讯云COS对象存储 +- **AI服务**:接入百度文心一言或腾讯AI + +### 6.2 核心数据结构 +- **用户表**:用户基本信息、微信openid +- **宠物表**:宠物档案信息 +- **记录表**:所有类型的记录统一存储 +- **家庭表**:家庭成员关系 +- **领养表**:领养信息和申请记录 + +### 6.3 关键功能实现 +- **微信登录**:使用微信小程序授权登录 +- **图片上传**:集成腾讯云COS,支持图片压缩 +- **消息推送**:使用微信小程序模板消息 +- **数据统计**:前端使用uCharts生成图表 + +## 7. 第一版本开发计划 + +### 7.1 开发周期(总计16周) + +#### 第1-2周:项目搭建 +- 前后端项目架构搭建 +- 开发环境配置 +- 数据库设计 +- 基础UI组件开发 +- 微信小程序配置 + +#### 第3-4周:用户系统和宠物档案 +- 微信登录功能 +- 用户信息管理 +- 宠物档案CRUD功能 +- 宠物信息展示页面 +- 图片上传功能 + +#### 第5-7周:日常记录系统 +- 记录分类和添加功能 +- 记录列表和详情页 +- 图片上传和展示 +- 时间线展示 +- 记录编辑和删除 + +#### 第8-9周:记账统计功能 +- 消费记录添加 +- 按宠物和时间统计 +- 图表展示功能 +- 数据筛选和查看 + +#### 第10-11周:分享和家庭功能 +- 分享权限设置 +- 家庭创建和邀请 +- 成员权限管理 +- 消息推送功能 + +#### 第12-13周:AI助手基础版 +- AI对话接口集成 +- 知识库查询功能 +- 对话历史记录 +- 智能提醒功能 + +#### 第14-15周:领养专区 +- 领养信息发布 +- 浏览和筛选功能 +- 申请和审核流程 +- 聊天功能 + +#### 第16周:测试和优化 +- 功能测试和bug修复 +- 性能优化 +- 用户体验优化 +- 发布准备 + +### 7.2 团队配置 +- **产品经理**:1人,负责需求管理和项目协调 +- **UI设计师**:1人,负责界面设计和用户体验 +- **前端开发**:1-2人,负责小程序开发 +- **后端开发**:1-2人,负责API和数据库开发 +- **测试**:1人,负责功能测试和质量保证 + +### 7.3 关键里程碑 +- **第4周**:完成宠物档案管理功能 +- **第7周**:完成日常记录系统 +- **第9周**:完成记账统计功能 +- **第11周**:完成家庭共养功能 +- **第13周**:完成AI助手基础版 +- **第15周**:完成领养专区 +- **第16周**:完成测试,准备发布 + +## 8. 功能优先级 + +### 8.1 高优先级(必须实现) +1. 宠物档案管理 +2. 日常记录系统 +3. 基础分享功能 +4. 记账统计功能 + +### 8.2 中优先级(重要功能) +1. 家庭共养功能 +2. AI助手基础版 +3. 消息推送功能 + +### 8.3 低优先级(可选功能) +1. 领养专区 +2. 高级AI功能 +3. 复杂数据分析 + +## 9. 第一版本成功指标 + +### 9.1 用户指标 +- **用户注册**:目标1000个注册用户 +- **活跃用户**:日活跃用户50人以上 +- **记录频次**:用户平均每周记录3次以上 +- **留存率**:7日留存率达到30%以上 + +### 9.2 功能使用率 +- **宠物档案**:90%用户完成宠物档案创建 +- **日常记录**:70%用户使用记录功能 +- **记账功能**:40%用户使用记账功能 +- **家庭共养**:20%用户邀请家人加入 + +### 9.3 技术指标 +- **系统稳定性**:99%以上的可用性 +- **响应速度**:API响应时间小于2秒 +- **图片上传**:成功率95%以上 + +## 10. 风险控制 + +### 10.1 开发风险 +- **进度延期**:每周进度检查,及时调整资源 +- **技术难点**:提前验证关键技术,准备备选方案 +- **质量问题**:建立测试流程,确保功能质量 + +### 10.2 用户风险 +- **用户接受度**:通过小范围测试收集用户反馈 +- **使用习惯**:简化操作流程,提供使用指导 +- **数据安全**:严格保护用户隐私和宠物信息 + +## 11. 后续版本规划 + +### 11.1 第二版本(V2.0) +- 增强AI分析能力 +- 添加更多宠物种类支持 +- 完善社区功能 +- 增加专家服务 + +### 11.2 长期规划 +- 智能硬件集成 +- 宠物健康预警系统 +- 商业化功能 +- 平台生态建设 + +--- + +**文档版本**:第一版本 v1.0 +**创建日期**:2025年1月 +**预计完成时间**:2025年5月 +**负责人**:产品开发团队 diff --git a/技术栈选择建议.md b/技术栈选择建议.md new file mode 100644 index 0000000..9316a41 --- /dev/null +++ b/技术栈选择建议.md @@ -0,0 +1,152 @@ +# 宠物管家小程序技术栈选择建议 + +## 推荐方案:uni-app + Vue3 + +### 选择理由 + +#### 1. 功能复杂度匹配 +- 你的项目包含8个主要功能模块,功能复杂度较高 +- uni-app的组件化开发模式非常适合复杂业务场景 +- Vue3的组合式API便于组织复杂的业务逻辑 + +#### 2. 开发效率优势 +- **快速开发**:丰富的UI组件库(uView、uni-ui) +- **代码复用**:组件可以在不同页面间复用 +- **开发工具**:HBuilderX提供可视化开发支持 + +#### 3. 跨平台能力 +- 一套代码多端发布(微信小程序、支付宝小程序、H5、App) +- 为后续业务扩展提供技术基础 + +#### 4. 生态系统 +- 插件市场丰富,有现成的图表、AI对话等插件 +- 社区活跃,问题解决方案多 + +## 具体技术栈配置 + +### 前端技术栈 +``` +核心框架:uni-app + Vue3 + TypeScript +状态管理:Pinia +UI组件库:uView UI 2.0 +图表库:uCharts +工具库:lodash、dayjs +``` + +### 后端技术栈 +``` +运行环境:Node.js 16+ +Web框架:Express.js +数据库:MongoDB + Redis +文件存储:腾讯云COS +AI服务:腾讯云AI或百度文心一言 +推送服务:微信小程序模板消息 +``` + +### 开发工具 +``` +IDE:HBuilderX 或 VS Code + uni-app插件 +版本控制:Git +API测试:Postman +数据库管理:MongoDB Compass +``` + +## 项目结构建议 + +``` +pet-miniprogram/ +├── pages/ # 页面文件 +│ ├── index/ # 首页 +│ ├── pet/ # 宠物相关页面 +│ │ ├── list/ # 宠物列表 +│ │ ├── detail/ # 宠物详情 +│ │ └── add/ # 添加宠物 +│ ├── record/ # 记录相关页面 +│ │ ├── list/ # 记录列表 +│ │ ├── add/ # 添加记录 +│ │ └── detail/ # 记录详情 +│ ├── statistics/ # 统计页面 +│ ├── family/ # 家庭管理 +│ ├── adoption/ # 领养专区 +│ ├── ai-assistant/ # AI助手 +│ └── user/ # 用户中心 +├── components/ # 公共组件 +│ ├── pet-card/ # 宠物卡片 +│ ├── record-item/ # 记录项 +│ ├── chart/ # 图表组件 +│ └── upload/ # 上传组件 +├── static/ # 静态资源 +├── store/ # 状态管理 +│ ├── modules/ +│ │ ├── user.js # 用户状态 +│ │ ├── pet.js # 宠物状态 +│ │ └── record.js # 记录状态 +│ └── index.js +├── utils/ # 工具函数 +│ ├── request.js # 网络请求 +│ ├── auth.js # 认证相关 +│ ├── upload.js # 文件上传 +│ └── common.js # 通用工具 +├── api/ # API接口 +│ ├── user.js +│ ├── pet.js +│ ├── record.js +│ └── adoption.js +├── manifest.json # 应用配置 +├── pages.json # 页面配置 +└── App.vue # 应用入口 +``` + +## 关键技术实现要点 + +### 1. 数据管理 +- 使用Pinia进行状态管理 +- 本地存储用户登录状态和常用数据 +- 实现数据的离线缓存机制 + +### 2. 图片处理 +- 集成腾讯云COS SDK +- 实现图片压缩和上传 +- 支持多图上传和预览 + +### 3. 图表统计 +- 使用uCharts实现消费统计图表 +- 支持柱状图、饼图、折线图 +- 响应式图表适配不同屏幕 + +### 4. AI对话 +- 集成AI API(腾讯云或百度) +- 实现对话历史存储 +- 支持语义识别和智能提醒 + +### 5. 消息推送 +- 集成微信小程序模板消息 +- 实现家庭成员消息通知 +- 支持定时提醒功能 + +## 开发周期预估 + +基于uni-app + Vue3的开发效率,预计开发周期: + +- **项目搭建**:1周 +- **核心功能开发**:10-12周 +- **测试优化**:2-3周 +- **总计**:13-16周 + +## 学习资源推荐 + +1. **uni-app官方文档**:https://uniapp.dcloud.net.cn/ +2. **Vue3官方文档**:https://cn.vuejs.org/ +3. **uView UI文档**:https://www.uviewui.com/ +4. **微信小程序开发文档**:https://developers.weixin.qq.com/miniprogram/dev/framework/ + +## 总结 + +对于你的宠物管家小程序项目,**uni-app + Vue3** 是最佳选择: + +✅ **开发效率高** - 适合复杂功能快速开发 +✅ **技术成熟** - 生态完善,社区支持好 +✅ **扩展性强** - 支持跨平台发布 +✅ **维护成本低** - 代码结构清晰,易于维护 + +建议立即开始使用这个技术栈进行项目开发! diff --git a/第一版本功能拆分详细说明.md b/第一版本功能拆分详细说明.md new file mode 100644 index 0000000..d6934a2 --- /dev/null +++ b/第一版本功能拆分详细说明.md @@ -0,0 +1,419 @@ +# 宠物管家小程序第一版本功能拆分详细说明 + +## 1. 功能模块总览 + +### 1.1 核心功能模块 +1. **用户系统** - 微信登录、用户信息管理 +2. **宠物档案管理** - 宠物信息录入、展示、编辑 +3. **日常记录系统** - 多类型记录的添加、查看、管理 +4. **记账统计功能** - 消费记录、统计分析、图表展示 +5. **分享权限管理** - 记录分享设置、隐私控制 +6. **家庭共养功能** - 家庭创建、成员邀请、权限管理 +7. **AI助手基础版** - 简单对话、知识查询、智能提醒 +8. **领养专区** - 发布领养、浏览申请、沟通管理 + +## 2. 详细功能拆分 + +### 2.1 用户系统 + +#### 2.1.1 微信登录 +**功能描述**:用户通过微信授权登录小程序 +**具体实现**: +- 调用微信小程序登录API获取code +- 后端通过code换取openid和session_key +- 生成JWT token返回给前端 +- 前端存储token用于后续API调用 + +**页面设计**: +- 登录页面:显示微信登录按钮 +- 授权页面:获取用户基本信息授权 + +**数据字段**: +- openid:微信用户唯一标识 +- nickname:用户昵称 +- avatar:用户头像 +- phone:手机号(可选) + +#### 2.1.2 用户信息管理 +**功能描述**:用户可以查看和编辑个人信息 +**具体实现**: +- 个人中心页面展示用户信息 +- 支持修改昵称、头像、手机号 +- 头像支持拍照或从相册选择 + +### 2.2 宠物档案管理 + +#### 2.2.1 宠物信息录入 +**功能描述**:用户可以添加宠物的基本信息 +**必填字段**: +- 宠物名字:文本输入 +- 品种:下拉选择或文本输入 +- 性别:单选(公/母) +- 生日:日期选择器 +- 到家日期:日期选择器 + +**可选字段**: +- 体重:数字输入(单位:kg) +- 毛色:文本输入 +- 性格标签:多选标签 +- 特殊说明:文本输入 +- 头像:图片上传 + +**自动计算字段**: +- 年龄:根据生日自动计算 +- 陪伴天数:根据到家日期自动计算 +- 星座:根据生日自动计算 + +#### 2.2.2 宠物信息展示 +**首页宠物卡片**: +- 宠物头像(圆形) +- 宠物名字 +- 年龄和陪伴天数 +- 快捷操作按钮(添加记录、查看详情) + +**宠物详情页**: +- 完整的宠物信息展示 +- 编辑按钮 +- 最近记录列表 +- 统计数据概览 + +#### 2.2.3 多宠物管理 +**功能描述**:支持用户管理多只宠物 +**具体实现**: +- 宠物列表页面 +- 宠物切换功能 +- 每只宠物独立的记录和统计 + +### 2.3 日常记录系统 + +#### 2.3.1 记录分类定义 +**随手记**: +- 内容:文字描述 +- 图片:可选,最多9张 +- 时间:默认当前时间,可修改 + +**大事记**: +- 预设选项:绝育、第一次吃奶、第一次吃猫粮、第一次用猫砂、第一次搞破坏、第一次出门、第一次发情、生日、到家 +- 自定义:用户可以添加自定义大事记 +- 内容:文字描述 +- 图片:可选 +- 时间:必填 + +**日常记录**: +- 体重:数值输入(kg)+ 备注 +- 尿便:次数 + 状态描述 + 图片 +- 饮食:食物类型 + 分量 + 时间 + 图片 +- 喝水:水量(ml)+ 时间 +- 记账:金额 + 类别 + 备注 + +**健康记录**: +- 喂保健品:保健品名称 + 剂量 + 时间 +- 驱虫:驱虫药名称 + 时间 + 下次提醒 +- 疫苗:疫苗类型 + 时间 + 下次提醒 +- 抗体水平:检测结果 + 时间 +- 体检:体检项目 + 结果 + 图片 +- 看病:症状 + 诊断 + 治疗方案 + 费用 +- 给药:药品名称 + 剂量 + 频次 + 时间 +- 住院:入院时间 + 出院时间 + 原因 + 费用 +- 手术:手术类型 + 时间 + 费用 + 恢复情况 + +**洗护记录**: +- 洗澡:时间 + 使用产品 + 图片 +- 剪指甲:时间 + 备注 +- 洗耳朵:时间 + 使用产品 +- 刷牙:时间 + 使用产品 +- 梳毛:时间 + 备注 +- 剃脚毛:时间 + 备注 +- 美容:时间 + 项目 + 费用 + 图片 +- 挤肛门腺:时间 + 备注 +- 擦眼屎:时间 + 备注 + +**清洁记录**: +- 消毒:消毒区域 + 使用产品 + 时间 +- 清洁:清洁项目 + 时间 +- 换猫砂:时间 + 猫砂类型 +- 洗猫砂盆:时间 + 清洁产品 +- 洗食盆:时间 +- 洗水盆:时间 +- 洗玩具:时间 + 清洁方式 +- 洗笼子:时间 + 清洁产品 +- 换滤芯:设备名称 + 时间 +- 换干燥剂:时间 + 位置 + +**自定义类型**: +- 用户可以创建自定义记录类型 +- 自定义字段配置 +- 保存为模板供后续使用 + +#### 2.3.2 记录添加流程 +1. 选择宠物(如果有多只) +2. 选择记录类型 +3. 填写记录内容 +4. 上传图片(可选) +5. 设置分享权限 +6. 保存记录 + +#### 2.3.3 记录展示和管理 +**时间线展示**: +- 按时间倒序显示所有记录 +- 不同类型用不同图标和颜色区分 +- 支持下拉刷新和上拉加载 + +**分类筛选**: +- 按记录类型筛选 +- 按时间范围筛选 +- 按宠物筛选(多宠物情况) + +**记录详情**: +- 完整的记录信息展示 +- 图片查看(支持放大) +- 编辑和删除功能 + +### 2.4 记账统计功能 + +#### 2.4.1 消费记录 +**记录字段**: +- 金额:数字输入(精确到分) +- 类别:食物、医疗、用品、服务、其他 +- 备注:文字描述 +- 关联宠物:选择宠物(支持多选) +- 时间:默认当前时间,可修改 + +**快捷记录**: +- 常用金额快捷按钮 +- 常用类别快捷选择 +- 语音输入金额 + +#### 2.4.2 统计分析 +**宠物维度统计**: +- 可以切换查看不同宠物的消费 +- 支持查看所有宠物的总消费 + +**时间维度统计**: +- 按月份统计:当月消费总额和分类占比 +- 按年份统计:全年消费趋势 +- 自定义时间范围统计 + +**图表展示**: +- 柱状图:月度消费趋势 +- 饼图:消费类别占比 +- 折线图:消费变化趋势 + +#### 2.4.3 数据导出 +- 支持导出Excel格式的消费记录 +- 按时间范围和宠物筛选导出 +- 包含详细的消费明细和统计汇总 + +### 2.5 分享权限管理 + +#### 2.5.1 分享设置 +**三种分享模式**: +- 公开:所有用户可见 +- 仅家人:只有家庭成员可见 +- 私有:只有自己可见 + +**设置方式**: +- 添加记录时设置 +- 记录详情页修改 +- 批量修改多条记录 + +#### 2.5.2 默认设置 +- 用户可以设置默认的分享权限 +- 新记录自动使用默认设置 +- 可以为不同类型的记录设置不同的默认权限 + +### 2.6 家庭共养功能 + +#### 2.6.1 家庭创建 +**创建流程**: +1. 用户点击创建家庭 +2. 填写家庭名称 +3. 选择要共享的宠物 +4. 生成邀请码 + +**家庭信息**: +- 家庭名称 +- 创建时间 +- 成员数量 +- 共享宠物列表 + +#### 2.6.2 成员邀请 +**邀请方式**: +- 邀请码分享:生成6位数字邀请码 +- 微信直接邀请:通过微信分享邀请链接 + +**邀请流程**: +1. 家庭主人发送邀请 +2. 被邀请人点击链接或输入邀请码 +3. 确认加入家庭 +4. 设置成员权限 + +#### 2.6.3 权限管理 +**角色定义**: +- 主人:所有权限,可以邀请成员、设置权限、删除家庭 +- 家人:可以查看和添加记录,不能删除其他人的记录 +- 观察者:只能查看记录,不能添加或修改 + +**权限细分**: +- 查看记录:所有角色都有 +- 添加记录:主人和家人 +- 编辑记录:只能编辑自己添加的记录 +- 删除记录:只能删除自己添加的记录 +- 管理宠物:只有主人可以 + +#### 2.6.4 消息推送 +**推送场景**: +- 新成员加入家庭 +- 重要健康记录(生病、疫苗、体检等) +- 紧急情况记录 + +**推送方式**: +- 微信小程序模板消息 +- 站内消息通知 + +### 2.7 AI助手基础版 + +#### 2.7.1 基础对话功能 +**对话界面**: +- 聊天气泡样式 +- 支持文字输入 +- 显示AI回复 + +**知识问答**: +- 宠物生病:常见疾病症状和处理建议 +- 宠物训练:基础训练方法和技巧 +- 宠物喂养:不同年龄段的喂养指导 +- 紧急情况:紧急情况的处理步骤 + +#### 2.7.2 智能提醒功能 +**语义识别**: +- 识别时间表达:明天、下周、9点等 +- 识别任务内容:疫苗、体检、喂药等 +- 生成结构化提醒 + +**提醒管理**: +- 自动生成提醒记录 +- 设置推送时间 +- 提醒后询问完成状态 +- 更新任务状态 + +#### 2.7.3 对话历史 +**历史记录**: +- 保存所有对话内容 +- 按日期分组显示 +- 支持搜索历史对话 + +**分页加载**: +- 每页显示20条对话 +- 支持上拉加载更多 +- 新对话自动滚动到底部 + +#### 2.7.4 每日总结 +**总结功能**: +- 每天晚上自动总结当天对话 +- 识别重要信息(健康问题、异常情况) +- 生成关注提醒 + +**主动关怀**: +- 如果提到宠物生病,第二天主动询问情况 +- 定期询问宠物状况 +- 提供个性化建议 + +### 2.8 领养专区 + +#### 2.8.1 发布领养信息 +**宠物信息**: +- 基本信息:名字、性别、种类、年龄 +- 健康状况:绝育、疫苗、驱虫、疾病情况 +- 性格描述:文字描述宠物性格和习惯 +- 图片上传:最多9张宠物照片 + +**领养要求**: +- 基础要求:年龄、居住条件、经济能力 +- 特殊要求:养宠经验、是否同意绝育等 +- 筛选问题:自定义问题列表 + +**发布设置**: +- 有效期:可设置领养信息的有效期 +- 联系方式:手机号或微信号 +- 地区:选择所在城市和区域 + +#### 2.8.2 浏览和筛选 +**列表展示**: +- 宠物照片和基本信息 +- 发布时间和地区 +- 快速筛选标签 + +**筛选功能**: +- 地区筛选:按省市区筛选 +- 类型筛选:按宠物种类筛选 +- 条件筛选:按年龄、性别、绝育状态筛选 + +**搜索功能**: +- 关键词搜索 +- 按品种搜索 +- 按发布者搜索 + +#### 2.8.3 申请和沟通 +**申请流程**: +1. 查看领养详情 +2. 填写申请信息 +3. 回答筛选问题 +4. 提交申请 +5. 等待审核 + +**申请信息**: +- 个人基本信息 +- 养宠经验描述 +- 居住环境说明 +- 承诺和保证 + +**沟通功能**: +- 简单的聊天界面 +- 支持文字和图片 +- 消息推送通知 + +#### 2.8.4 管理和审核 +**发布者管理**: +- 查看所有申请 +- 筛选合适的申请者 +- 与申请者沟通 +- 选择最终领养者 + +**管理员审核**: +- 审核发布的领养信息 +- 处理举报和投诉 +- 维护平台秩序 + +**状态管理**: +- 发布中、已暂停、已完成 +- 申请中、已通过、已拒绝 +- 自动状态更新 + +## 3. 技术实现要点 + +### 3.1 数据存储 +- 使用MongoDB存储所有数据 +- 图片存储在腾讯云COS +- Redis缓存热点数据 + +### 3.2 API设计 +- RESTful API设计 +- JWT token认证 +- 统一的错误处理和返回格式 + +### 3.3 性能优化 +- 图片压缩和懒加载 +- 分页加载减少数据量 +- 缓存常用数据 + +### 3.4 安全考虑 +- 用户数据加密存储 +- API接口权限验证 +- 图片内容安全检查 + +--- + +**文档版本**:v1.0 +**创建日期**:2025年1月 +**负责人**:开发团队