Day 1. [后台] 数据库修改以及API丰富
(a) history数据库记录每个单词的记忆日期和表现
为统计背词的成效,记录每个单词每次记忆的DateTime和Proficiency,单独成表 COURSE_history_table(word_id, mem_time, mem_prof)
(b) 根据单词熟练度查询单词的函数
Day 2. [后台][tag] 修改tag数据表
(a) 新的tag数据库中,每门课程包括2个表格:
COURSE_tag_list_table(tag_id, tag_value, deletable)
COURSE_word_tags_table(word_id, tag_id)
(b) deletable反映在界面上就是删除的时候检查是否deletable
Day 3. [后台] 添加关于单词熟练度的接口
(a) 由于目前几个模块都可能会修改单词的熟练度(长期记忆(旧算法),即时记忆,测验),为便于管理,用Strategy模式设计一个接口IWordProficiencyScorer,主要包括方法:
void UserResponse(WordWrapper word, int response, DateTime responseTime);
移植已有的熟练度修改函数作为样例
Day 4. [后台] 处理任意数据文件异常时的情况
(a) book xml格式不对
(b) book xml中的word缺少关键项目(spell,meaning)
(c) course xml发生类似(a)的情况
(d) course xml发生类似(b)的情况
(e) tag数据库不存在
(f) tag数据库中不包含某个课程的table或table格式有错
(g) history数据库不存在
(h) history数据库中不包含某个课程的table或table格式有错
Day 5. [词库] 添加几个按钮
(a) 对bankview左边列表中的单词进行“记忆”,用新Algo(张晨提供)进行记忆。
(b) 对bankview左边列表中的单词新建课程
(c) 对bankview左边列表中的单词进行“测验”
Day 6. [后台] 添加WordList类
为[浏览]功能建立一个WordList类,它包含一个List<WordWrapper>,暴露的函数主要有ListProficiency,ListSize,以及条件查询低于某个熟练度的单词
Day 7. [新建][浏览] list的自定义
在新建课程界面设定每个list的大小/分成的list数量
分好的list按照标签形式(list_N)存到数据库中,设为不可删除的标签。浏览的时候内存里面存的是WordList
Day 8. [浏览] 浏览list的准备界面
背景为该list的单词(混排风格,这个技术需要上网学习一下),中间一个大button“开始浏览单词”,button下面说明有多少单词
中下部可以选择看哪个list
Day 9. [浏览] 浏览list的主界面
翻用WordView来看单词,和MemView的区别是默认都把解释打开,实现按钮“上一个单词”、“下一个单词”
添加功能“复习最近浏览”,“复习整个list”——用“即时记忆”算法
添加功能“整个list测验”,“最近浏览测验”——把单词列表传到测验模块
Day 10. [整合] 协助安装包、发布事宜
根据alpha经验,最后可能需要协助大家完成收尾工作