Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions README.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Koala

English | [Chinese](README.md)

## Introduction

Use Spring Boot Like A Koala
96 changes: 18 additions & 78 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
# Koala 考拉
# Koala 考拉 :koala:

[English Documentation](https://github.com/koala-projects/koala/tree/main/docs/en)
中文 | [English](README.en.md)

## 介绍

考拉(Koala)是一款免费开源的管理系统脚手架, 基于`Spring Boot`和`Vue`生态开发
考拉(Koala)是一款免费开源的管理系统脚手架, 基于`Spring Boot`生态开发

项目提供了多种**自动装配组件**, 只需要引入依赖即可快速进行业务代码编写, 并会持续完善集成更多的配套设施
它提供了多种**原型**和**自动装配组件**, 可快速从零开始生成整套代码或集成高级功能

相较于其它同类产品, 考拉的不同之处在于:
它会持续增加和完善更多的配套设施

## 特性

相较于其它产品, 考拉的不同之处在于:

- 考拉致力于成为程序员的得力**助手**, 而非**替代品**
- 考拉致力于成为便捷/易用/适合二次开发的**脚手架**
Expand All @@ -20,84 +24,20 @@

- [考拉示例项目](https://koala.dxl.pink/): 每天定时重置数据

## 技术栈

### 后端
## 快速开始

- Java: 17
- Spring Boot: 2.6.10
- MyBatis: 3.5.7
- Swagger: v3
开始之前, 您需要有以下技术储备

### 前端
- Java 17: 熟悉 Java 基本语法
- Spring Boot 2.6.10: 熟悉 Spring Boot 基本使用
- IDE: 至少掌握一种集成开发环境

- TypeScript: ^4.6.3
- Vue: ^3.2.33
- vben-admin: 2.8.0
请参照: [快速开始文档](docs/guide/getting-started.md)

## 快速开始
## 关联项目

### 增加仓库

```xml

<repositories>
<repository>
<id>koala</id>
<name>koala</name>
<!-- github -->
<url>https://raw.github.com/koala-projects/maven-repositories/snapshot/</url>
<!-- gitee -->
<!-- <url>https://gitee.com/koala-projects/maven-repositories/raw/snapshot/</url> -->
</repository>
</repositories>
```

### 引入依赖管理

```xml

<dependencyManagement>
<dependencies>
<dependency>
<groupId>cn.koala</groupId>
<artifactId>koala-dependencies</artifactId>
<version>2022.0.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
```

### 引入组件

1. 查看[组件列表](#组件), 选择您需要使用的组件, 仔细阅读使用文档
1. 引入组件依赖, 例如系统管理组件:

```xml

<dependencies>
<dependency>
<groupId>cn.koala</groupId>
<artifactId>koala-system-spring-boot-starter</artifactId>
</dependency>
</dependencies>
```

## 组件

| 组件名称 | 组件说明 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| [Web基础组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-web-spring-boot-starter) | 对部分通用Web功能进行集成和拓展, 例如 OpenApi接口文档 / 通用返回值 / 异常拦截 等 |
| [授权服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-authorization-server-spring-boot-starter) | 基于Spring Authorization Server实现OAuth2授权服务, 拓展了密码模式 |
| [资源服务组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-oauth2-resource-server-spring-boot-starter) | 配合授权服务组件使用 |
| [系统管理组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-system-spring-boot-starter) | 实现了部分通用中后台管理功能, 例如 字典管理 / 部门管理 / 用户管理 等 |
| [数据模型组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-data-model-spring-boot-starter) | 实现了简易数据模型功能, 例如 元数据管理 / 数据管理 等 |
| [设置组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-setting-spring-boot-starter) | 实现了简易设置功能, 适用于系统配置热更新等场景 |
| [办公组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-office-spring-boot-starter) | 提供了部分办公相关辅助工具, 例如 Excel导出 / PDF读取 等 |
| [MQTT组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-integration-mqtt-spring-boot-starter) | 通过简易配置即可快速接入MQTT消息队列 |
| [钉钉组件](https://github.com/koala-projects/koala/tree/main/koala-components/koala-dingtalk-spring-boot-starter) | 整合了新旧两版钉钉SDK |
- [koala-admin](https://github.com/koala-projects/koala-admin): 适配考拉的前端项目
- [eucalyptus](https://github.com/koala-projects/eucalyptus): 代码生成工具

## 联系方式

Expand Down
3 changes: 0 additions & 3 deletions docs/en/README.md

This file was deleted.

114 changes: 114 additions & 0 deletions docs/guide/getting-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# 快速开始

根据实际需求, 可分为如下两种使用方式:

- [原型构建](#原型构建): 利用原型快速生成一整套项目代码, 适合从零开始搭建的业务系统
- [组件集成](#组件集成): 使用考拉提供的多种组件, 快速增加项目功能, 适合正在编码中或已上线的业务系统

## 原型构建

1. 选择合适的原型, 列表如下:

| 原型代码 | 原型说明 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| [koala-web-archetype](../../koala-archetypes/koala-web-archetype) | Web项目通用原型, 标准多模块文件结构, 内置 代码检查 / 授权服务 / 系统管理 等功能 |

2. 在Maven配置中增加第三方原型库, 修改`settings.xml`:

```xml
<profiles>
<profile>
<id>koala</id>
<repositories>
<repository>
<id>koala-gitee</id>
<name>Koala Maven Repository Gitee</name>
<url>https://gitee.com/koala-projects/maven-repositories/raw/snapshot/</url>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
```

3. 使用Maven命令生成项目:

```
mvn archetype:generate ^
-DarchetypeGroupId=cn.koala ^
-DarchetypeArtifactId=koala-web-archetype ^
-DarchetypeVersion=2022.0.1-SNAPSHOT -X ^
-DgroupId=cn.houtaroy ^
-DartifactId=test ^
-Dversion=2022.0.0-SNAPSHOT ^
-Dpackage=ch.houtaroy.test
```

| 参数名称 | 参数描述 | 参数示例 |
| --------------------- | -------------- | ---------------------- |
| -DarchetypeGroupId | 原型groupId | cn.koala |
| -DarchetypeArtifactId | 原型artifactId | koala-web-archetype |
| -DgroupId | 项目groupId | cn.houtaroy |
| -DartifactId | 项目artifactId | test |
| -Dversion | 项目版本 | 2022.0.0-SNAPSHOT |
| -Dpackage | 项目包名 | cn.houtaroy.test |
| ... | 原型额外参数 | 额外参数请参照原型文档 |

4. 使用开发工具打开项目, 进行业务系统编码

## 组件集成

1. 选择需要的组件, 列表如下:

| 组件代码 | 组件说明 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| [koala-web](../../koala-components/koala-web-spring-boot-starter) | 对部分通用Web功能进行集成和拓展, 例如 OpenApi接口文档 / 通用返回值 / 异常拦截 等 |
| [koala-oauth2-authorization-server](../../koala-components/koala-oauth2-authorization-server-spring-boot-starter) | 基于Spring Authorization Server实现OAuth2授权服务, 拓展了密码模式 |
| [koala-oauth2-resource-server](../../koala-components/koala-oauth2-resource-server-spring-boot-starter) | 配合授权服务组件使用 |
| [koala-system](../../koala-components/koala-system-spring-boot-starter) | 实现了部分通用中后台管理功能, 例如 字典管理 / 部门管理 / 用户管理 等 |
| [koala-data-model](../../koala-components/koala-data-model-spring-boot-starter) | 实现了简易数据模型功能, 例如 元数据管理 / 数据管理 等 |
| [koala-setting](../../koala-components/koala-setting-spring-boot-starter) | 实现了简易设置功能, 适用于系统配置热更新等场景 |
| [koala-office](../../koala-components/koala-office-spring-boot-starter) | 提供了部分办公相关辅助工具, 例如 Excel导出 / PDF读取 等 |
| [koala-integration-mqtt](../../koala-components/koala-integration-mqtt-spring-boot-starter) | 通过简易配置即可快速接入MQTT消息队列 |
| [koala-dingtalk](../../koala-components/koala-dingtalk-spring-boot-starter) | 整合了新旧两版钉钉SDK |

**强烈建议您在使用组件前仔细阅读文档**

2. 增加考拉提供的Maven仓库和依赖清单, 修改`pom.xml`:

```xml
<repositories>
<repository>
<id>koala</id>
<name>koala</name>
<!--<url>https://raw.github.com/koala-projects/maven-repositories/snapshot/</url>-->
<url>https://gitee.com/koala-projects/maven-repositories/raw/snapshot/</url>
</repository>
</repositories>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>cn.koala</groupId>
<artifactId>koala-dependencies</artifactId>
<version>2022.0.1-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
```

3. 引入组件依赖, 以系统管理为例, 修改`pom.xml`:

```xml
<dependencies>
<dependency>
<groupId>cn.koala</groupId>
<artifactId>koala-system-spring-boot-starter</artifactId>
</dependency>
</dependencies>
```
14 changes: 1 addition & 13 deletions koala-applications/koala-system-application/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,6 @@
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>

<dependency>
<groupId>cn.koala</groupId>
Expand All @@ -35,6 +31,7 @@
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
Expand All @@ -52,15 +49,6 @@
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.10</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public void add() throws Exception {
public void list() throws Exception {
mockMvc.perform(get("/api/permissions"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.data.content", hasSize(12)));
.andExpect(jsonPath("$.data.content", hasSize(14)));
}

@Test
Expand Down
47 changes: 47 additions & 0 deletions koala-archetypes/koala-web-archetype/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Web原型

## 原型结构

```
business
|--business-application
|--src.main
|--java
|--apis
|--entities
|--repositories
|--services
|--Application.java
|--resources
|--database
|--data.sql
|--schema.sql
|--mappers
|--application.yml
|--pom.xml
|--business-parent
|--checkstyle
|--checkstyle-suppressions.xml
|--.editorconfig
|--lombok.config
|--pom.xml
```

| 目录名称 | 目录描述 |
| --------------------------- | ---------------------------- |
| apis | 接口类包, 下级为接口类文件 |
| entities | 实体类包, 下级为实体类文件 |
| repositories | 存储库包, 下级为存储库类文件 |
| services | 服务包, 下级为服务类文件 |
| Application.java | 应用启动类 |
| data.sql | 数据库数据初始化脚本 |
| schema.sql | 数据库结构初始化脚本 |
| mappers | MyBatis XML文件目录 |
| application.yml | 应用配置文件 |
| checkstyle-suppressions.xml | 代码检查忽略规则配置文件 |
| .editorconfig | 编辑器配置文件 |
| lombok.config | Lombok配置文件 |

## 代码生成

[桉树](https://eucalyptus.dxl.pink/)提供了本原型适配的模板, 选择`Koala业务模板`即可生成从接口至XML的全部代码
26 changes: 26 additions & 0 deletions koala-archetypes/koala-web-archetype/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>koala-web-archetype</artifactId>
<description>考拉网页应用原型</description>
<packaging>maven-archetype</packaging>

<parent>
<groupId>cn.koala</groupId>
<artifactId>koala-parent</artifactId>
<version>${revision}</version>
<relativePath>../../koala-parent</relativePath>
</parent>

<build>
<extensions>
<extension>
<groupId>org.apache.maven.archetype</groupId>
<artifactId>archetype-packaging</artifactId>
<version>${maven-archetype-plugin.version}</version>
</extension>
</extensions>
</build>
</project>
Loading