开发一个投票项目的JAVA服务端-SSM项目

最近接触了idea开发工具,稍微看了下spring boot。本着对spring mvc的一些小经验,开发个投票项目的服务端。时间上大约花了周末两天。乍一看需求感觉是很简单,但是在真正做的时候对业务逻辑的处理上还是一丁点的马虎都不能有,REST接口需要满足健壮性、合理性需求,并且几乎不允许有bug出现(给自己的目标)。

一切不基于需求的后台设计都是耍流氓。先列下需求:

需求设计

整个程序模块:普通用户的登录和注册模块,管理用户的登录模块,用户投票模块,管理员功能模块
普通用户的注册模块:注册的时候有用户名,密码,学校,等。存在的用户名,不能再注册
普通用户的登录模块:用户名,密码登录
管理员用户登录模块:用户名,密码登录,管理员不注册,后台给创一个管理员用户。
用户投票模块:用户登录后,进入一个投票项的列表(可以的话加个查询投票项),然后选择一个投票项,进入下个页面,显示题目
题目都选完之后进入显示结果页面,(可以的话多选)。

基于需求,下面开始进行数据库设计。

数据库设计

数据库设计部分很重要,需要根据实际业务场景,将所需的几个表以及表结构梳理出来。前期肯定会有一些考虑不周的地方,这种情况只能是尽量做到考虑全面,等实际开发过程中会再遇到某些问题的时候再斟酌对数据库进行变更。
当下可以理清楚的几个表如下:

  • user,即用户表。
  • vote, 即投票信息表。
  • vote_options,即投票选项。与vote表关联。
  • vote_user,即投票用户。关联表,关联user-vote-vote_options表。

系统设计

Maven+Spring+Spring boot+mybatis+mysql
项目目录:
开发一个投票项目的JAVA服务端-SSM项目

比较传统的一个小项目 = =!

接口设计

采用Restful风格接口。(虽然有时候会不那么restful,哈哈)
用户相关接口

  • 登录:/user/login
  • 注册:/user/register
  • 用户信息:/user/info

投票相关接口

  • 创建投票:/vote/create
  • 投票列表: /vote/list (还没加分页)
  • 删除投票: /vote/delete
  • 用户投票:/vote/vote
  • 投票详情:/vote/detail

项目开发

开发完成后,已经将项目传到github了。有兴趣可以fork下看看。另外备注下,本人之前是做安卓的,自学并做了几个java后台项目,后台学习到的知识不少,尤其对逻辑严谨性有更深刻认知。只是感慨,后台要学的东西也不少,路还很长,哈哈,“通”这个词精髓了!

项目下载地址