一、背景前言
这是一个课设大作业,码农少闲月,五月人倍忙。在炎炎夏日,吾搬了许多砖,然后快速迭代,简陋的房子搭好,终可乘凉。
该系统前后端分离(C/S),客户端为Android端,使用Android studio开发,采用MVVM模式。使用okhttp与服务器通信,json来序列化和反序列化。用户首次登录成功从服务器端下载该用户所有的单词、例句、统计信息并等保存到本地,只有当发生更新、修改以及用户手动刷新时才同步服务器,而对于查询单词、例句操作,从客户端数据库里查询,从而减少服务器压力、保持数据一致性以及挺高用户体验。
服务器端使用IDEA开发,采用SpringBoot+MyBatis+Oracle框架,设计统一接口供客户端调用,使用session来验证用户
功能说明
- 实现英语单词的录入、修改、删除等基本操作。
- 实现常用英语单词例句的录入、修改、删除等基本操作。
- 实现英语单词检索、翻译等。
- 常用英语单词例句检索。
- 根据难度随机生成一份单词测试题目。
- 能够检索出短文及其翻译对照表。
- 具有数据备份和数据恢复功能。
二、系统结构与运行截图
系统数据流图:
客户端为Android端、服务端采用SpringBoot来构建,提供统一接口操作数据库,并给客户端调用
业务流程图:
MVVM模式:
功能模块:
注册登录模块
该界面为借鉴GitHub上某项目的登录界面【侵删】。包含基本的注册登录功能,以及一些错误处理。
单词模块
列表显示中英单词,可下拉刷新与服务器同步、左右滑动删除,可撤销,亦可点击进去查看详情、编辑或者删除,详情页面包含了单词对应的多个例句。右下角有添加按钮,可添加单词。右上角有搜索栏,可模糊搜索,中英文均可。该模块只有在修改删除添加时候会与服务器进行连接,如果是查询或者启动程序时,会直接从本地数据库读取数据,减少服务器压力。
【单词列表、滑动删除、点击进入编辑】
【添加单词、模糊搜索】
例句模块
UI同单词模块,包含增删改查,当然可通过修改相关适配器来达到想要的效果,这里为了节省时间,复制了单词模块的轮子
单词测试模块
从用户单词表或词库表中根据等级来随机生成测试单词。答对浅绿色,延时1秒后下一题,答错将选项标记为红色,并给出正确答案,然后由用户自己点击下一题。
翻译模块
直接调用有道翻译API,自动检测语言翻译
个人中心模块
包含统计表里的各种数据,可签到,可手动同步数据,退出登录会跳转到登录界面。
三、代码目录结构
服务端:
客户端:
四、总结
具体开发流程我就不详细介绍,该系统是根据我当前能力设计的,可能存在许多问题。
这里仅提供源码给需要的人学习。大佬请绕道。