# family-calendar **Repository Path**: deathbug/family-calendar ## Basic Information - **Project Name**: family-calendar - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-28 - **Last Updated**: 2026-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 亲情日历 面向中老年家庭的微信小程序,集农历黄历、家庭日程共享、生日提醒、用药打卡于一体。 - **前端**: 微信小程序原生(WXML + WXSS + JS) - **后端**: 微信云开发(CloudBase),含云函数、MongoDB 数据库 - **状态**: Phase 1-5 已完成,代码已就绪 ## 功能特性 ### 黄历(首页) - 实时展示公历/农历日期、干支纪年、生肖、节气、传统节日 - 每日宜忌查询 - 点击顶部日期展开日历选择面板,快速切换日期 ### 日历 - 当月公历日历视图,带事件标记 - 点击某天查看已添加的家庭日程 - 创建日程支持多种类型:生日、纪念日、就医、聚会、自定义 - 家庭成员共享日程信息 ### 用药管理 - 添加药品,配置剂量、服用方式、时段、用药周期 - 每日进入用药页自动检测未服用记录,弹窗提醒 - 单次用药打卡防重复,不可多次记录 - 漏服检测与家属通知机制 - 本月服药完成率统计 ### 个人中心 - 微信授权登录(自动登录,无需重复授权) - 创建/加入家庭(6位邀请码机制) - 家庭管理:查看成员、生成邀请码、分享邀请 - 生日管理:记录家庭成员生日,支持农历生日 - 内置使用说明,首次登录自动展示 ## 技术栈 | 领域 | 技术 | |------|------| | 前端框架 | 微信小程序原生 | | 农历计算 | `lunar-javascript` | | 后端 | 微信云函数(Node.js) | | 数据库 | 云开发 MongoDB | | 消息推送 | 微信订阅消息 + 定时触发器 | | 广告 | 微信流量主(Banner/插屏/原生/激励) | ## 项目结构 ``` family-calendar/ ├── docs/ # 产品与设计文档 │ ├── PRD.md # 产品需求文档 │ └── DEVELOPMENT.md # 开发设计文档 ├── cloudfunctions/ # 微信云函数 │ ├── family/ # 家庭管理(创建/加入/邀请码/成员列表) │ ├── schedule/ # 日程管理(CRUD) │ ├── reminder/ # 提醒推送(定时触发器) │ └── medicine/ # 用药管理(CRUD/打卡/日志/漏服检测) ├── miniprogram/ # 小程序前端 │ ├── pages/ │ │ ├── index/ # 黄历首页 │ │ ├── calendar/ # 日历月视图 + 事件列表 │ │ ├── medicine/ # 用药列表 + 打卡 │ │ ├── mine/ # 个人中心 │ │ ├── birthday/ # 生日列表 │ │ ├── add-schedule/ # 添加日程 │ │ ├── add-medicine/ # 添加药品 │ │ ├── add-birthday/ # 添加生日 │ │ └── family-manage/ # 家庭管理 │ ├── components/ # 公共组件 │ └── utils/ # 工具库(农历/日期格式化/API/广告配置) ├── project.config.json # 微信开发者工具配置 └── miniprogram/package.json # npm 依赖 ``` ## 数据库集合(6个) | 集合 | 用途 | |------|------| | `families` | 家庭组(名称、邀请码、创建者) | | `members` | 家庭成员(关联家庭、角色、openid) | | `schedules` | 家庭日程(类型、日期、提醒配置、是否农历/每年重复) | | `birthdays` | 生日记录(农历/公历、提前提醒天数) | | `medicines` | 用药记录(剂量、时段、周期、是否通知家属) | | `medicine_logs` | 用药打卡(状态:taken/missed/skipped) | ## 快速开始 ### 环境要求 - 微信开发者工具 7.0.0+ - Node.js(用于构建 npm 依赖) ### 本地运行 1. **安装依赖** ```bash cd miniprogram npm install ``` 2. **打开项目** 用微信开发者工具打开 `miniprogram/` 目录 3. **构建 npm** 微信开发者工具 → 工具 → 构建 npm(`lunar-javascript` 等依赖需要) 4. **云环境配置** 在 `miniprogram/app.js` 中配置云环境 ID: ```js wx.cloud.init({ env: '你的云环境ID', traceUser: true }); ``` 5. **部署云函数** 微信开发者工具中右键每个云函数目录(`cloudfunctions/family`、`schedule`、`reminder`、`medicine`)→ 上传并部署:云端安装依赖 ### 预览/调试 微信开发者工具 → 预览 → 微信扫码测试 ## 广告配置 广告配置位于 `miniprogram/utils/config/ad.js`: - `enabled`: 广告总开关(开发阶段设为 `false`) - `adUnitIds`: 各广告位 ID(需从微信流量主后台获取) 开发阶段预留了广告位(Banner、插屏、原生模板、激励),UV ≥ 500 后可开通上线。 ## UI 设计规范 - **主色**: `#D4380D`(中国红) - **字号**: 默认比常规大 20%-40%,关键按钮 ≥ 44px 点击区域 - **页面边距**: `24rpx`,卡片间距 `20rpx` - **TabBar**: 黄历 / 日历 / 用药 / 我的(4个 Tab) ## 开发阶段 | 阶段 | 内容 | 状态 | |------|------|------| | Phase 1 | 项目初始化、TabBar、黄历首页 | ✅ 完成 | | Phase 2 | 家庭组创建/加入、成员管理、邀请分享、4个云函数 | ✅ 完成 | | Phase 3 | 日历页面、日程 CRUD、生日记录、消息推送、广告位预留 | ✅ 完成 | | Phase 4 | 药品管理、用药打卡、漏服检测、Banner + 插屏广告 | ✅ 完成 | | Phase 5 | UI 打磨、组件化、自动登录、用药提醒、使用说明 | ✅ 完成 | | Phase 6 | 流量主开通、广告数据监控、V2.0 激励广告 | 待开发 | ## 参考文档 - 详细产品需求: `docs/PRD.md` - 技术架构与实现方案: `docs/DEVELOPMENT.md`