--- id: README.zh-CN 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/go-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/$-пожертвовать-ff69b4.svg" alt="пожертвование"/> </div> # Проектная документация Русский | [Английский](./README.md) [gitee адрес: https://gitee.com/Chris_Chiang/gin-admin](https://gitee.com/Chris_Chiang/gin-admin) [github адрес: https://github.com/coderchiang/gin-admin](https://github.com/coderchiang/gin-admin) - Передняя UI-фреймворк: [vue-vben-admin](https://github.com/anncwb/vue-vben-admin) - Задний фреймворк: [Gin](https://github.com/gin-gonic/gin) ## 1. Основное описание ### 1.1 Проектное описание [Онлайн просмотр http://2wm.top/](http://2wm.top/) Тестовое имя пользователя: guest Тестовый пароль: 123456 > Привет! Сначала спасибо за использование gin-admin. Gin-admin — это проект, основанный на Vue и Gin, который предоставляет полный стек переднего и заднего концов управления системой, предназначен для быстрого создания системы управления задним концом; включает JWT-аутентификацию, динамическое маршрутизирование, динамическое меню, аутентификацию Casbin, управление пользователями, управление отделами и другие функции, предоставляющие множество примеров файлов, чтобы вы могли сосредоточиться на разработке бизнеса.## 2. Инструкция использования ``` - Версия Node.js > v14.10 - Версия Go >= v1.14 - Рекомендованное средство разработки: Goland ``` - Используйте Git для клонирования этого проекта ```git git clone https://github.com/coderchiang/gin-admin ``` - Войдите в директорию проекта ```bash cd gin-admin ``` - Дайте одному нажатию кнопки запустить скрипт правам доступа и выполните его. ```bash # Дать права доступа sudo chmod a+x up.sh # Выполнить скрипт запуска ./up.sh ``` > `up.sh` содержит все скрипты запуска конфигураций проекта, конкретная логика может быть откомментирована по требованию; вы также можете разделить вход в веб-конец и сервер для отдельной сборки и конфигурации запуска проекта, конкретные действия следуют ниже. ### 2.1 Веб-конец ```bash # Войдите в веб-конец проекта cd web # Установите зависимости yarn install # Запустите локальный тестовый сервер yarn run serve # Соберите проект yarn run build ``` ### 2.2 Серверный конец Используйте средства редактирования, такие как Goland, чтобы открыть директорию `server`, нельзя открывать корневую директорию `gin-admin`. ```bash # Войти в проект cd server # Запустить Go Modules функцию go env -w GO111MODULE=on # Если вы находитесь в Китае, настройте переменные окружения GOPROXY go env -w GOPROXY=https://goproxy.io,direct # Используйте go.mod для установки зависимостей Go go mod tidy # Собрать проект go build ``` ### 2.3 Инструкция по начальной конфигурации- Конфигурационный файл находится в [config.yaml](./server/conf/config.yaml) - Импортировать SQL-файл для инициализации (по умолчанию используется MySQL) [init.sql](./server/data/init.sql)### 2.4 Автоматизация документации Swagger #### 2.4.1 Установка Swagger ```` go get -u github.com/swaggo/swag/cmd/swag ```` #### 2.4.2 Создание документации API ```` cd server swag init ```` Выполнение указанных выше команд приведёт к появлению папки `docs` в директории сервера. Откройте `http://localhost/swagger/index.html`, чтобы просмотреть документацию Swagger. ## 3. Технологический выбор - Передний край: использует `vue` с использованием `vben` для создания базовых страниц. - Задний край: использует `Gin` для быстрого создания базового RESTful API; `Gin` — это веб-фреймворк, написанный на Go. - База данных: использует версию `MySQL` (5.7) с использованием `gorm` для выполнения основных операций над базами данных. - Кэш: использует `Redis` для отслеживания активных пользователей. - Управление правами доступа: использует `JWT` токены для ограничения многопользовательского входа. - Документация API: использует `Swagger` для автоматизации документации. - Конфигурационные файлы: используют `viper` для парсинга конфигурационных файлов в формате `YAML`. - Логирование: использует `zap` для записи логов. ## 4. Архитектура проекта ### 4.1 Системная архитектура <p align="center"> <img src="https://gitee.com/Chris_Chiang/gin-admin/raw/main/server/data/gin-admin.png" width="936px" height="491px"/> </p>### 4.2 Структура каталогов ``` ├── сервер (server directory) │ ├── app (application, backend API) │ ├── common (common constants, variables, utility method directory) │ ├── conf (configuration directory) │ ├── dao (Data Access Object directory for data access objects) │ ├── data (directory for global data) │ ├── docs (directory for generated Swagger documents) │ ├── dto (Data Transfer Object directory for data transfer objects) │ ├── initialize (directory for initialization of various components) │ ├── log (log directory) │ ├── middleware (middleware directory) │ ├── resource (resource directory for Casbin) │ ├── routers (route configuration directory) │ └── service (service level directory) └── web (frontend directory, uses Vue-Vben-Admin) ├── build (Vite directory) ├── dist (completed build directory) ├── mock (mock data directory) ├── public (public resources directory) ├── src (source code project directory) ├── test └── types ``` ## 5. Основные функции- Управление правами доступа: реализовано с использованием JWT и Casbin - Управление отделами: конфигурирование должностей, которыми пользуются пользователи системы - Управление пользователями: системные администраторы назначают роли пользователям и права этих ролей - Управление ролями: создание основных объектов управления правами, которым можно назначать различные API-права и меню-права - Управление меню: реализация динамической конфигурации меню пользователей, позволяющая различным ролям иметь разные меню; одновременно объединяет управление API, при этом различные пользователи имеют разные права доступа к API-интерфейсам. - Управление логами: регистрация и поиск обычных операционных логов; регистрация и поиск логов системных ошибок, а также логов входа. ## 6. Как внести свой вклад Очень рад приветствовать вас! [Откройте Issue](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`: работа в процессе ## 7. План задач- [ ] Импорт/Экспорт Excel - [ ] Загрузка файлов ## 8. Контакты ### Группа QQ: 1055067008 | Группа QQ | | :---: | | <img src="https://gitee.com/Chris_Chiang/gin-admin/raw/main/server/data/qq.png" width="180"/> | Присоединиться к группе QQ, пожалуйста, не распространяйте рекламу ### Группа WeChat | 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. Донат Если вы считаете этот проект полезным для вас, вы можете поддержать автора, заказав ему кофе! [Здесь](http://2wm.top/about/) ## 10. Вопросы использования в коммерческих целях Проект использует лицензию MIT, фронтенд-фреймворк Vben также основан на лицензии MIT, это полностью открытый и бесплатный проект, который можно использовать без ограничений в коммерческих целях.