report-all-diagrams.html 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>数智健调 - 报告图表汇总</title>
  7. <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
  8. <style>
  9. body {
  10. font-family: 'Microsoft YaHei', sans-serif;
  11. max-width: 1400px;
  12. margin: 0 auto;
  13. padding: 20px;
  14. background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  15. min-height: 100vh;
  16. }
  17. .container {
  18. background: white;
  19. border-radius: 16px;
  20. padding: 30px;
  21. box-shadow: 0 20px 60px rgba(0,0,0,0.3);
  22. }
  23. h1 {
  24. color: #333;
  25. text-align: center;
  26. font-size: 2.5em;
  27. margin-bottom: 10px;
  28. }
  29. .subtitle {
  30. text-align: center;
  31. color: #666;
  32. margin-bottom: 30px;
  33. }
  34. h2 {
  35. color: #667eea;
  36. border-bottom: 3px solid #667eea;
  37. padding-bottom: 10px;
  38. margin-top: 40px;
  39. }
  40. .mermaid {
  41. background: #f8f9fa;
  42. padding: 20px;
  43. border-radius: 12px;
  44. margin: 20px 0;
  45. border: 1px solid #e9ecef;
  46. }
  47. .section {
  48. margin: 30px 0;
  49. padding: 20px;
  50. background: #f8f9fa;
  51. border-radius: 12px;
  52. }
  53. .nav-links {
  54. display: flex;
  55. flex-wrap: wrap;
  56. gap: 10px;
  57. justify-content: center;
  58. margin: 20px 0;
  59. }
  60. .nav-links a {
  61. padding: 10px 20px;
  62. background: #667eea;
  63. color: white;
  64. text-decoration: none;
  65. border-radius: 8px;
  66. transition: all 0.3s;
  67. }
  68. .nav-links a:hover {
  69. background: #764ba2;
  70. transform: translateY(-2px);
  71. }
  72. .info-box {
  73. background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  74. color: white;
  75. padding: 20px;
  76. border-radius: 12px;
  77. margin: 20px 0;
  78. }
  79. .info-box h3 { color: white; margin-top: 0; }
  80. table { width: 100%; border-collapse: collapse; margin: 15px 0; }
  81. th, td { border: 1px solid #ddd; padding: 12px; text-align: left; }
  82. th { background: #667eea; color: white; }
  83. tr:nth-child(even) { background: #f8f9fa; }
  84. </style>
  85. </head>
  86. <body>
  87. <div class="container">
  88. <h1>🏥 数智健调</h1>
  89. <p class="subtitle">校园健康管理系统 - 报告图表汇总</p>
  90. <div class="nav-links">
  91. <a href="#architecture">系统架构</a>
  92. <a href="#database">数据库设计</a>
  93. <a href="#business">业务流程</a>
  94. <a href="#deployment">部署架构</a>
  95. <a href="#wbs">项目进度</a>
  96. <a href="#tech">技术栈</a>
  97. </div>
  98. <div class="info-box">
  99. <h3>📌 项目信息</h3>
  100. <p><strong>项目名称:</strong>数智健调 - 校园健康管理系统</p>
  101. <p><strong>开发者:</strong>本人独立完成(前端 + 后端 + 数据库)</p>
  102. <p><strong>技术栈:</strong>Angular 20 + Node.js + Express + TypeORM + MySQL</p>
  103. <p><strong>开发周期:</strong>2024年10月 - 2024年12月(约12周)</p>
  104. </div>
  105. <h2 id="architecture">1. 系统架构图</h2>
  106. <div class="mermaid">
  107. graph TB
  108. subgraph Client["👤 客户端"]
  109. WEB[Web浏览器]
  110. MOBILE[移动端]
  111. end
  112. subgraph Frontend["🎨 前端 - Angular 20"]
  113. APP[App Component]
  114. subgraph Modules["功能模块"]
  115. M1[体重管理]
  116. M2[饮食管理]
  117. M3[运动管理]
  118. M4[健康监测]
  119. M5[校园服务]
  120. M6[用户中心]
  121. end
  122. LOCAL[(LocalStorage)]
  123. end
  124. subgraph Backend["⚙️ 后端 - Node.js"]
  125. EXPRESS[Express Server]
  126. CTRL[Controllers]
  127. SVC[Services]
  128. ORM[TypeORM]
  129. end
  130. subgraph DB["🗄️ 数据库"]
  131. MYSQL[(MySQL 8.0)]
  132. end
  133. WEB & MOBILE --> APP
  134. APP --> Modules
  135. Modules --> LOCAL
  136. Modules -->|REST API| EXPRESS
  137. EXPRESS --> CTRL --> SVC --> ORM --> MYSQL
  138. </div>
  139. <h2 id="database">2. 数据库ER图</h2>
  140. <div class="mermaid">
  141. erDiagram
  142. USERS ||--o{ WEIGHT_RECORDS : has
  143. USERS ||--o| WEIGHT_GOALS : has
  144. USERS ||--o{ TAGS : creates
  145. WEIGHT_RECORDS }o--o{ TAGS : tagged
  146. USERS {
  147. varchar id PK
  148. varchar phone UK
  149. varchar nickname
  150. timestamp created_at
  151. }
  152. WEIGHT_RECORDS {
  153. varchar id PK
  154. varchar user_id FK
  155. date record_date
  156. decimal weight
  157. decimal body_fat
  158. decimal muscle_mass
  159. text notes
  160. }
  161. WEIGHT_GOALS {
  162. varchar id PK
  163. varchar user_id FK
  164. decimal target_weight
  165. date target_date
  166. decimal start_weight
  167. enum status
  168. }
  169. TAGS {
  170. varchar id PK
  171. varchar user_id FK
  172. varchar tag_name
  173. varchar color
  174. }
  175. </div>
  176. <div class="section">
  177. <h3>数据表概览</h3>
  178. <table>
  179. <tr><th>表名</th><th>说明</th><th>主要字段</th></tr>
  180. <tr><td>users</td><td>用户表</td><td>id, phone, nickname</td></tr>
  181. <tr><td>weight_records</td><td>体重记录表</td><td>id, user_id, weight, body_fat, muscle_mass</td></tr>
  182. <tr><td>weight_goals</td><td>体重目标表</td><td>id, user_id, target_weight, target_date</td></tr>
  183. <tr><td>tags</td><td>标签表</td><td>id, user_id, tag_name, color</td></tr>
  184. <tr><td>anomaly_logs</td><td>异常日志表</td><td>id, user_id, anomaly_type, message</td></tr>
  185. </table>
  186. </div>
  187. <h2 id="business">3. 业务流程图</h2>
  188. <div class="mermaid">
  189. flowchart TD
  190. A[🏠 用户打开应用] --> B{已登录?}
  191. B -->|否| C[📱 登录/注册]
  192. B -->|是| D[📊 首页仪表盘]
  193. C --> D
  194. D --> E{选择功能}
  195. E -->|体重| F[⚖️ 体重管理]
  196. E -->|饮食| G[🍽️ 饮食管理]
  197. E -->|运动| H[🏃 运动管理]
  198. E -->|监测| I[📈 健康监测]
  199. E -->|服务| J[🏫 校园服务]
  200. E -->|我的| K[👤 用户中心]
  201. F --> F1[添加记录]
  202. F --> F2[设定目标]
  203. F --> F3[查看图表]
  204. F --> F4[异常提醒]
  205. F1 --> L[(保存数据)]
  206. F2 --> L
  207. L --> M[更新统计]
  208. M --> N[刷新图表]
  209. </div>
  210. <h2 id="deployment">4. 部署架构图</h2>
  211. <div class="mermaid">
  212. graph LR
  213. subgraph User["用户"]
  214. U[👤 浏览器]
  215. end
  216. subgraph Server["服务器"]
  217. N[Nginx]
  218. subgraph App["应用"]
  219. F[前端静态资源]
  220. B[Node.js API]
  221. end
  222. D[(MySQL)]
  223. end
  224. U -->|HTTPS| N
  225. N -->|静态文件| F
  226. N -->|/api/*| B
  227. B --> D
  228. </div>
  229. <h2 id="wbs">5. 项目进度</h2>
  230. <div class="mermaid">
  231. gantt
  232. title 项目开发进度
  233. dateFormat YYYY-MM-DD
  234. section 启动
  235. 需求分析 :done, 2024-10-01, 14d
  236. section 设计
  237. 系统设计 :done, 2024-10-15, 14d
  238. section 开发
  239. 前端开发 :done, 2024-10-29, 28d
  240. 后端开发 :done, 2024-11-05, 21d
  241. section 测试
  242. 测试优化 :done, 2024-11-26, 7d
  243. section 收尾
  244. 文档总结 :done, 2024-12-03, 7d
  245. </div>
  246. <h2 id="tech">6. 技术栈</h2>
  247. <div class="mermaid">
  248. mindmap
  249. root((数智健调))
  250. 前端技术
  251. Angular 20
  252. TypeScript
  253. SCSS
  254. ECharts
  255. RxJS
  256. 后端技术
  257. Node.js 18
  258. Express 4
  259. TypeORM
  260. class-validator
  261. 数据库
  262. MySQL 8.0
  263. 开发工具
  264. VS Code
  265. Git
  266. npm
  267. </div>
  268. <div class="section">
  269. <h3>📊 项目统计</h3>
  270. <table>
  271. <tr><th>指标</th><th>数值</th></tr>
  272. <tr><td>开发周期</td><td>约12周</td></tr>
  273. <tr><td>总工时</td><td>约230小时</td></tr>
  274. <tr><td>前端代码</td><td>5000+ 行</td></tr>
  275. <tr><td>后端代码</td><td>2000+ 行</td></tr>
  276. <tr><td>功能模块</td><td>6个</td></tr>
  277. <tr><td>API接口</td><td>15+个</td></tr>
  278. <tr><td>数据表</td><td>6个</td></tr>
  279. </table>
  280. </div>
  281. <div class="info-box">
  282. <h3>✨ 项目亮点</h3>
  283. <ul>
  284. <li>完整的前后端分离架构</li>
  285. <li>TypeORM实现优雅的数据库操作</li>
  286. <li>ECharts实现丰富的数据可视化</li>
  287. <li>LocalStorage + API双重持久化</li>
  288. <li>响应式设计,移动端优先</li>
  289. <li>异常检测与健康提醒功能</li>
  290. </ul>
  291. </div>
  292. </div>
  293. </body>
  294. </html>