# workspace-cloud **Repository Path**: evildog/workspace-cloud ## Basic Information - **Project Name**: workspace-cloud - **Description**: 基于Spring Cloud Hoxton 搭建的个人工作站,包含生活相册、日记、微习惯、笔记、理财、TODO等,个人日常生活工作中的小功能实现。(Spring Cloud Alibaba/Vue/RBAC3) - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/evildog/workspace-cloud - **GVP Project**: No ## Statistics - **Stars**: 37 - **Forks**: 4 - **Created**: 2020-06-27 - **Last Updated**: 2025-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # workspace-cloud ## 介绍 **workspace-cloud**基于Spring Cloud Hoxton 搭建的个人工作站,包含生活相册、日记、微习惯、笔记、理财、TODO等,个人日常生活工作中的小功能实现。 并且在RBAC3模型的基础上,实现按钮级别的权限管理。 Mention:使用当前比较流行的技术实现一个自己的工作站,积极拥抱Spring Cloud Alibaba。虽然这体量根本用不到微服务,但,这不喜欢折腾技术吗(~ ̄▽ ̄)~ ## 地址 后端项目: https://gitee.com/evildog/workspace-cloud 前端项目: https://gitee.com/evildog/workspace_web #### 演示地址 暂无演示地址(自己服务器配置较低,就不提供啦!) ## Wiki 更多文档看参考 [Wiki](https://gitee.com/evildog/workspace-cloud/wikis) ## 本地如何使用 ### 启动Nacos 1. 下载Nacos安装包 https://github.com/alibaba/nacos/releases/tag/1.3.2 (根据需要修改项目配置文件中的nacos server-addr) 2. 运行bin/start.bat(start.sh) ### 执行sql 项目基于微服务,我的设计初衷是一个服务一个数据库,所以数据库很多。当然也可以选择单库,项目中暂时未采用。 1. 进入docs/sql,执行所有sql ### 启动服务 1. idea打开项目**workspace-cloud** 2. 启动项目 1. 必须启动:AuthApplication(授权)、GatewayApplication(网关)、SystemApplication(系统模块) 2. 按需启动:FileApplication(文件服务)、MonitorApplication(监控)、InvestApplication(理财)、LifeApplication(生活)、LogApplication(日志) 3. 进入[workspace_web](https://gitee.com/evildog/workspace_web),按照README文档启动项目 ## 特色 1. 前后端完全分离,前端采用Vue.js+Element编写 2. 后端采用Spring Cloud Hoxton,并积极使用Alibaba系组件 3. 借鉴SpringBlade,采用JWT做Token认证 4. 实现接口(URI/按钮)级别的权限控制,将URL权限控制统一交于Gateway管理,而没有集成重量级的Spring Security(一种取舍) 5. 封装开发过程中的公共依赖(Cache/Mybatis/Security...),子项目依赖即用 6. 在Mybatis Plus的基础上,封装分页查询中的条件查询,通过QueryCondition、QueryTableLogic等注解,简化mapper.xml中关于重复条件判断代码。(具体实现参考[QueryCondition](https://gitee.com/evildog/workspace-cloud/wikis/QueryCondition?sort_id=2713994)) 7. 分层思想、项目错误码按照阿里巴巴开发手册设计 ## 主要功能 1. 相册:上传自己的相册及视频 2. 日记:写点日记,对生活会有意想不到的效果 3. 微习惯:记录自己的微习惯,想法来自《微习惯》一书 4. 笔记:记录自己的技术笔记 5. TODO:记录当前自己手上的简要任务清单 6. 理财:记账,并生成图表,展示每月、每年的财务情况。对于财务自由,记账是很重要的一点. 7. 日志:记录访问日志、异常日志(ES暂时不考虑) 8. 权限:RBAC3权限控制 #### 开发中功能 1. 文件上传:文件模块尚未对接MinIO,阿里云OSS,七牛云等存储。 2. 笔记:笔记暂未使用Markdown编辑器,抽个时间给加了。 3. 提醒:生日提醒、纪念日提醒,提醒打算用钉钉机器人(免费嘛) 4. 天气:对接和风天气API,每日发送天气数据到钉钉 5. 推送系统:多种推送渠道(websocket/钉钉),支持消息队列 6. 重构代码生成器,当前代码生成器比较乱,直接生成所有代码,有些情况下不需要的bean也生成了。 7. Spring Cloud Sentinel:个人项目,不是特别需要把限流放上去。后期可添加 8. 文件管理:管理所有上传的文件。 ## 示例图 ![](http://evildog.gitee.io/pictures/workspace/screenshot/monitor.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/dashborad.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/user.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/user.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/user.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/APi.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/日志.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/字典.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/相簿呀.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/相簿.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/愿望清单.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/微习惯.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/日记list.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/日记.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/笔记.png) ![](http://evildog.gitee.io/pictures/workspace/screenshot/账单.png) ## 项目结构 - workspace-application -- 暴露的API - invest-application -- 投资服务 - life-application -- 生活服务 - system-application -- 系统服务 - log-application -- 日志服务 - workspace-application-api -- application对应的api - workspace-dependencies -- 公共依赖 - workspace-common -- 公共依赖 - workspace-cache-dependencies -- 缓存依赖(Redis) - workspace-cloud-dependencies -- Spring Cloud依赖 - workspace-mybatis-dependencies -- Mybatis依赖 - workspace-security-jwt-dependencies -- Jwt认证相关依赖工具 - workspace-swagger-dependencies -- swagger依赖 - workspace-web-dependencies -- spring web依赖 - workspace-platform 平台相关 - workspace-auth -- 认证相关接口 - workspace-file -- 文件管理模块 - workspace-gateway -- 网关 - workspace-generator -- 代码生成器 - workspace-monitor -- 监控中心 ## 技术选型 ##### 后端技术 | 框架 | 说明 | | ---------------------- | :--------- | | Spring Boot | 容器+MVC框架 | | Mybatis + Mybatis Plus | ORM框架 | | Spring Cloud | 微服务框架 | | Nacos | 注册中心+配置中心 | | caffeine | 高效本地缓存 | | Swagger2(knife4j) | API文档工具 | | hutool + guava | 工具类 | | jwt | JWT工具类 | | forest | 第三方API调用工具 | | MapStruct | 对象映射工具 | | Lombok | 简化对象封装工具 | ##### Spring Cloud 1. Gateway - 网关 2. Nacos - 注册中心+配置中心 3. Feign - RPC + 负载均衡 4. Alibaba Sentinel - 流量控制 ##### 前端技术 | 框架 | 说明 | | ----------------- | :------------------ | | Vue | 前端 | | Vuex | Vue状态管理 | | Vue router | Vue.js路由管理器 | | Element | UI框架 | | vue-element-admin | Vue后台管理框架 | | Axios | 基于 promise 的 HTTP 库 | | ECharts | 图标 | | nprogress | 进度条控件 | #### 鸣谢 下列的开源项目(不限于这些),对于我开发出这个项目提供了很多帮助,万分感谢!!! - SpringBlade [https://gitee.com/smallc/SpringBlade/](https://gitee.com/smallc/SpringBlade): 项目借鉴其Auth安全模块、代码生成器,在其基础上实现自己的安全认证机制。 - Ant Design Pro Vue [https://pro.antdv.com/](https://pro.antdv.com): 项目前端的按钮级别权限判断,直接使用的其中的permission.js - OneMall [https://github.com/YunaiV/onemall](https://github.com/YunaiV/onemall): 老艿艿的开源商城,借鉴了项目的日志模块及项目分层。 ## 许可证 [MIT](https://gitee.com/evildog/workspace-cloud/blob/master/License) ## 用户权益 允许免费用于学习、毕设、私活等。