借款信息平台设计与实现-微信小程序和对应服务端开发

毕业答辩顺利完成,终于毕业啦。之前占了个坑现在来写一下总结。


毕业设计内容

  • 我的毕业设计内容跟我们公司某个业务差不多,基本上就是公司业务的简化版。题目是借款信息平台设计与实现

正文

目标

本系统从易用性、安全性为出发点,旨在开发一套健全的、可靠的、完善的、安全性高的、符合规范标准的、采用前沿技术方案的借款信息平台。该借款信息平台是准备手中有资金的放款用户,也就是所谓的2B。本系统将要实现的目标方便快捷得让信贷经理获得自己的理想借单,同时也提供信贷经理交流的平台,提高用户的粘性。主要有登录、浏览借单、购买借单、查看借单信息、充值、发帖、回帖等功能。同时也要保证系统的安全性、数据完整性及整个系统能有较良好的维护和扩展能力,特别是微服务化和水平扩展能力等。

架构设计

整体架构设计为客户端请求服务端API,由Nginx进行拦截转发到真实服务地址。服务端运行于阿里云ECS服务器上,通过API与前端进行数据交换,服务端基本包括权限校验、RESTfulAPI、业务逻辑和日志处理等。服务端与缓存数据库Redis和持久化数据库MySQL进行数据交换。前端和服务端共同使用持久化存储阿里云OSS。代码版本控制交给阿里云Code。
服务端整体基于Spring Boot框架构建,目前初期尚无需进行微服务化,等后期如果业务上扩展有需要可以很快得转向微服务架构,引入Eruka做服务的发现和注册、API Gateway做负载均衡和转发等,同时具有很好的水平扩展性。
前后端完全分离,基于RESTful API做到语言无关性,后续可根据业务功能特点接入Python、Go等语言。
技术栈分别为
前端:Vue、小程序。
服务端:Java、Spring Boot、MySQL、Redis、JWT、Tomcat和Spring Security等。
持久化存储:阿里云OSS。
版本控制:阿里云Code。

具体架构图如下:
借款信息平台设计与实现-微信小程序和对应服务端开发


这部分是服务端

一、用例分析

本系统中用户目前只有一种,我们称之为信贷经理。实现订单相关、论坛相关、个人信息相关功能。用例图如下:
借款信息平台设计与实现-微信小程序和对应服务端开发

二、数据库设计

表总共有10张,具体我就不在这里列出来了,我会在文章最后附上GayHub链接。

三、模块详细设计

这里就挑两个模块说一下

1.登录注册模块

为什么要说这个模块呢,因为这个模块涉及到系统中最重要的安全措施-JWT。在登录成功后会生成JWT返回给前端。以后的访问中,除了/open开头的接口都需要在HttpHeader中加入JWT,否则会拒绝接口调用。流程图如下:
借款信息平台设计与实现-微信小程序和对应服务端开发

2.借条模块

这里说下最重要的部分,就是购买借条的部分。因为一个借条理论上只应该被一个用户购买,那么我们必须考虑到并发,所以这里引入redis来避免一个借条被多个用户购买。流程图如下:
借款信息平台设计与实现-微信小程序和对应服务端开发

四、部署

服务是部署在阿里云上的,代码提交到git以后sh两个脚本就能重新部署服务。


前端–小程序部分

其实本来是想用RN写的,但是前端的东西现在懂得还是太少了,RN看得有点头疼,然后发现小程序其实就能很好的满足需求同时开发起来相当简单,就选了小程序作为系统的前端。
小程序的注册什么的就不在这里说了 可以看官方的文档
一开始的时候其实也是一头雾水,后来不断地看网上其他同学分享的demo,慢慢地摸清了门道。
下面说下关键点

  • 小程序的UI有相当多的组件,这里推荐的是微信官方的组件,跟原生的微信界面UI保持一致,简单又美观。

  • 开发的时候对频繁用到的工具类的提炼很重要,例如网络请求等等,都可以归类到util.js中去,用的时候直接调用就行。我们会发现其实每个页面里js代码其实都差的不太多。

  • 体验版在手机上调试的时候一定要记得打开调试模式,不然会连不上我们的测试服务器。

其他也不知道说什么,总而言之还是相当简单的,大部分东西拿来用即可。


最后还是想说下其实这是我第一次完全独立开发前端和服务端以及搭建用到的一系列服务,在公司的时候大部分时间还是单纯的写服务端的代码。在这过程中还是学习到了很多很多。不过要学习的还有很多很多,个人的目标是三年后能有机会进入阿里继续提升自己的技术水平,加油加油!