forked from sxdl/health_tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.md.old
110 lines (69 loc) · 4.21 KB
/
README.md.old
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# 健康追踪系统
## 项目结构
```plaintext
- health_tracker
- health_app_tikinter 应用前端包
- health_app_pyQt 应用前端包
- tracker 应用后端包
- local 用户本地数据,子文件夹为用户id,默认不上传,程序会自动生成
main.py 主程序入口
requirements.txt 依赖包列表
README.md 项目说明
```
## 模块介绍
### main.py
主程序入口,用于启动应用,提供命令行参数解析功能。输入`main.py -h`查看帮助。
常用命令:
```bash
# 启动应用
python main.py run -h # 查看帮助
python main.py run -f tkinter # 使用tkinter框架启动
python main.py run -f pyQt # 使用pyQt启动, 默认用户id为0
python main.py run -f pyQt -u 1 # 使用pyQt启动,用户id为1
# 生成用户数据
python main.py stimulator -h # 查看帮助
python main.py stimulator -d a 0 # 生成用户id为0的所有用户数据
python main.py stimulator -d s 0 # 生成用户id为0的步数数据
python main.py stimulator -d a # 默认用户id为0
```
### tracker
这个包里面是应用的后端,包含了应用的所有逻辑。下面目前有这几个文件:
- `__init__.py`:包的初始化文件,用于导入包内的模块
- `user.py`:用户类,前端和后端的交互都是通过用户类来进行的
- `data.py`:数据类,用于存储用户的数据
- `util.py`:工具类,用于存储一些工具函数,包括数据生成函数、数据读取函数、数据写入函数等
### health_app_tkinter
这个包里面是应用的前端,仅供调试使用,正式上线使用pyQt重写,使用tkinter框架实现。
### health_app_pyQt
这个包里面是应用的前端,使用pyQt框架实现。
### local
这个文件夹用于存储用户的本地数据,每个用户的数据都会存储在一个单独的文件夹中,文件夹的名字为用户的id。
## TODO
### 新增随机文件读取功能
先设计一个基类,用于随机文件的基本读写,然后再设计几个继承自基类的子类,子类中实现对不同数据类型的文件读取功能。可以看情况调整类的结构。
至少提供如下功能,使得其他模块可以通过这个类来读取随机文件:
- 读取文件中的指定行
- 查找文件中的匹配行
- 对指定行的数据进行修改
- 对文件中的数据进行追加
- 对文件中的数据进行删除
### 完善pyQt前端
使用pyQt框架重写前端,实现app的所有功能。界面设计复刻手机上的健康app。
### 提供用户每日手动输入数据的功能
因为实际使用中,用户的数据不可能都是通过手环或者其他设备自动采集的,所以需要提供一个手动输入数据的功能,用户可以在app中手动输入数据,然后保存到本地。
就是在app中提供一个手动输入数据的界面,用户可以在这个界面中输入各种数据,然后保存到本地。
先随便使用一个框架快速实现功能,然后再使用pyQt框架完善美化。
注意,不同的用户因为数据类型不同,所以需要提供不同的手动输入界面。
### 添加群组功能
添加群组功能,管理员可以创建群组,管理群活动、发布群公告。可以查看群活动数据(活动详情、个人排名)
普通成员可以加入群组,接受邀请或扫码申请加入群组。
普通成员可以报名参加群活动,查看群活动数据。
### 在健康页面添加趋势卡片
添加趋势卡片,展示各个数据的30天变化趋势,分为(有所下降,无趋势变化,有所上升)
### 周月年报
在我的页面添加周月年报卡片,
运动周报:本周步数情况(目标步数、七日数据、日均步数、较上周、达标天数)、本周运动情况(运动总时长、较上周、每日时长、总消耗卡路里、较上周、日均消耗)
运动月报:本月步数情况、本月运动情况(每日时长->周分布、增加热量分布(跑步、步行、爬高、其他%))
运动年报
### 站内信
实现多客户端的站内信系统,用于群组的消息管理。