文章目录

  • 简账(开源记账软件)-后端环境简介及部署
  • 前言
  • 一、后端主要技术栈简介
    • 具体涉及的技术如下所示:
    • Q&A
  • 二、环境部署
    • 1. 安装JDK11
    • 2. 从Github上下载压缩包后解压即可
    • 3. 安装docker
    • 4. 使用docker-compose创建容器
    • 4. 运行程序
    • 5. 查看在线文档
  • 三、总结
  • 四、致谢

简账(开源记账软件)-后端环境简介及部署


前言

由于自己有记账的需求,在尝试使用过市面上的记账软件后,发现大多数都有以下几个问题

  • 广告比较多,主要分为信息流广告及金融类广告
  • 页面太痈肿,使用体验不好
  • 部分高级功能需要收费,如数据导出

所以就萌生了自己做一个记账软件的想法,这个想法在2020年5月左右落地的,到目前也快有一年了。
本着OpenSource的想法,已全部开源,也想借写博客的机会获得一些Star❤

测试环境

  • PC端:简账PC端

正式环境:

  • 小程序:微信搜索【简账】
  • PC端:简账PC端

Github开源地址:

  • Java后端:简账后端
  • PC端:简账PC端
  • 小程序:简账uniapp

后续要完成的功能(重要性至上而下)

  • 支持多账本,可自定义维护
  • 支持设置预算(年月预算)
  • 支持多账本间冲销
  • 支持Excel导出(年或月可自定义)
  • 支持多人记账及家庭账本

待解决的Bug

  • 如用户未登录过小程序,小程序扫码授权会提示Token不能为空(提供者:喵了个小咪咪)

写在后面
如果你有其他的想法或问题欢迎给我留言,或在Github上提Pr&Issue
tips:如果你也想你写的东西被人使用,欢迎跟我一起维护简账~

往期链接

  • 简账主要功能介绍

一、后端主要技术栈简介

从大体上来看,整个后端为单体的SpringBoot+Redis+Mysql

具体涉及的技术如下所示:

  • JDK:openJDK 11
  • SpringBoot:2.3.x
  • SpringSecurity:5.3.x
  • MySQL:8.0
  • JJWT:0.7.0
  • mybatisPlus:3.3.x
  • knife4j(在线文档):knife4j
  • redis:5.0.x

Q&A

  1. 为什么使用openJDK11?

openJDK11是开源免费的LTS版本,相较于8有许多新特性

  1. 整个项目为什么要基于SpringBoot?

SpringBoot框架简单易用

  1. 为什么使用SpringSecurity+JWT?

引入SpringSecurity+JWT目的是为了做无状态基于Token的签发和鉴权

  1. 为何要有引入Redis?

为了实现扫码授权登录,进而引入了Redis。因授权需要的uuid是一个有效期内有效的数据,本身不需要存入数据,而存入Redis的话编码相对简单,性能也很好
后续也会将一些用户不经常改变的数据存入Redis

二、环境部署

此处以开发环境采用docker来构建项目为例
tips:如果为正式环境,则安装相应的mysql和redis即可

1. 安装JDK11

  • 去openJDK官网下载11 GA版本即可
  • 配置环境变量

2. 从Github上下载压缩包后解压即可

3. 安装docker

如果为win10,则必须要是支持HyperV的版本
如果你无法安装docker的话,可以直接安装mysql8和redis5,本质上是一样的,只是提供了一个运行环境,跳过3、4两个步骤即可

  • windows10(必须要支持wsl):docker官网
  • linux:相对于windows安装会简单很多,不需要开启虚拟化等…

4. 使用docker-compose创建容器

此处以wsl为例子,linux系统操作逻辑基本一致

  • 进入项目的env文件夹

  • 创建容器

可以看到当前目录下面有一个docker-compose.yml,它主要就是做容器编排的。
定义了容器名、容器挂载目录、配置文件路径等

执行命令(拉取镜像并创建容器):docker-compose up - d

  • 查看容器是否正常运行
    执行 docker ps,查看是否有redis和mysql两个容器在运行

tips:由于mysql容器初始化时指定了sql文件,所以容器一创建数据库也都创建好了,是不是很方便~

4. 运行程序

启动 SpringbootSimpleRecordApplication 启动类即可,控制台输出如下所示:

5. 查看在线文档

浏览器输入:http://localhost:5000/api/doc.html
就可以看到在线文档了

三、总结

后续博客内容:

  1. 环境搭建-前端
  2. 数据库设计
  3. SpringBoot集成SpringSecurity+JWT及动态路由生成
  4. 小程序扫码登陆实现
  5. 记账及月账单实现
  6. 图表分析实现

简账开发者:

  1. SloppyJack
  2. SmallishJoker

四、致谢

在写了第一篇简账的博客后,大概有四十多个用户注册了简账。在此感谢注册了简账的各位,谢谢

简账(开源记账软件)-后端环境简介及部署相关推荐

  1. 简账(开源记账软件)-前端环境简介及部署

    文章目录 简账(开源记账软件)-前端环境简介及部署 前言 一.前端主要技术栈简介 具体涉及的技术如下所示: Q&A 二.环境部署 1. 安装nodejs 2. 从Github上下载代码 3. ...

  2. 简账(开源记账软件)-功能介绍

    文章目录 简账(开源记账软件)-功能介绍 前言 一.主要技术栈简介 二.主要功能 三.项目难点 四.总结 简账(开源记账软件)-功能介绍 前言 由于自己有记账的需求,在尝试使用过市面上的记账软件后,发 ...

  3. 开源资产管理系统java_开源资产管理软件 GLPI 9.3.1 部署

    环境需求 系统:CentOS 7 IP:192.168.11.207 关闭selinux和防火墙 [root@test4-8g ~]# systemctl stop firewalld [root@t ...

  4. 中国记账软件行业现状规模与应用前景预测报告(2022-2027)

    中国记账软件行业现状规模与应用前景预测报告(2022-2027) ****中****智****正****业****研****究*****院****  <报告编号>: BG420179 &l ...

  5. 个人记账软件 共享及有条件开源

    哎,看到这个就感叹我一天天的钱都花哪了,咋就剩不下钱呢. 2015年刚开始,老婆就说要记账,这一天天的不知道钱都花哪去了, 好吧.我就加班加点,通过2个星期终于搞了一套出来,虽不近完善,但基本能用了. ...

  6. python开发erp系统odoo_开源erp软件odoo在线开发环境部署实录

    1.前言 pscloud(odoo)是优秀的开源erp,采用微应用方式向企业客户交付业务应用功能,包含海量的经过全球客户验证的业务应用APP,且odoo基于python的底层框架也非常优秀,特别适合于 ...

  7. 开源erp软件odoo在线开发环境部署实录

    1.前言 pscloud(odoo)是优秀的开源erp,采用微应用方式向企业客户交付业务应用功能,包含海量的经过全球客户验证的业务应用APP,且odoo基于python的底层框架也非常优秀,特别适合于 ...

  8. Soft:软件开发的简介(敏捷开发等6大软件开发模式)、软件测试的简介(单元测试/集成测试/系统测试/验收测试/回归测试、黑白灰功能测试、DEV等四套环境)、运维的简介之详细攻略

    Soft:软件开发的简介(敏捷开发等6大软件开发模式).软件测试的简介(单元测试/集成测试/系统测试/验收测试/回归测试.黑白灰功能测试.DEV等四套环境).运维的简介之详细攻略 目录 1.软件开发( ...

  9. 开源路由软件zebra介绍和和在Linux环境下的安装

    感谢:http://www.cnblogs.com/iTsihang/archive/2012/11/22/2783249.html ================================= ...

  10. PyQt6开发一个“手记”个人记账软件

    前言: 可根据特定需求写PyQt+后端的程序,这个demo框架个人认为无论是初学还是老手,可以当做PyQt的架子使用,笔者在工作中积累了PyQt经验,由这个小项目搭建了一把,很过瘾. 目前开源的PyQ ...

最新文章

  1. Kernel PCI总线框架
  2. 初学 Delphi 嵌入汇编[9] - asm 可以代替 begin
  3. C语言实例第4期:交换数组中最大数和最小数的位置
  4. 海南首例供港造血干细胞志愿者启程赴广东捐献
  5. C# JsonHelper
  6. FPGA内部硬件结构简介
  7. kubernetes视频教程笔记 (7)-安装Harbor私有仓库
  8. 冒险岛手游服务器维护界面,冒险岛手游游戏界面全解 丰富轻松画风
  9. 【Selenium IDE】下载安装Chrome和Firefox插件IDE
  10. UNI-APP前后端实战课《悦读》
  11. 超声波清洗机对人体有辐射,有伤害吗?
  12. Word 宏命令大全
  13. 千寻位置平台使用入门总结
  14. 针对源代码保密源代码安全管理产品选型建议
  15. 计算机连网线怎么联网,电脑直接插网线上网
  16. Linux下的cmt2300a驱动
  17. 《惢客创业日记》2018.11.02(周五) “追梦大叔”的回忆
  18. xutil post 414. onError: errorCode: 414, msg: Request-URI Too Long
  19. Sound Forge2020音频编辑软件直装汉化直装免费版
  20. <Android开发> Android vold - 第二篇 vold 的main()函数简介

热门文章

  1. Lanproxy任意文件读取漏洞复现(CVE-2021-3019)
  2. java写企业员工信息管理系统
  3. API接口文档生成方案调研
  4. shapefile(.shp)空间数据格式详细说明
  5. 用友OA漏洞复现手册
  6. 内网穿透的一种方式——基于ngrok的小米球
  7. c语言中ftell函数是什么
  8. 基于Python的数据分析
  9. python计算器外壳模板
  10. 懒人——支付宝app支付