mocha chai mysql_Github MIT开源银行电子支付系统(ReactJS+Nodejs+Mysql)

这是一个采用ReactJS+Redux+Nodejs+Mysql技术栈的开源银行电子支付系统,利用TypeORM与MySQL进行关系模型管理,支持REST API、WebSocket通知和多种货币支付。项目包含Jest、Mocha、Chai的测试用例,提供前端和后端的快速上手指南。
摘要由CSDN通过智能技术生成

简介

开源地址:https://github.com/pietrzakadrian/bank

a441cb58151e1f3499d31641a5ba824c.png

这套开源银行应用程序使用ReactJS + Redux与NodeJS(Express + TypeORM),WebSocket,RESTful API和MySQL的完整堆栈Web应用程序。

网站截图如下:

9afd93ed64a983d29047b1be51fa9cf8.png

功能列表根据react-boilerplate中使用的最佳实践创建的应用程序

通过TypeORM使用MySQL数据库的关系模型

使用REST API支付当前费率支持多种货币

使用react-intl即时更改英语,波兰语和德语

使用WebSocket实现通知 + 支付系统(socket.io)

使用Jest,Mocha,Chai和react-testing-library进行单元和组件测试

前端技术栈JavaScript(ES6 +)

ReactJS与React-Router

Redux.js与Redux-Saga

材质UI框架

风格组件

使用Jest和react-testing-library进行单元和组件测试

后端技术栈TypeScript

NodeJS与Express.js框架

TypeORM

MySQL数据库

具有基本和JWT身份验证的RESTful API

Swagger文档

使用Mocha和Chai进行单元测试

数据库设计如下图

464d6596cdb89d36fcef98dd5997dd21.png

快速上手安装需知yarn v1.17 +

NodeJS v8 +

MySQL v5.6 +下载代码:git clone https://github.com/pietrzakadrian/bank.git对于前端:克隆此存储库并进入frontend目录

更改BASE_URL在/app/utils/api.js您的本地主机服务器

通过运行安装依赖项 yarn

通过运行启动项目 yarn start对于后端:克隆此存储库并进入backend目录

创建2个MySQL数据库。(一个用于测试,另一个用作主数据库)

复制env.example并.env从中创建一个新文件。

在那里设置配置参数(应用程序端口,应用程序主机,数据库主机,端口,用户名,密码等)

通过运行安装依赖项 yarn

通过运行启动项目 yarn start

总结

这套系统可能不太适用,国内的微信支付、支付宝支付、银行卡支付等场景,但是作为一个开源系统,又基于react+redux+nodejs+restful api+ mysql的技术栈,加上前端单元测试,组件测试(jest),api接口测试(mocha)等等现成代码可以参考,可以说是全栈工程师的必备参考项目。

注:此银行管理系统是基于javase的课程设计,不是可视化的,是eclipse控制台的一个使用模式,包含和mysql数据库的交互,项目里面包含文档,数据库,ppt等等。 1、开户 开户时需要储户输入个人信息,包括姓名,开户金额,完成后储户信息被保存到一个储户基本信息文件中,并反馈给储户开户后的账号,初始密码(提示信息尽快修改长度为6位),开户金额,开户日期。同时生成一个操作记录包括账号,操作类型,操作金额,本次操作的具体时间,旧密码,新密码 2、存款 存款时储户提供事先获得的账号及存储的金额(现金),将金额加到账户原有金额中,然后返回本次操作的信息包括存储的金额,账号中现有金额,操作时间。同时生成一个操作记录包括账号,操作类型,操作金额,本次操作的具体时间,旧密码,新密码。 3、取款 取款时储户提供事先获得的账号及要提取的金额(现金),将账号中原有的金额减去要提取的金额,将现金交给储户,然后返回本次操作的信息包括提取的金额,账号中现有的金额,操作时间。同时生成一个操作记录包括账号,操作类型,操作金额,本次操作的具体时间,旧密码,新密码 4、转帐 转帐时储户提供事先获得转出账号,转出账号密码,转入账号,转帐金额,将转出账号中的金额减去转帐金额,转入账号中的金额加上转帐金额,然后返回本次操作的信息包括转帐的金额,转出账号现有的金额,本次操作的时间。同时生成一个操作记录包括账号,操作类型,操作金额,本次操作的具体时间,旧密码,新密码 5、查询 查询时储户提供账号,密码。返回查询信息包括账号,操作类型,操作金额,操作具体时间,旧密码,新密码 6、修改密码 修改密码时储户提供账号及密码,根据提示输入新密码两次(两次输入必须相同),完成后密码修改成功。同时生成一个操作记录包括账号,操作类型,操作金额,本次操作的具体时间,旧密码,新密码 7、销户 销户时储户提供账号及密码,将账号中的金额全部取出,然后将本账号的信息从文件中删除,返回销户成功
开始做本项目时对Struts架构理解的并不是很深刻,导致项目有些模块 互相耦合的比较紧密,不利于以后扩展和改进。 1.SearchGene写的比较乱,程序可读性以及可维护性都不好,下一步拟通过接口编程来实现 查询字符串的自动生成。 2.BusinessDelegate写成了一个Singleton是否合适,每一个客户请求后都会new 一个业务对象 对其服务,是否有更好的解决办法以提高程序的效率。 3.Struts-config文件的Action设计的有些散乱,下一步改进。 4.业务对象和DAO合在一起了,降低了程序的扩展性和可维护性,下一步会把二者分开以降低各层 之间的耦合。 5.Struts1.2.7 的 Validator验证框架 不稳定,只能显示第一个参数,同时执行多个验证时参数的显示顺序也不对,是程序原因还是 配置不正确,再上网查找。 6.本项目大部分错误都用异常的形式来处理,异常虽可以使程序清晰,但也会消耗大量资源,若某些错误如密码错,余额不足等多次 出现则服务器响应速度必定会很慢,下一步将经常发生的错误使用硬代码来处理,减少资源浪费。 7.持久层操作大多依赖存储过程和触发器程序的部署会比较复杂,而且会使持久层和数据库耦合过紧,不利于维护,下一步准备用Hibernate 架构改进持久层,如有条件则还可用Spring框架来规范业务层,和统一整个项目。(学习Hibernate和Spring大约1个月时间)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值