[简体中文](./README-cn.md) | English
# Project Documentation
[Official Website](http://www.elastic-view.cn)
[Video Tutorial](https://www.bilibili.com/video/BV12tDDYWEP2/?vd_source=d03eb2249d8310afce3f5b90c6081bb3)
[Communication community](https://txc.qq.com/products/666253)
# Important Tips
1. This project has documents and detailed video tutorials from start-up to development to deployment
2. This project requires you to have a certain foundation in golang and vue3
3. You can complete all operations through our tutorials and documents, so we no longer provide free technical services. If you need services, please [add the author's paid support](https://raw.githubusercontent.com/1340691923/ElasticView/main/resources/show_img/weixin.jpg)
## 1. Basic Introduction
### 1.1 Project Introduction
> ElasticView is a full-stack front-end and back-end separated data source management plugin platform developed based on [vue](https://vuejs.org) and [gin](https://gin-gonic.com), integrating jwt authentication, dynamic routing, dynamic menu, casbin authentication, data source management, plugin market and other functions.
## 2. Main functions
- Permission management: Permission management based on `jwt` and `casbin`.
- User management: System administrators assign user roles and role permissions.
- Role management: Create the main object of permission control, and assign different api permissions and menu permissions to roles.
- Data source management: You can set the data source to be managed, and have integrated elasticsearch (6, 7, 8), mysql, redis, clickhouse, postgres, mongodb data sources
- Plugin market: You can install various plugins for operating data sources.
## 3. Secondary Development
```
- node version >= v20.14.0
- golang version >= v1.23
- IDE:Goland
```
### 3.1 run golang
```bash
# git clone
git clone https://github.com:1340691923/ElasticView.git
# install gowatch
go install github.com/silenceper/gowatch@latest
# run
gowatch
# default port
0.0.0.0:8090
```
### 3.2 run vue
```bash
cd resources\vue
# Install Dependencies
pnpm install
# run
npm run dev
```
### 3.3 run build
```bash
# install build tools
go install github.com/1340691923/ElasticView/cmd/ev_builder@v0.0.12
# start build
./ev_builder
# then look at resource/dist
```
### 3.4. Technology selection
- Front-end: Use [Element](https://github.com/ElemeFE/element) based on [Vue](https://vuejs.org) to build basic pages.
- Back-end: Use [Gin](https://gin-gonic.com/) to quickly build basic APIs. [Gin](https://gin-gonic.com/) is a web framework written in go language.
- Database: Use [gorm](http://gorm.cn) to implement basic database operations.
- API documentation: Use `Swagger` to build automated documentation.
- Configuration file: Use [viper](https://github.com/spf13/viper) to implement configuration files in `yaml` format.
- Log: Use [zap](https://github.com/uber-go/zap) to implement logging.
## 4. Plugin related
### 4.1 Official plugin
- [ev tools](https://github.com/1340691923/ev-tools): plugin for managing elasticsearch6, 7, 8 version index
- [Plugin development template](https://github.com/1340691923/eve-plugin-vue3-template): This is a template project for rapid development of plugins
### 4.2 Community plugin
- To be improved
### 4.3 Release plugin
- [Developer Backend](http://dev.elastic-view.cn): used to publish your own plugin for ElasticView users
## 5. Contact information
### QQ communication group: 685549060
### WeChat public account: gh_7247127deece
### WeChat communication group
| WeChat |
| :---: |
|
## 6. Donation
If you think this project is helpful to you, you can buy the author a drink :tropical_drink: [click me](http://www.elastic-view.cn/suporrt.html)
## 7. Commercial precautions
If you use this project for commercial purposes, please comply with the Apache2.0 agreement and keep the author's technical support statement.