--- id: README title: Английский документ sidebar_label: Английский документ --- <div align="center"> <p align="center"> <a href="https://github.com/coderchiang/gin-admin"> <img width="48%" alt="gin-admin" src="https://gitee.com/Chris_Chiang/gin-admin/raw/main/server/data/logo.png" /> </a> </p> <img src="https://img.shields.io/badge/golang-1.16-blue"/> <a href="https://github.com/coderchiang/gin-admin"> <img src="https://img.shields.io/github/license/mashape/apistatus.svg" alt="лицензия"/> </a> <img src="https://img.shields.io/badge/%24-пожертвовать-ff69b4.svg" alt="пожертвование"/> </div> Английский | [Китайский язык](./README.zh-CN.md) - Веб-интерфейсная платформа: [vue-vben-admin](https://github.com/anncwb/vue-vben-admin) - Серверная платформа: [Gin](https://github.com/gin-gonic/gin) # Проектный документ ## 1. Основное введение ### 1.1 Введение проекта [Онлайн демо](http://2wm.top/) логин: guest пароль: 123456 > Привет! Благодарим вас за выбор gin-admin. Gin-admin — это полнослоистый (разделение фронтенда и бэкенда) фреймворк, предназначенный для систем управления. Он объединяет множество функций, таких как аутентификация JWT, динамическое маршрутизация, динамическое меню, аутентификация Casbin и прочее. Это позволяет вам сосредоточиться на ваших бизнес-требованиях. ## 2. Начало работы ``` - версия Node.js > v8.6.0 - версия Go >= v1.14 - Рекомендованное средство разработки: Goland ``` - клонировать проект ```git git clone https://github.com/coderchiang/gin-admin ``` - войти в директорию проекта ```bash cd gin-admin ``` - добавить права доступа и выполнить```bash # добавить права доступа sudo chmod a+x up.sh # выполнить ./up.sh ``` >`up.sh` содержит скрипты запуска всех конфигураций процесса старта проекта, конкретная логика может быть аннотирована в соответствии с вашими потребностями; вы также можете отдельно входить в веб и сервер для сборки и настройки запуска проекта. Конкретные действия следуют: ```html <ul> <li>Добавьте права доступа к файлу `up.sh`:</li> <ul><code>sudo chmod a+x up.sh</code></ul> <li>Выполните скрипт `up.sh`:</li> <ul><code>./up.sh</code></ul> </ul> ```### 2.1 Веб ```bash # войти в директорию проекта cd web # установить зависимости yarn install # запустить yarn run serve # сборка yarn run build ``` ### 2.2 Сервер ```bash # войти в директорию проекта cd server # использовать go.mod go env -w GO111MODULE=on # На территории КНР доступ к go.org/x запрещён, рекомендуется [goproxy.io](https://goproxy.io/zh/) go env -w GOPROXY=https://goproxy.io,direct # установить модули Go go mod tidy ``` # сборка сервера go build ``` ### 2.3 Инструкция по начальной конфигурации - Конфигурационный файл [config.yaml](./server/conf/config.yaml) - Импортировать файл инициализации SQL (по умолчанию MySQL) [init.sql](./server/data/init.sql) ### 2.4 Генерация документации API ```` cd server swag init ```` После выполнения вышеуказанной команды, в директории `server/` появится папка `docs`. Откройте ваш браузер и перейдите по адресу `http://localhost/swagger/index.html`, чтобы просмотреть документацию Swagger. ## 3. Технический выбор - Frontend: использование `Vben` на основе Vue для написания страниц. - Backend: использование `Gin` для быстрого создания базовых RESTful API. `Gin` — это веб-фреймворк, написанный на Go (Golang). - БД: `MySQL`(5.7), используя `gorm` для реализации манипуляций с данными, добавлена поддержка SQLite баз данных. - Кэш: использование `Redis` для записи токена JWT активного пользователя и ограничения множественного входа. - API: использование Swagger для автоматической генерации документации API. - Конфигурация: использование `fsnotify` и `viper` для реализации конфигурационного файла `yaml`. - Логи: использование `zap` для записи логов.## 4. Архитектура проекта ### 4.1 Схема архитектуры <p align="center"> <img src="https://gitee.com/Chris_Chiang/gin-admin/raw/main/server/data/gin-admin-en.png" width="936px" height="491px"/> </p> ### 4.2 Расположение проекта ``` ├── server (сервер, Gin) │ ├── app (приложение, backend API) │ ├── common (общие константы, переменные, утилиты) │ ├── conf (конфигурация) │ ├── dao (Data Access Object) │ ├── data (глобальные данные) │ ├── docs (документация, сгенерированная Swagger) │ ├── dto (Data Transfer Object) │ ├── initialize (инициализация системы) │ ├── log (логи) │ ├── middleware (папка middleware) │ ├── resource (ресурс Casbin) │ ├── routers (папка конфигурации маршрутов) │ └── service (папка сервисов) └── web (фронтенд, Vue-Vben-Admin) ├── build (Vite) ├── dist (распределённые файлы) ├── mock (mock данные) ├── public (публичные файлы) ├── src ├── test └── types ``` ## 5. Возможности- Управление правами доступа: управление правами на основе `JWT` и `Casbin`. - Управление отделами: конфигурирование позиций системных пользователей. - Управление пользователями: системный администратор назначает роли пользователям и права этих ролей. - Управление ролями: создание основного объекта управления правами, а затем назначение различных прав доступа к API и меню для роли. - Управление меню: реализация динамической конфигурации меню пользователя, назначение различных меню различным ролям. - Управление API: различные пользователи могут вызывать различные права доступа к API. - Управление конфигурациями: файл конфигурации может быть изменён в веб-странице (в тестовой среде эта функция недоступна).## 6. Как принять участие Вы очень приветствуем ваше участие! [Открыть вопрос](https://github.com/coderchiang/gin-admin/issues/new/choose) или отправить Pull Request. **Pull Request:** 1. Создайте форк кода! 2. Создайте свой собственный ветвь: `git checkout -b feat/xxxx` 3. Внесите свои изменения: `git commit -am 'feat(функционал): добавить xxxxx'` 4. Отправьте свою ветвь: `git push origin feat/xxxx` 5. Отправьте pull request ### Спецификация подачи запроса на включение в git - `feat`: Добавление новых возможностей - `fix`: Исправление проблемы/ошибки - `style`: Связан с стилем кода и не влияет на результат выполнения - `perf`: Оптимизация/повышение производительности - `refactor`: Переструктурирование кода - `revert`: Откат изменений - `test`: Связано с тестированием - `docs`: Документация/заметки - `chore`: Обновление зависимостей/конфигурации шаблонизатора и т.п. - `workflow`: Улучшение рабочего процесса - `ci`: Непрерывная интеграция - `types`: Изменение файла определения типов - `wip`: В разработке ## Список методов - [ ] Загрузка и экспорт Excel - [ ] Загрузка файлов ## 8. Контакты ### 8.1 Группы #### Группа QQ: 1055067008 | Группа QQ | | :---: | | <img src="https://gitee.com/Chris_Chiang/gin-admin/raw/main/server/data/qq.png" width="180"/> | Присоединиться к группе QQ, пожалуйста, не рекламируйте #### Группа WeChat: напишите "присоединиться к обменной группе gin-admin" | WeChat | | :---: | | <img src="https://gitee.com/Chris_Chiang/gin-admin/raw/main/server/data/wechat.png" width="180"/> | Добавьте WeChat, укажите "присоединиться к обменной группе gin-admin"#### [О нас](http://2wm.top/about/) ## 9. Поддержка проекта Если вы считаете этот проект полезным, вы можете купить автору чашку сока :tropical_drink: [здесь](http://2wm.top/about/) ```markdown ## 10. Коммерческие соображения Этот проект использует лицензию MIT, а также фронтендовый фреймворк Vben, основанный на лицензии MIT. Это полностью открытый и бесплатный проект, который можно использовать без ограничений. ```