投票项目启动必读
2023/10/1大约 2 分钟
需求大纲
源码地址:https://github.com/saurfang587/xxvote
视频地址:https://space.bilibili.com/3493125102241833/channel/collectiondetail?sid=2310915&ctype=0
需求描述
- 用户只有在登录后,才可以生成投票表单。
- 投票项可以单选,可以多选。
- 其它用户投票后显示当前投票结果(但是不能刷票)。
- 投票有相应的时间,页面上需要出现倒计时,超时后不能投票。
- 投票结果要显示百分比和人数。
技术要求
- 后端使用Go,Gin,Gorm来提供完整的接口。只提供一个最基础的页面,其他的以接口的形式提供。
- 设计完整的数据结构和存储方式。
- 思考如何与前端进行交流,如何设计一个便于阅读,便于测试的接口。
- 如果可以的话,把页面做的好看点。
- 前端用到Html Css Js JQuery等。
进阶
- 增加一个新用户注册的功能。
- 如何不刷新页面,就能直接看到投票结果的变化。(前端)
- 用户登录能否增加一个验证码功能。
- 能否接入微信,通过微信授权获取用户信息,防止刷票。
- 能否增加一个用户可以发起投票的功能。如何新增一个多选项的投票。
- 能否将用户登录与注册模块抽象为一个独立的功能包。
学习目标
语言:gin gorm go 1.20
数据库:MySQL
缓存:Redis
这个项目,我们不会做的特别深入。
- 登录,2种登录方式
- 缓存,我们学一个最简单 缓存一致性。
- 学一些基础的知识点。
- 作为一个程序员:code,产品,运维,测试,架构。