- 用户可以根据自己的英语水平,例如四级,六级,雅思和托福来设置自己的背单词范围
- 每个用户可以设置每天背多少个单词
- 用户背单词的过程中可以天界笔记,也可以查看其他用户的共享笔记
- 用户背单词过程中,可以看到单词,单词的解释和例句
- 每个单词考虑两个近义词
-
词库 Dict 所有单词的例句和近义词是共享的,所以有一个,里面的词是唯一的,并且每个词拥有例句,近义词的属性。每一个单词都有一个唯一的词库ID
-
例句 Example 和词库构成一对多关系,每个单词可能会有0到几个例句
-
近义词 Synonym 和词库构成一对多关系,每个单词可能会有0到几个近义词
-
单词书 WordBook 单词书可以由用户自行创建,并且不同单词书中的单词释义可以不同。
单词书的基本属性为,创建时间,作者,单词书名称,(缩略图),单词表
单词书和单词表构成多对多关系 -
单词表 WordList 每个单词书有一个单词表,表明单词书内的单词
单词书和词库构成多对多关系,中间表为单词表,附加属性为释义 -
笔记 Note 笔记是用户创建的笔记,和单词书,单词以及用户相关联。
笔记的基本属性为, 作者,单词表,笔记内容,是否共享。 -
用户 User 普通用户的基本信息为,用户名,密码,正在学习的单词书,每日学习量
-
学习记录 LearnState 学习记录中包含了用户所有的学习情况。
学习记录的基本信息为 单词表id,用户id,掌握程度,是否完全掌握,是否标记太简单 单词表中所有的单词一开始掌握度均为0,掌握度为5则为完全掌握 学习记录和单词表构成一对多关系,单词表中的一个单词可以对应多条学习记录 -
学习任务表 LearnTask 学习任务表包含每个用户当天要学习的单词,和单词表以及用户相关。
基本属性有单词表ID,用户ID,建立日期,是否完成
当用户准备学习时,先查看学习任务表中是否有以往的学习任务,如果有则清空。然后查看是否有今天的学习任务,如果不存在,则生成今天的学习任务。然后用户根据学习任务的顺序依次学习每一个单词。
生成学习任务的算法如下:
首先确定用户今天新学习多少个单词。如果用户有正在学习的单词书,则取单词书中未学习过的单词数量记为unknown,否则unknown=0,设用户每日学习量为R,取unknown=min(unknown,math.ceil(R*0.15)),然后从未学习的单词表中取一个sample,为要新学习的单词
然后确定用户今天要复习多少个单词,首先得到用户学习过但是未掌握的单词表数量设为review,然后取review=min(R-unknown,review)然后取一个simple即为要复习的单词。
然后将两个sample合并,得到今天的学习任务。
-
登录界面 如果用户未登录,直接跳转到登录界面
登录界面为标准的Djano AuthenticationForm -
注册界面 注册界面为标准的Django UserCreationForm
-
导航栏 未登录界面导航栏只有Logo,右侧为登入和登出
导航栏最左边为Logo,从左至右分别为单词学习, 单词书,我的词库,我的笔记,学习设置,修改密码,登出 -
上传单词书页面 单词书界面,可以查看单词书或者选择自己上传单词书。
上传单词书需要同时上传封面和单词,上传完成之后系统导入单词到词库 -
词库页面 词库页面可以根据URL显示某个用户或者所有用户上传的单词书
-
背单词页面 背单词页面每次只显示tasks列表中最靠前的单词,通过获取页面的方法是post还是get来显示简单界面和详细信息
当方法为get时,显示单词的简略信息页面,简略信息页面包含三个按钮,认识,不认识和太简单,按不同的按钮向页面post不同的信息。
当方法为post时,显示单词的详细信息页面,单词的详细信息页面还可以通过post方法来提交笔记。详细信息页面包含单词释义,例句,近义词,例句最多5句,近义词最多5个。并且显示自己的笔记以及其他用户的共享笔记。页面上面有提交笔记表单,用户可以输入自己的笔记,POST笔记时,把taskid一起post上去,避免因为单词已经完成而没有出现在任务列表中,并且选择是否共享。
通过post处理按钮功能时,要把任务插入到数据库中的新位置,避免顺序和之前一样 -
用户词库页面 显示用户所有的学习记录,已完成单词,太简单单词和正在学习的单词拥有不同的外观
-
修改密码界面 使用Django自带的ChangPasswordForm表单进行密码修改
-
单词查询界面,显示一个单词在有所词库中的出现信息和学习记录。
- 登录 /user/login/
- 登出 /user/logout/
- 注册 /user/register/
- 修改密码 /user/change/password/
- 学习设置 /user/learing/setting/
- 背单词 /user/learning/
- 学习状态 /user/learning/state/
- 忘记单词 /user/learning/state/forgot/(int:id)/
- 用户笔记 /user/notes/
- 修改用户笔记 /user/notes/edit/(ind:id)/
- 创建单词书 /wordbook/new/
- 查看单词书 /wordbook/(int:id)/
- 书库 /wordbook/library/(int:id)/
- 设置为学习&不学习 /wordbook/set/learning/(int:id)/
- 查询单词 /word/?word=(str)