README.md 10.3 KB
Newer Older
Mr.奇淼('s avatar
Mr.奇淼( 已提交
1 2 3 4 5 6 7

<div align=center>
<img src="http://qmplusimg.henrongyi.top/gvalogo.jpg" width=300" height="300" />
</div>
<div align=center>
<img src="https://img.shields.io/badge/golang-1.12-blue"/>
<img src="https://img.shields.io/badge/gin-1.4.0-lightBlue"/>
8 9
<img src="https://img.shields.io/badge/vue-2.6.10-brightgreen"/>
<img src="https://img.shields.io/badge/element--ui-2.12.0-green"/>
Mr.奇淼('s avatar
Mr.奇淼( 已提交
10 11 12
<img src="https://img.shields.io/badge/gorm-1.9.10-red"/>
</div>

13
English | [简体中文](./README-zh_CN.md)
Mr.奇淼('s avatar
Mr.奇淼( 已提交
14

15
# Project Guidelines
16
[Online Documentation](http://doc.henrongyi.top/)
Mr.奇淼('s avatar
Mr.奇淼( 已提交
17

18
- Web UI Framework:[element-ui](https://github.com/ElemeFE/element)  
R
rainyan 已提交
19
- Server Framework:[gin](https://github.com/gin-gonic/gin) 
Mr.奇淼('s avatar
Mr.奇淼( 已提交
20

21
## 1. Basic Introduction
22 23 24

### 1.1 Project Introduction

25 26 27
[Online Demo](http://qmplus.henrongyi.top/)
> Gin-vue-admin is a full-stack (frontend and backend separation) framework designed for management system. 
> It integrates multiple functions, such as JWT authentication, dynamic routing, dynamic menu, casbin authentication, form generator, code generator, etc. So that you can focus more time on your business Requirements.
Mr.奇淼('s avatar
Mr.奇淼( 已提交
28

R
rainyan 已提交
29
Hi! Thank you for choosing gin-vue-admin.
30

R
rainyan 已提交
31
Gin-vue-admin is a full-stack (frontend and backend separation) framework for developers, designers and product managers.
32

R
rainyan 已提交
33 34
We are excited that you are interested in contributing to gin-vue-admin. Before submitting your contribution though, please make sure to take a moment and read through the following guidelines.

R
rainyan 已提交
35
### 1.2 Contributing Guide
R
rainyan 已提交
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
#### 1.2.1 Issue Guidelines

- Issues are exclusively for bug reports, feature requests and design-related topics. Other questions may be closed directly. If any questions come up when you are using Element, please hit [Gitter](https://gitter.im/element-en/Lobby) for help.

- Before submitting an issue, please check if similar problems have already been issued.

#### 1.2.2 Pull Request Guidelines

- Fork this repository to your own account. Do not create branches here.

- Commit info should be formatted as `[File Name]: Info about commit.` (e.g. `README.md: Fix xxx bug`)

- <font color=red>Make sure PRs are created to `develop` branch instead of `master` branch.</font>

- If your PR fixes a bug, please provide a description about the related bug.

- Merging a PR takes two maintainers: one approves the changes after reviewing, and then the other reviews and merges.

### 1.3 Version list

R
rainyan 已提交
56
- master: 2.0 dev code, for prod
R
rainyan 已提交
57

R
rainyan 已提交
58
- develop: 2.0 dev code, for test
R
rainyan 已提交
59 60 61 62 63 64

- [gin-vue-admin_v2.0_dev](https://github.com/flipped-aurora/gin-vue-admin/tree/gin-vue-admin_v2_dev) (v2.0 is no longer compatible with v1.0)

- [gin-vue-admin_v1.0_stable](https://github.com/flipped-aurora/gin-vue-admin/tree/gin-vue-admin_v1_stable) (v1.0 is kept up to date and maintained)

- [gin-vue-admin_v1.0_dev](https://github.com/flipped-aurora/gin-vue-admin/tree/gin-vue-admin_v1_dev) (v1.0 is kept up to date and maintained)
65 66


67
## 2. Getting started
Mr.奇淼('s avatar
Mr.奇淼( 已提交
68
```
69 70 71 72 73
- node version > v8.6.0
- golang version >= v1.11
- IDE recommendation: Goland
- After you clone the project, use the scripts in directory db to create your own database.
- We recommend you to apply for your own cloud service in QINIU. Replace the public key, private key, warehouse name and default url address with your own, so as not to mess up the test database.
Mr.奇淼('s avatar
Mr.奇淼( 已提交
74 75
```

R
rainyan 已提交
76
### 2.1 Web
Mr.奇淼('s avatar
Mr.奇淼( 已提交
77

78 79 80
```bash
# clone the project
git clone https://github.com/piexlmax/gin-vue-admin.git
Mr.奇淼('s avatar
Mr.奇淼( 已提交
81

82 83
# enter the project directory
cd web
Mr.奇淼('s avatar
Mr.奇淼( 已提交
84

85 86
# install dependency
npm install
Mr.奇淼('s avatar
Mr.奇淼( 已提交
87

88
# develop
Mr.奇淼('s avatar
Mr.奇淼( 已提交
89
npm run serve
90
```
Mr.奇淼('s avatar
Mr.奇淼( 已提交
91

R
rainyan 已提交
92
### 2.2 Server
Mr.奇淼('s avatar
Mr.奇淼( 已提交
93

94 95
```bash
# using go.mod
Mr.奇淼('s avatar
Mr.奇淼( 已提交
96

97 98
# install go modules
go list (go mod tidy)
Mr.奇淼('s avatar
Mr.奇淼( 已提交
99

100 101 102
# build the server
go build
```
Mr.奇淼('s avatar
Mr.奇淼( 已提交
103

104
### 2.3 API docs auto-generation using swagger
Mr.奇淼('s avatar
Mr.奇淼( 已提交
105

R
rainyan 已提交
106
#### 2.3.1 install swagger 
S
sun_song_1203 已提交
107

R
rainyan 已提交
108
##### (1) Using VPN or outside mainland China
109 110 111
````
go get -u github.com/swaggo/swag/cmd/swag
````
Mr.奇淼('s avatar
Mr.奇淼( 已提交
112

R
rainyan 已提交
113
##### (2) In mainland China 
R
rainyan 已提交
114
In mainland China, access to go.org/x is prohibited,we recommend `gopm`
115 116 117
````bash
# install gopm
go get -v -u github.com/gpmgo/gopm
Mr.奇淼('s avatar
Mr.奇淼( 已提交
118

119 120
# get swag
gopm get -g -v github.com/swaggo/swag/cmd/swag
Mr.奇淼('s avatar
Mr.奇淼( 已提交
121

122 123 124
# cd GOPATH/src/github.com/swaggo/swag/cmd/swag
go install
````
Mr.奇淼('s avatar
Mr.奇淼( 已提交
125

126
#### 2.3.2 API docs generation
Mr.奇淼('s avatar
Mr.奇淼( 已提交
127

128 129 130 131 132
````
cd server
swag init
````
After executing the above command,`docs` will show in `server/`,then open your browser, jump into `http://localhost:8888/swagger/index.html` to see the swagger APIs.
Mr.奇淼('s avatar
Mr.奇淼( 已提交
133 134


R
rainyan 已提交
135
## 3. Technical selection
Mr.奇淼('s avatar
Mr.奇淼( 已提交
136

137 138
- Frontend: using `Element-UI` based on vue,to code the page.
- Backend: using `Gin` to quickly build basic RESTful API. `Gin` is a web framework written in Go (Golang).
139
- DB: `MySql`(5.6.44),using `gorm` to implement data manipulation, added support for SQLite databases.
140 141 142
- Cache: using `Redis` to implement the recording of the JWT token of the currently active user and implement the multi-login restriction.
- API: using Swagger to auto generate APIs docs。
- Config: using `fsnotify` and `viper` to implement `yaml` config file。
G
Granty1 已提交
143
- Log: using `go-logging` record logs。
S
sun_song_1203 已提交
144

R
rainyan 已提交
145 146 147
## 4. Project Architecture

![Architecture diagram](./docs/gin-vue-admin.png)
S
sun_song_1203 已提交
148

Mr.奇淼('s avatar
Mr.奇淼( 已提交
149 150 151 152 153 154 155
<p style="text-align: center">Architecture diagram</p>


![Front-end Architecture diagram](http://qmplusimg.henrongyi.top/naotu.png)

<a style="text-align: center">Front-end Architecture diagram Provider:<a href="https://github.com/baobeisuper">baobeisuper</a></p>

156
```
157
    ├─server  	     (backend)
158 159 160 161 162 163 164 165 166 167 168
    │  ├─api            (API entrance)
    │  ├─config         (config file)
    │  ├─core  	        (core code)
    │  ├─db             (db scripts)
    │  ├─docs  	        (swagger APIs docs)
    │  ├─global         (global objet)
    │  ├─initialiaze    (initialiazation)
    │  ├─middleware     (middle ware)
    │  ├─model          (model and services)
    │  ├─resource       (resources, such as static pages, templates)
    │  ├─router         (routers)
Mr.奇淼('s avatar
Mr.奇淼( 已提交
169
    │  ├─service         (services)
170
    │  └─utils	        (common utilities)
171
    └─web            (frontend)
172 173 174 175 176 177 178 179 180 181
        ├─public        (deploy templates)
        └─src           (source code)
            ├─api       (frontend APIs)
            ├─assets	(static files)
            ├─components(components)
            ├─router	(frontend routers)
            ├─store     (vuex state management)
            ├─style     (common styles)
            ├─utils     (frontend common utilitie)
            └─view      (pages)
Mr.奇淼('s avatar
Mr.奇淼( 已提交
182

183
```
Mr.奇淼('s avatar
Mr.奇淼( 已提交
184

185 186 187 188 189 190 191 192 193 194 195 196
## 5. Features

- Authority management: Authority management based on `jwt` and `casbin`. 
- File upload & download: File upload operation based on Qiniu Cloud (In order to make it easier for everyone to test, I have provided various important tokens of my Qiniu test number, and I urge you not to make things a mess).
- Pagination Encapsulation:The frontend uses mixins to encapsulate paging, and the paging method can call mixins
- User management: The system administrator assigns user roles and role permissions.
- Role management: Create the main object of permission control, and then assign different API permissions and menu permissions to the role.
- Menu management: User dynamic menu configuration implementation, assigning different menus to different roles.
- API management: Different users can call different API permissions.
- Configuration management: The configuration file can be modified in the web page (the test environment does not provide this function).
- Rich text editor: Embed MarkDown editor function.
- Conditional search: Add an example of conditional search.
R
rainyan 已提交
197
- Restful example: You can see sample APIs in user management module.
198

199 200 201 202 203 204 205 206
```
fontend code file: src\view\superAdmin\api\api.vue 
backend code file: model\dnModel\api.go 
```
- Multi-login restriction: Change `userMultipoint` to true in `system` in `config.yaml` (You need to configure redis and redis parameters yourself. During the test period, please report in time if there is a bug).
- Upload file by chunk:Provides examples of file upload and large file upload by chunk.
- Form Builder:With the help of [@form-generator](https://github.com/JakHuang/form-generator).
- Code generator: Providing backend with basic logic and simple curd code generator.
Mr.奇淼('s avatar
Mr.奇淼( 已提交
207

208
## 6. To-do list
Mr.奇淼('s avatar
Mr.奇淼( 已提交
209

210 211 212 213
- [ ] upload & export Excel
- [ ] e-chart
- [ ] workflow, task transfer function
- [ ] frontend independent mode, mock
Mr.奇淼('s avatar
Mr.奇淼( 已提交
214

R
rainyan 已提交
215
## 7. Knowledge base
Mr.奇淼('s avatar
Mr.奇淼( 已提交
216

R
rainyan 已提交
217
### 7.1 Team blog
Mr.奇淼('s avatar
Mr.奇淼( 已提交
218

R
rainyan 已提交
219
> https://www.yuque.com/flipped-aurora
220
>
R
rainyan 已提交
221
>There are video courses about frontend framework in our blo. If you think the project is helpful to you, you can add my personal WeChat:shouzi_1994,your comments is welcomed。
Mr.奇淼('s avatar
Mr.奇淼( 已提交
222

R
rainyan 已提交
223
### 7.2 Video courses
Mr.奇淼('s avatar
Mr.奇淼( 已提交
224

R
rainyan 已提交
225
(1) Development environment course
Mr.奇淼('s avatar
Mr.奇淼( 已提交
226
> Bilibili:https://www.bilibili.com/video/BV1Fg4y187Bw/
Mr.奇淼('s avatar
Mr.奇淼( 已提交
227
    
R
rainyan 已提交
228
(2) Template course
Mr.奇淼('s avatar
Mr.奇淼( 已提交
229
> Bilibili:https://www.bilibili.com/video/BV16K4y1r7BD/
Mr.奇淼('s avatar
Mr.奇淼( 已提交
230

Mr.奇淼('s avatar
Mr.奇淼( 已提交
231 232 233 234
(3)2.0 version introduction and development experience
> Bilibili:https://www.bilibili.com/video/BV1aV411d7Gm#reply2831798461

(4) Golang basic course (coming soon)
Mr.奇淼('s avatar
Mr.奇淼( 已提交
235

R
rainyan 已提交
236
> https://space.bilibili.com/322210472/channel/detail?cid=108884
Mr.奇淼('s avatar
Mr.奇淼( 已提交
237

R
rainyan 已提交
238 239
## 8. Contacts
### 8.1 Groups
240 241 242
| QQ group |  
|  :---:  |
| <img src="http://qmplusimg.henrongyi.top/qq.jpg" width="180"/> |
R
rainyan 已提交
243
### QQ group: 622360840
244

R
rainyan 已提交
245
### Wechat group: add anyone above, comment "加入gin-vue-admin交流群"
246

R
rainyan 已提交
247
### 8.2 Team members
248 249
| Jiang | Yin | Yan | Du | Yin | Song |
|  :---:  |  :---: | :---: | :---:  |  :---: | :---: |
Mr.奇淼('s avatar
Mr.奇淼( 已提交
250
| <img width="150" src="http://qmplusimg.henrongyi.top/qrjjz.png"> | <img width="150" src="http://qmplusimg.henrongyi.top/qryx.png"> | <img width="150" src="http://qmplusimg.henrongyi.top/qryr.png"> | <img width="150" src="http://qmplusimg.henrongyi.top/qrdjl.png"> | <img width="150" src="http://qmplusimg.henrongyi.top/qrygl.png"> | <img width="150" src="http://qmplusimg.henrongyi.top/qrsong.png"> |
Mr.奇淼('s avatar
Mr.奇淼( 已提交
251

252 253 254
|  Nick name   | Project position  | First name  |
|  ----  | ----  | ----  |
| [@piexlmax](https://github.com/piexlmax)  | Project sponsor | Jiang |
G
Granty1 已提交
255
| [@granty1](https://github.com/granty1)  | Backend developer | Yin |
256
| [@Ruio9244](https://github.com/Ruio9244)  | Full-stack developer | Yan |
257
| [@1319612909](https://github.com/1319612909)  | UI developer |  Du |
G
Granty1 已提交
258
| [@krank666](https://github.com/krank666)  | Frontend developer | Yin |
259
| [@chen-chen-up](https://github.com/chen-chen-up)  | Novice developer | Song |
Mr.奇淼('s avatar
Mr.奇淼( 已提交
260

R
rainyan 已提交
261
## 9. Donate
Mr.奇淼('s avatar
Mr.奇淼( 已提交
262

263
If you find this project useful, you can buy author a glass of juice :tropical_drink:
Mr.奇淼('s avatar
Mr.奇淼( 已提交
264