Skip to content

Latest commit

 

History

History
278 lines (197 loc) · 8.68 KB

Project_Log.md

File metadata and controls

278 lines (197 loc) · 8.68 KB

本文档用于记录项目开发过程中遇到的问题和最终的解决方案 在书写这个文档的时候应该遵循以下格式:

日期——直接用输入法输入“日期”即可获得对应格式,如:2024 年 5 月 1 日 [产生问题/汇报进度的模块] 例如:毫米波心率测量模块;数据库接口模块 [遇到的问题描述/开发进度展示] 汇报人

此文档最终将用于撰写课程设计的报告,建议用于撰写报告的相关内容在记录开发 Log 的时候按照最终报告的格式进行书写,附上对应的展示图片并做好标题命名,所有图片存储在文件夹 fig 中

SmartLearn

项目进度汇报

Max

2024 年 5 月 5 日 15 点 18 分 完成小程序最初加载的页面

loading

页面路径:software_test\mini_program_test\pages\login\init_loading.vue

15 点 58 分 完成在学习板块的背景渐变设计,详见 software_test\mini_program_test\App.vue 中的 globalStyle 内容

等待蓝牙连接页面完成半成品 页面路径:software_test\mini_program_test\pages\learn\wait4bt.vue

2024 年 5 月 6 日 01 点 14 分 完成 API 对话功能 python 的 demo 演示,初步决定智学对话学习助手的交互形式

2024 年 5 月 7 日 18 点 30 分 完成了前端登录页面简单的跳转逻辑实现

22 点 18 分 完成了数据库用户最基本信息的设计

2024 年 5 月 10 日 17 点 57 分 数据库 API 接口调试基本完成

2024 年 5 月 14 日 17 点 56 分 完成用户注册登录系统的后端开发

2024年5月15日 17点29分 开发AI聊天页面样式

2024年5月18日 完成基本AI聊天页面,剩下细节需要调整

2024年5月19日 15点06分 完成了项目创建的上云和搜索框实现

17点55分 完成了页面高度调整,亟待完成easyinput组件的样式调试

Jas

2024 年 5 月 5 日前已完成

  • 本地毫米波数据处理,
  • 学会租云服务器进行 yolo 模型训练、本地摄像头验证功能
  • Dlib 功能实现、本地摄像头验证功能

2024 年 5 月 9 日完成

  • 毫米波模块静息态、stroop 范式测试

2024 年 5 月 18 日完成

  • yolo模型的云端加载
  • Dlib模型的云端加载
  • yolo,Dlib模型http协议测试(jupyter notebook和云服务器通信)

Ljh

Zy

  1. 使用 STM32 已实现将串口接收数据进行串口发送功能,功能操作方式(可通过按键控制开始收发等)有待进一步优化,串口接收毫米波输出数据,串口通过蓝牙发送数据,蓝牙还未调试
  2. 在微信开发平台已经搭建蓝牙接收调试程序,正在进行调试,调试完毕后将开始学习并进行进行 uni—app 的搭建,微信开发者平台的蓝牙框架适用于 uni-app 只需移植

3.完成 uni-app 蓝牙页面的开发,蓝牙连接和学习开始的 button 功能待合并

4.完成了 tabBar 的设计,在 tabBar 设计时遇到问题:图片的链接需要使用本地的而非网络 url 格式链接,由 codefun 设计的静态 ui 图片链接均为网络 url、链接,我初步只更改了 tabBar 的几个图片的本地连接,后续有需要再更改其它

5.完成了 user 页面的逻辑跳转和组件功能,有待和数据库进行 api 调用数据交互

开发遇到的问题&解决方案

前端开发

2024 年 5 月 7 日 出问题的静态页面总结:

  • 页面“书架”的滚动和 tabBar
  • 页面“学完”的图标
  • 蓝牙连接 Ready 后的问号位置对齐
  • 复习的“历史”界面头顶消失

致命问题: 在 codefun 的 view 容器中有 header 标记的都无法编译出来

解决方案 问题原因:Header 标识的容器组件错误,导致误删了状态栏以外的元素 解决方案:

  1. 在 codefun 平台上更改 header 标识的容器组件
  2. 在 figma 上修改对应属性

2024 年 5 月 10 日 发现 codefun 平台上面存储的静态素材的 url 会更新 解决方案

  • unicloud 平台上云存储静态素材
  • 用腾讯云或阿里云等云平台自己搭建云图床

优先尝试第一种解决方案

2024年5月17日 开发问题汇总

  • 通过v-if, v-for, scroll-view等方法与组件解决聊天框对话的渲染
  • 解决发送后自动滚动到底部的问题,关键在于属性scroll-into-view的使用
  • 解决了下拉框的样式问题:1)必须确认css样式命名;2)可以通过>>>改动组件深层的样式

tips:

  • 需要熟练掌握开发者工具用于调试
  • 深刻理解flex布局,不会就查官方文档或官方教程

2024年5月18日 通过透明度调整解决了信息框与输入框显示的问题

2024年5月20日 03点31分 发现view框无法对齐 解决方案 找到self-stretch方法解决

03点49分 关于没办法view框没办法置底的问题 解决方案 直接暴力把整个view移除到page那个view以外,根本上解决问题 并且通过粗暴调整如下样式

.section_12 {
	position: absolute;
	bottom: 0; 
	
	padding: 39.52rpx 30rpx 39.52rpx 30rpx;
	background-color: #ffffff;
	border-radius: 25rpx;
	box-shadow: 0rpx -4.17rpx 8.33rpx #00000040;	
	/* margin-left: 40rpx; */
	/* margin-right: 40rpx; */
}

后端开发

2024 年 5 月 9 日毫米波问题总结

  • 在测试静息态和压力态(心算范式)时的 HRV 值差别不大,难以区分
  • 串口数据和实际心率图相差较大,导致 RR 间隔抖动大,基于此计算出来的 HRV 值误差也非常大

解决方案 仅实现功能,忽略精度。

2024 年 5 月 10 日 数据库表结构开发有点异常 解决方案 补充基础知识,详细了解工作原理

2024 年 5 月 14 日 02 点 23 分 实现用户注册密码加密存储的时候始终存储不上,为空字符

解决方案 经过排查发现是 this.hashPassword 变量收不到值,最终排查出错误之后结合 GPT 问答发现是异步调用问题

注意:

  • 异步调用要么在 Promise 对象返回后.then()里面调用后面的代码
  • 要么就 async 对应的代码之后老老实实 await

16 点 11 分 校验邮箱唯一性的时候出现问题,始终无法正常搜索数据库,代码如下:

// 用于检测是否字段是否在数据库中唯一
"use strict";
const db = uniCloud.database();
exports.main = async (event, context) => {
  let { key, value } = event;

  return await db
    .collection("SmartLearn_user")
    .where({
      key: value,
    })
    .get();
};

解决方案: 不能再对象{}内字面使用key:value,这样会key被视为字符串字面量而不是变量,此时实际上在查询"key"而不是key变量的值

修改后代码:

// 用于检测是否字段是否在数据库中唯一
"use strict";
const db = uniCloud.database();
exports.main = async (event, context) => {
  let { key, value } = event;
  let key_value = {};
  key_value[key] = value; // 直接写key:value

  return await db.collection("SmartLearn_user").where(key_value).get();
};

2024年5月31日

14点07分 本地的云函数相关依赖上云出现问题,使用本地调试能够跑通,但是使用云函数就不行了 02点53分

  • 密码验证的,通过把node_modules放在云函数文件夹里并且调整好package.json的依赖直接解决
  • 调用KimiAPI的一顿调试并问GPT和kimi都指向云函数支持的node.js的版本问题,最终在饭后找到对应的CSDN文章发现可以在package.json中规定所支持的Node.js的版本,注意好及时部署后问题迎刃而解

2024年6月3日 02点48分 出现回旋镖,发现知识地图和问题生成都有问题 解决方案:

  • 使用npm管理相关的包,不要随便乱复制!

前端 UI 修改需求

(未打勾表示未实现)

  • 登录页面添加微信登录页面入口

  • 微信一键登录页面

  • 邮箱登录输入密码的文本输入框加一个小眼睛(显示密码的)(主要是需要这个图标)

  • 5 月 7 日提出的若干问题

  • 注册成功的地方添加一个绑定微信的按钮,引入绑定微信的页面

  • 绑定微信的页面

  • 绑定微信成功页面(跟注册成功相似但做一丢丢区分)

  • 添加一个能够让用户更改用户名的地方(新页面 or 图标),后端默认用邮箱注册,用户名随机生成

  • 考虑在用户注册的部分添加邮箱验证功能(多一个输入框填写验证码)

协同开发沟通

用于对协同开发过程中的留言,每次开发前都应该查看!!避免重复开发

给 Max 的留言

给 Jas 的留言

给 zy 的留言

2024 年 5 月 7 日 18 点 32 分 我已经完成了登录页面 👇 的跳转逻辑了,不需要重复开发 alt text

给 ljh 的留言