考研为了背单词,我手写了一个背单词小 app

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 考研为了背单词,我手写了一个背单词小 app

1. 背景

2022年考研的考研狗,寒假一个人孤苦伶仃背单词,想检查却无人提问,于是萌生了手写一个提问单词的小应用。

最初只是想做一个web端的网页,用浏览器来使用,但总感觉差点意思,就封装了一下,封装成了apk形式,最终可以在手机上有模有样展示,如下图:

目前只是实现了展示单词,每次进入app, 就会随机出现一个单词(单词在数据库中), 点击认识,就会切换到下一个随机的单词, 点击提示, 机会出现单词的词根等帮助自己记忆的提示,点击翻译则是该单词对应的中文翻译。


2. 技术实现

该应用是基于springboot + vue 的前后分离项目


1. 数据库

数据库选型使用的 MongoDB 数据库,主要是单词这种东西存的都是文本,考虑到MongoDB 这种 NoSQL 对文本的处理速度很快,于是选用了它。


2. 后端

后端采用 SpringBoot + SpringDataMongoDB ,利用 其中的 MongoRepository 和 MongoTemplate 实现MongoDB 的增删改查


3. 前端

前端采用 Vue-CLI + Vant , 这里的 Vant 是一个配合vue使用的前端 手机,小程序UI, 类似于电脑端的 ElementUI


4. app 打包

springboot 的后端是jar包形式部署到服务器上的


前端最初打算用 node 的 cordova 来把 vue 打包成 app应用,但是在添加平台的时候总是报错,百度说是npm 版本问题,但是升级了也没解决, 贴出报错如下:

后来采用了HBuilder X 的 apk 打包功能,期间也遇到一些bug, 后来找一个前端小伙伴帮忙找的bug, 原来是 如果 vue-cli 项目中有路由,则如果使用懒加载形式添加的路由,就会与Hbuilder X 的打包冲突,导致报错


后来直接在头部 import 组件常规方式导入就打包好了。

3. 代码仓库

该项目的代码放置在gitee 仓库中

后端连接: https://gitee.com/fsxl/word

前端连接: https://gitee.com/fsxl/word-vue


app下载地址(也在gitee) :https://gitee.com/fsxl/word-vue/releases


目前只是实现背单词,其他的选项没做出来,其中还有一点 布局上的优化需要做,如果单词的提示过多,下边的卡片视图就会超出范围,如下:

考研在即,就先这样,后期如果有时间,再去慢慢完善,如果有好的想法欢迎讨论。


4. 版本更新 2020-02-17,新增单词范围功能

背单词时,由于词汇量大,泛泛的背也是没有效果的,所以app右上角新增选范围功能,默认范围是ALL, 可以选择 26个英文字母之间任何一个,表示以这个字母开头的所有单词,后边所有单词就都是这个字母开头的。效果如下

本次版本更新新增了redis的技术支持,利用缓存技术,将各种单词缓存起来提高查询效率。不过本人对redis的实战应用规范还不太明朗,本人是服务器启动时先从MongoDB加载所有单词,这是一个 List列表,然后遍历列表,把每个单词存到redis的set集合中,然后从set集合随机抽取。


本来我是直接把 List<WordEntity>这个大列表利用 k,v 形式存到redis, 但是效率太慢,就换成了redis 的集合存储。如有更好的办法欢迎交流。代码如下:


另外 使用 springboot 2.x 集成 SpringDataRedis ,在刚开始连上Redis服务的时候很正常,只要过一段时间不动它,他就会自动断开。网上说是 Lettuce 的一个bug 还是咋地,最后换成了 jedis 操作。


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
存储 前端开发 Java
基于java考研线上自习室 App 的设计与实现附完整代码
基于java考研线上自习室 App 的设计与实现附完整代码
464 0
基于java考研线上自习室 App 的设计与实现附完整代码
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
642 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
727 1
|
3天前
|
移动开发 小程序 PHP
校园圈子论坛系统采取的PHP语音和uni账号开发的小程序APP公众号H5是否只需要4800元?是的,就是只需要4800元
关于校园圈子论坛系统采用PHP语言和uni-app开发的小程序、APP、公众号和H5是否仅需4800元这个问题,实际上很难给出一个确定的答案。这个价格可能受到多种因素的影响
|
20天前
|
人工智能 小程序 搜索推荐
uni app下开发AI运动小程序解决方案
本文介绍了在小程序中实现AI运动识别的解决方案。该方案依托于UNI平台,通过高效便捷的插件形式,实现包括相机抽帧控制、人体识别、姿态识别等在内的多项功能,无需依赖后台服务器,大幅提高识别效率和用户体验。方案内置多种运动模式,支持自定义扩展,适用于AI健身、云上赛事、AI体测等多场景,适合新开发和存量改造项目。
|
26天前
|
设计模式 Swift iOS开发
探索iOS开发:从基础到高级,打造你的第一款App
【10月更文挑战第40天】在这个数字时代,掌握移动应用开发已成为许多技术爱好者的梦想。本文将带你走进iOS开发的世界,从最基础的概念出发,逐步深入到高级功能实现,最终指导你完成自己的第一款App。无论你是编程新手还是有志于扩展技能的开发者,这篇文章都将为你提供一条清晰的学习路径。让我们一起开始这段旅程吧!
|
1月前
|
小程序 数据挖掘 UED
开发1个上门家政小程序APP系统,都有哪些功能?
在快节奏的现代生活中,家政服务已成为许多家庭的必需品。针对传统家政服务存在的问题,如服务质量不稳定、价格不透明等,我们历时两年开发了一套全新的上门家政系统。该系统通过完善信用体系、提供奖励机制、优化复购体验、多渠道推广和多样化盈利模式,解决了私单、复购、推广和盈利四大痛点,全面提升了服务质量和用户体验,旨在成为家政行业的领导者。
|
2月前
|
JavaScript 前端开发 小程序
uniapp一个人开发APP关键步骤和考虑因素
uniapp一个人开发APP关键步骤和考虑因素
138 1
uniapp一个人开发APP关键步骤和考虑因素
|
2月前
|
JavaScript 前端开发 UED
Vue与uni-app开发中通过@font-face巧妙引入自定义字体
Vue与uni-app开发中通过@font-face巧妙引入自定义字体
122 9
|
2月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
229 1