# train-springboot-1 **Repository Path**: alisx/train-springboot-1 ## Basic Information - **Project Name**: train-springboot-1 - **Description**: 学习用springboot创建web项目,这是其中的一个练习 其中包括需求设计以及代码 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-01-09 - **Last Updated**: 2022-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringBoot 练习项目 ———— MyBooks #### 介绍 学习用springboot创建web项目,这是其中的一个练习 其中包括需求设计以及代码 #### 软件架构 + Spring Boot + JPA + Shiro + Spring MVC + Thymeleaf + MySql #### JDK & IDE + JDK 1.8 + IntelliJ IDEA 2018 #### 需求说明 ##### 概要 1. 为了学习SpringBoot,需要练习一个项目 1. 侧重练习后台功能,前台只作为辅助 1. 不太能太过复杂,最好是模仿一个简单系统,或者设计一个很傻的小系统,不能在系统设计上投入太多时间 1. 系统功能实现完成后,如有余力,可以换成RESTful,借用更美观的前端框架 ##### 需求描述 实现要给用户书单系统,用户可以查看编辑自己创建的书单,也可以浏览他人共享的书单 1. 项目需要有登录系统、权限系统、业务系统 2. 登录系统和权限系统用Apache Shiro来做,需要提供登录功能,登出功能,记住密码功能,注册功能,忘记密码功能,和修改密码功能;同时在业务页面中能看到当前登录者的信息 3. 权限系统中,需要有系统管理员,和普通用户,系统管理员可以编辑普通用户,具体是修改状态(启用、停用),重置密码,创建用户 4. 业务系统比较简单,是一个书单管理,具体要求如下 1. 普通用户可以查看自己的书单 1. 普通用户可以创建、编辑和删除自己书单记录 2. 普通用户可以设置书单记录的共享状态 1. 普通用户可以浏览别人共享的数量,但不能编辑 #### 概要设计 ##### 实体设计 1. 用户(user) *字段* + `uid` 主键 + `username` 登录用户名 + `password` 登录密码(MD5加密) + `nickName` 用户昵称 非必填 + `state` 用户状态:禁用 启用 + `passwordSalt` 密码盐 + `email` 电子邮箱 1. 权限(permission) *字段* + `id` 主键 + `state` 权限状态 禁用 启用 + `name` 权限名称 + `parentId` 直接父权限id + `parentIds` 所有父权限id们 + `code` 权限编码 1. 角色(role) *字段* + `id` 主键 + `state` 角色状态 禁用 启用 + `name` 角色名称 + `code` 角色编码 1. 书单(book) *字段* + `id` 主键 + `creatoruid` 创建者 + `createtime` 创建时间 + `name` 书名 + `auther` 作者 + `publicationDate` 出版日期 + `publisher` 出版社 + `isbn` 国际图书编码 + `description` 描述 + `isShare` 是否共享 + `comment` 评论 + `saleUrl` 售卖地址 ##### 页面设计 1. 登录页 *组件* * 登录名 `文本输入框` * 密码 `密码输入框` * 记住密码 `checkbox` * 登录 `按钮` * 忘记密码 `按钮` *功能* * 登录 * 记住密码 * 忘记密码 1. 注册页 *组件* * 登录名 `文本输入框` * 昵称 `文本输入框, 可空` * 电子邮箱 `文本输入框` * 密码 `密码输入框` * 提交 `按钮` *功能* * 校验登录名是否已被用 * 校验密码是否过于简单 * 校验电子邮箱是否被用 * 提交 1. 忘记密码页 `此功能只做演示用,填写登录名和邮箱,如果正确的话会将密码重置为111111,后面如有需要再优化` *组件* * 登录名 `文本输入框` * 邮箱 `文本输入框` * 找回密码 `按钮` *功能* * 找回密码 1. 我的书单列表页 `仅能查看自己创建的书单记录` *组件* * 新增 `按钮` * 书单列表 `列表` * ID * 书名 * 作者 * 出版社 * 出版日期 * ISBN * 购买 `按钮` * 编辑 `按钮` * 删除 `按钮` * 共享 `按钮` *功能* * 新增 `跳转到新增页面` * 编辑 `跳转到编辑页面` * 删除 `弹出确认框,选择是,删除,刷新页面` * 共享 `按钮是共享时,功能为取消共享,将按钮名改为[私密],反之亦然` * 购买 `打开浏览器新tab,显示购买信息` 1. 共享书单 `查看所有状态为共享的书单记录` *组件* * 书单列表 `列表` * ID * 书名 * 作者 * 出版社 * 出版日期 * ISBN * 分享人 * 购买 `按钮` *功能* * 购买 `打开浏览器新tab,显示购买信息` 1. 新建/编辑页 *组件* * 书名 `文本输入框` * 作者 `文本输入框` * 出版社 `文本输入框` * 出版日期 `日期输入框` * ISBN `文本输入框` * 购买URL `文本输入框` * 描述 `文本区域输入框` * 评论 `文本输入框` * 保存 `按钮` * 重置 `按钮` *功能* * 保存 * 重置 `新增时重置为空,编辑时重置为编辑前的值` ##### 业务模块 + user * book #### 使用 用IDEA打开project目录,调试 #### 参考链接 * http://www.ityouknow.com/spring-boot.html