# bluesky-api
**Repository Path**: wangweiwa/bluesky-api
## Basic Information
- **Project Name**: bluesky-api
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 56
- **Created**: 2021-07-15
- **Last Updated**: 2022-05-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
BlueSky Admin
## 简介
BlueSky Admin权限管理系统,基于VUE3.x、SpringBoot2.x、SpringSecurity、MyBatis-Plus等技术实现的前后端分离的权限管理系统。
可用于学习参考和项目开发。
## 特性
- WEB容器使用了undertow,相较于tomcat,并发性更好,性能要好一些。
- Lombok,消除冗长的java代码,更加简化。
- Mybatis Plus,可以简化CRUD开发。
- Mybatis Plus Generator,生成前后端代码,简化开发工作量。
- 使用java新特性,Stream API、lambda表达式等。
- Hutool工具集合,减少项目工具类的编写。
- Spring Security,通过自定义Provider,实现用户名密码登录和手机号验证码两种登录模式。
- Spring Security权限,细分到页面按钮级别。
- EasyExcel,方便导入导出功能,自定义Convert类,实现了数据字典的转化。
- Guava,非常方便的java工具集,提供了类似Lists.newArrayList()和Sets.newHashSet()等静态方法。
- DataSource注解,支持多数据源切换。
- Fastjson,方便了JSON的格式化和解析。
- Alibaba Java Coding Guidelines插件,IDEA插件,提高代码质量。
- 前端框架采用最新技术栈,Vue3 & Vite,打包更快更轻。
- 前端框架采用TypeScript和Eslint,规范代码,提高项目可持续性和可维护性。
## 演示环境
演示地址:[http://vue3.bluesky.admin](http://coffee-ease.natapp1.cc)
## 预览
## 项目地址
- [bluesky-ui](https://gitee.com/skysong/bluesky-ui) - 前端UI
- [bluesky-api](https://gitee.com/skysong/bluesky-api) - 后端API
## 项目结构
```
bluesky-api
├── bluesky-admin -- 内置功能,后台管理
├── bluesky-codegen -- 内置功能,代码生成
├── bluesky-common --内置功能,通用工具
├── bluesky-framework -- 内置功能,核心模块
├── bluesky-system -- 内置功能,系统模块
```
## 核心依赖
| 依赖 | 版本 |
| ---------------------- | ------------ |
| Spring Boot | 2.5.2 |
| Spring Boot Security | 2.5.2 |
| Mybatis Plus | 3.4.3 |
| Mybatis Plus Generator | 3.4.0 |
| Hutool | 5.7.3 |
| Guava | 30.1.1-jre |
| EasyExcel | 2.2.6 |
| Fastjson | 1.2.76 |
## 系统内置
```
1、菜单管理
2、字典管理
3、部门管理
4、岗位管理
5、角色管理
6、用户管理
7、参数设置
8、在线用户
9、操作日志
```
## 环境安装
```
1、准备Mysql数据库,Redis环境。
2、执行./doc/db/schema.sql,创建数据库。
3、执行./doc/db/bluesky.sql,创建数据表和插入基础数据。
```
## 部署
```
一、打包命令:指定prod环境,进行打包
mvn clean package -DskipTests -Pprod
二、启动
1、Windows环境,运行./doc/bin/run.bat
2、Linux环境,运行./doc/bin/linux/startup.sh
三、注意事项
1、Linux执行脚本,需要先授权,chmod +x startup.sh
2、run.bat或startup.sh,需要和bluesky-admin.jar放在同一个目录运行
3、指定端口,需要修改脚本,并添加server.port参数,示例:--server.port=9090
```
## 服务器部署目录结构
```
/opt
├── bluesky
├──── bluesky-ui
├──── bluesky-api
├────── startup.sh
├────── bluesky-admin.jar
```
## nginx配置
```
location / {
root /opt/bluesky/bluesky-ui;
try_files $uri $uri/ @router;
index index.html index.htm;
}
location @router {
rewrite ^.*$ /index.html last;
}
location ^~ /api {
proxy_pass http://localhost:9090/api;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
```
## EasyExcel使用
```
excel标题宽度
两个字:@ColumnWidth(10)
四个字:@ColumnWidth(15)
```
## Java编码规范
[Java开发手册](./doc/java开发手册/阿里巴巴Java开发手册(华山版).pdf)
## Vue编码规范
```
1、所有的Component文件都是以大写开头 (PascalCase)
2、所有的.js文件都遵循横线连接 (kebab-case)
3、在views文件下,代表路由的.vue文件都使用横线连接 (kebab-case),代表路由的文件夹也是使用同样的规则
4、api下模块和view下模块,一一对应
```
## CSS编码规范
```
CSS编码规范,BEM:就是块(block)、元素(element)、修饰符(modifier)
.block{}
.block__element{}
.block--modifier{}
.block 代表了更高级别的抽象或组件。
.block__element 代表.block的后代,用于形成一个完整的.block的整体。
.block--modifier代表.block的不同状态或不同版本
```