后端组 WoC 企划
—— SAST
各位同学,大家好……(此处省略几百字寒暄部分)。于是举办 WoC 活动来供大家学习与练手。
要求
背景
在 SAST,大家都很喜欢画饼,甚至有半块白板上面都是饼,现在请你开发一个管理大家在 SAST 画的饼的后端(SAST-Pancake)。
使用 Spring Boot 实现一个简单的管理系统。如果你会使用 Golang,也可以使用其他的 Go 语言的框架。
数据库
实现基本的增删改查功能,能够对SAST的画过的饼进行增加、删除、修改、查询操作。
数据库的建表语句:
1 | -- 用户表 |
功能
接口文档在群文件里面
登录&鉴权
我们平时开发中,登录的要求十分常见,所以我们需要大家实现登录功能,并且具有权限管理功能。
权限管理,就是基于角色访问控制。场景举例:
给张三赋予 “管理员” 角色,“管理员” 具有 “画饼” 和 “删除饼” 的权限。此时张三能够进入系统,则可以进行这些操作;而李四只是普通用户,他只能查看自己的员工信息,不能添加员工和删除员工等等操作。
在数据库表中,role 这个字段我们可以用来识别用户的权限,如 1 是管理员,0 是普通用户。我们在登录的时候判断用户的身份,然后让他们可以执行一些符合他们权限的操作。
权限管理的技术栈的选择,可以使用 Session 配合过滤器拦截器、Spring Security、JWT、Shiro 等等,有精力的同学可以逐个进行研究。这边建议大家先看看 JWT 捏。
可以了解了解权限管理需要的一些知识如 token 等,可以看看下面这个视频了解一下 token、session、cookie:
【Cookie、Session、Token究竟区别在哪?如何进行身份认证,保持用户登录状态?】 https://www.bilibili.com/video/BV1ob4y1Y7Ep
请大家完成后使用 Apifox 或者 postman 测试之后提交到仓库中,我们之后会通知大家交作业。
实现关于饼的接口
主要是关于饼的增删改查
返回格式
在实际开发中,后端返回的数据需要有一个统一的返回格式,例如:
1 | //成功样例 |
请你自行学习如何使用全局异常处理和全局统一返回的使用。
这个嘛随便一搜:
Spring Boot 如何统一后端返回格式?老鸟们都是这样玩的! - 掘金 (juejin.cn)
Spring Boot统一接口返回和全局异常处理 - 掘金 (juejin.cn)
可以参考一下。
选做
直接在数据库里面存储密码并不是一件安全的事情,在将密码存进数据库之前往往会进行密码加密,请你完成用户注册和密码加密相关功能。
学有余力的同学也可以尝试了解下面的一些技术:
- 了解前端三大件:HTML、CSS、JS
- 学习 Linux 基础,可以选择使用 VMware 搭建虚拟机(群里面有绿色版)或购入一台云服务器作为学习机
- 学习使用 Redis,整合进入 Spring Boot 中
- 学习使用 AOP (面向切面编程),可以整合日志功能或者鉴权功能
- 了解使用 Mybatis-Plus 加大开发效率(这个最好是你能写一些 SQL 之后再学吧,尽量熟悉 SQL 语句)
- 了解 docker 并掌握基本使用
活动时间
企划发布日 —— 2023.12.17
2023.12.17 —— 2024.2.25
暂定提交时间为 2024.2.25 ——2024.3.1
审核结果将在收齐后一周内呈现
提交方式
- 将作品上传至 GitHub,并提交 GitHub 链接
- 将作品直接打包
- 暂不接受其他提交方式
- 联系讲师(QQ)
参与方式与审核方式
- 进群即可视为报名参加:
- 前端组群:515507470
- 后端组群:825624516
- 参与本次活动的所有 2023 级新生同学,无论是否已加入校科协,只要完成主要功能,都有机会成为南邮校科协中干。
- 作品提交后需要在开学后进行一次短暂的线下交流,并对作品进行评判。(视情况可能做出变化)
其他注意事项
借鉴已存在的优秀作品,我们也欢迎大家对优秀作品进行“临摹”,但禁止代码片段的抄袭。借鉴与抄袭的分界点由校科协内部标准划定。
如果在活动过程中遇到问题,或对企划有异议,欢迎找讲师提问。