寒软项目总结

今天中午进行了浙江工业大学的寒假软件大赛的验收答辩,整个过程给人感觉还是比较草率的,但至少在构建的过程中还是学到了不少东西。本次比赛分成三个题目,前两个是奖励综测分,最后一个是奖励米,但最终我们选择了奖励综测分的德育导师双向选择系统。

下面是我们早c晚a小组完成的成果

后端仓库地址
前端仓库地址

在本项目中我和浅浅&勿念两个人负责该项目后端,他主要负责学生端和教师端的接口完成,我这边也主要写了用户端、管理端和系统的一些自动操作。

项目的一些亮点(难点)

  • 上传的头像图片有将其格式转换成jpg形式,以减小其图片内存,避免之前试用期上传头像上传半天的尴尬,当时改了我半天码,都一直没成功

  • 将xls文件导入进数据库中,这个其实也不是特别难,主要是学校给的数据(姓名、部门、办公室、电话、邮件地址)不够齐全,导致有两个老师连邮件地址都没有,导致系统读取到这个数据时就以为没有五列数据,然后就超出范围报错。

  • 这个系统要实现第一轮选择时间截止要让那些未被选择的学生分配教师,同时教师的学生个数最多6人,且第一轮选择时间是有会被再次更改的,一开始想用go自带的库来解决,发现不太行,然后发现有cron的定时库可以使用,但我一开始的想法是每次重新调节第一轮时间的时候来重新设定定时任务,结果没成功,后面改成了每次系统主进程异步每五分钟定时查询数据库的第一轮时间有没有发生改变,如果发送变化再重新设定时间,但感觉这样会不够准时,但这也是没有办法的办法了。后面青鸟学长说可以试试timing的库,然后也有个人好像和我说可以试试信息队列(?忘了,不知道是不是这个了)。

    项目可以改进的地方

  • 首先项目有个聊天室,我这里是采用轮询的形式进行较为实时的聊天对话,但事实上可以去尝试一下websocket的方式,这是真·实时对话的正确选择,这学期一定得去实现出来。

  • 在这次答辩中,我想给那个老师展示一下我们数据库是有对敏感数据进行加密的,结果那个老师指出我的数据库对所有用户的加密方式是相同无差别,而且他们默认数据因为是一样,所以加密的密文也相同,就是可以通过某个人的信息,从而知道其他人的信息(但是怎么说呢,你得先知道某个人的信息,然后又知道我数据库里其他用户密文和他的密文相同,基本这种情况的出现就是我数据库被黑了),当然,处理这样的方法也有,就是还有个加密方法————加盐加密(bcrypt),我记得我试用期好像是这个方法,这样就可以实现相同文字形成不同的密文。

  • 那个老师还提到了每个用户初次登录要去强制设置一个让用户修改密码。(虽然感觉必要性不大,一般都会去改一下密码)

感悟和收获

  • 因为一开始的没写数据加密,导致写完加密的方法上云后出现报错,导致我两三个小时都在debug,没研究出为什么,主要也是都是不知道为什么在阿里云那里看到数据库是全空的,反正清空了数据库就成了,让ximo含泪收下20.
  • 还有跨域问题,之前试用期和hv是相同方法配置的,结果在这里却失败了,最后东试西试,在ximo的建议下,重新设置了cors的配置就成功了,但在这之前还搜到了nginx可以设置跨域,但在基本了解nginx后,发现运维还是实现不了跨域处理的,要处理还是得在后端方面。
  • 也小小当了一把产品(资本家),稍微提了点可以完善的bug。



总而言之,这一次还是组队寒软还是很愉快的!!!


寒软项目总结
http://blog.phlin.top/2024/03/05/hr_summary/
作者
phlin
发布于
2024年3月5日
许可协议