# KinEcho 服务端 基于 Flask + SQLite 的日程同步服务,支持家人端和老人端的护理计划管理。 ## 功能特性 ### 家人端 - ✅ 创建护理计划/日程 - ✅ 查看所有日程列表 - ✅ 更新日程信息 - ✅ 删除日程 - ✅ 支持重复日程(每日、每周、每月) ### 老人端 - ✅ 查看今日日程 - ✅ 获取即将到来的提醒 - ✅ 标记提醒完成 - ✅ 忽略提醒 ## 技术栈 - **Python 3.8+** - **Flask 3.0** - Web 框架 - **SQLite** - 数据库 - **Flask-CORS** - 跨域支持 ## 快速开始 ### 1. 安装依赖 ```bash cd server pip install -r requirements.txt ``` ### 2. 配置环境变量 ```bash cp .env.example .env ``` ### 3. 启动服务 ```bash python app.py ``` 服务将在 `http://localhost:8000` 启动。 ## API 文档 ### 家人端 API #### 获取所有日程 ``` GET /api/family/schedules?family_id=xxx ``` #### 创建日程 ``` POST /api/family/schedules Content-Type: application/json { "family_id": "family_001", "title": "早晨服药", "description": "服用降压药1片", "schedule_type": "medication", "schedule_time": "2025-11-18 08:00:00", "repeat_type": "daily", "created_by": 1 } ``` #### 更新日程 ``` PUT /api/family/schedules/{schedule_id} Content-Type: application/json { "title": "早晨服药(已更新)", "description": "服用降压药2片" } ``` #### 删除日程 ``` DELETE /api/family/schedules/{schedule_id} ``` ### 老人端 API #### 获取今日日程 ``` GET /api/elderly/schedules/today?family_id=xxx ``` #### 获取即将到来的日程 ``` GET /api/elderly/schedules/upcoming?family_id=xxx&elderly_id=xxx ``` #### 完成提醒 ``` POST /api/elderly/reminders/{reminder_id}/complete ``` #### 忽略提醒 ``` POST /api/elderly/reminders/{reminder_id}/dismiss ``` ### 用户管理 API #### 创建用户 ``` POST /api/users Content-Type: application/json { "user_type": "elderly", "name": "张奶奶", "phone": "13800138000", "family_id": "family_001" } ``` #### 获取家庭成员 ``` GET /api/users/{family_id} ``` ## 数据库结构 ### users 表 - 用户信息(家人和老人) - 通过 `family_id` 关联 ### schedules 表 - 日程/护理计划 - 支持重复类型(once, daily, weekly, monthly) ### reminders 表 - 提醒记录 - 追踪提醒状态(pending, completed, missed, dismissed) ## 日程类型 - `medication` - 用药 - `exercise` - 运动 - `meal` - 饮食 - `checkup` - 检查 - `other` - 其他 ## 重复类型 - `once` - 单次 - `daily` - 每天 - `weekly` - 每周(需指定 repeat_days) - `monthly` - 每月 ## 开发说明 ### 目录结构 ``` server/ ├── app.py # 主应用 ├── requirements.txt # 依赖 ├── .env # 环境配置 ├── kinecho.db # SQLite 数据库(自动生成) └── README.md # 文档 ``` ### 健康检查 ``` GET /api/health ``` 返回服务状态和当前时间。 ## 部署建议 1. 生产环境建议使用 Gunicorn 作为 WSGI 服务器 2. 使用 Nginx 作为反向代理 3. 定期备份 SQLite 数据库 4. 建议升级到 PostgreSQL/MySQL 以支持更大规模应用 ## License MIT