earthworm icon indicating copy to clipboard operation
earthworm copied to clipboard

[功能] - 将课程进度存储至 DB 中(数据库)

Open cuixiaorui opened this issue 1 year ago • 3 comments

Description

很多用户有跨设备的需求

因为每一节课的内容太多了 他们都是分开完成的

比如在公司刷了 100 道题, 还剩下 50 道 想着回家刷 结果这个进度不同步

然后又需要重新刷前 100 道题 就感觉非常的烦 不想继续了

针对于这个场景有两个解决方案

  1. 课程进度保存在 db 中
  2. 前端支持可以选择进度

而这个 issue 先重点实现方案1

cuixiaorui avatar Mar 28 '24 04:03 cuixiaorui

#180 是否和这个删除的逻辑类似 问题: image

  1. 图中说的“计算的逻辑放到后端是更优的选择”, 这个课程完成次数CompletionCount和当前课题进度progress是两个不同的概念,那么现在最新版代码中,存储的逻辑是完成课程时自动完成次数+1,progress进度存储时机是需要页面轮询存储还是用户手动点击上报当前进度。
  2. 放到db中存储,是否可以取消当前localstorage存储的进度。

实现思路:

  1. course-history 中新增 progress字段。
  2. 修改create逻辑, 区分是由 progress 创建还是由 CompletionCount 创建。 progress创建时需要将完成次数设置为0。
  3. 新增初始化进度方法。
  4. 完成页面逻辑修改。

masterjiyuhang avatar Mar 29 '24 09:03 masterjiyuhang

还是有一个保存时机的问题,目前是每次切换题目都会掉接口存储。 增加服务器压力, 是不是可以有更好的缓存方案。

masterjiyuhang avatar Mar 29 '24 10:03 masterjiyuhang

关于课程题目列表切换,也就是第二个解决方案已经实现,参见:#404

所以此 issue 后续主要是讨论如何将课程进度存储到 DB 中,设计 + 寻找更有的解决方案~

fengstats avatar Apr 08 '24 15:04 fengstats

done 新的方案是一个课程包只存一个课程的进度

cuixiaorui avatar Apr 30 '24 13:04 cuixiaorui