🛠技术栈
-
前端 仓库
🎉功能
-
✅ 登录、注册、权限拦截功能(JWT)
-
⬜微信登录(仅PC端)
-
✅ Github登录(OAuth)
-
✅ 任务/习惯增、删、改、查(gorm)(未分页)
-
✅ 任务/习惯完成情况图表分析(ECharts)
-
✅ 提醒功能(Web Workers)
-
✅ 离线访问能力(service worker)
-
✅ 在线消息推送(Websockets)
-
✅ 离线消息推送(WebPush)(仅PC端)
🤔FAQ
项目初衷
整合自己的技术栈 + 练习
前端实现提醒功能
在前端使用worker实现此可能并不合适(线程间通信的消耗没准会更大,而且在主线程内实现起来更简单)。此举只是为了练习worker API,尝试JavaScript的"多线程"能力
关于Service Worker推送
由于Golang没有实现Web Push相关的包,npm上有JavaScript版本的,因此使用Koa2简单搭建一个推送服务
🙃缺陷与不足
- a lot bugs
- 移动端不能接收到离线推送(pushManager在移动端subscribe时会报错,chrome、edge一样会中招)
- Golang不太熟练导致后端代码有不少潜在问题
- service worker 配置
💪未来计划
- 加入更多图表分析
- 优化CRUD方面
- 优化service worker
- 完成React版本
- 完成微信小程序版本
- ……