|
| 1 | +# Пример приложения |
| 2 | + |
| 3 | +В этом репозитории представлен пример простейшего сервиса с использованием Python FastAPI приложения |
| 4 | +в качестве бэкэнда приложения, и Vue.js приложения в качестве фронтенда. |
| 5 | + |
| 6 | + |
| 7 | +## Рекомендуемые пакеты для разработки |
| 8 | +- Git |
| 9 | +- Make |
| 10 | +- Docker |
| 11 | +- Docker Compose |
| 12 | +- Python 3.12 |
| 13 | +- Node.js v18 |
| 14 | +- VS Code |
| 15 | + |
| 16 | + |
| 17 | +## Инструкции |
| 18 | +### Получение кода на свой компьютер |
| 19 | +Для работы с данным примером необходимо забрать его к себе на ПК. Для этого нужно: |
| 20 | +1. *(Опционально)* Если вы хотите далее опубликовать код на GitHub полезно сначала скопировать |
| 21 | + репозиторий к себе кнопкой Fork на GitHub. Кнопка доступна в правом верхнем углу |
| 22 | + [страницы репозитория](https://github.com/profcomff/app-template). |
| 23 | +2. Создайте папку в удобном вам расположении. |
| 24 | + - *Удобно создать папку на рабочем столе с названием вашего приложения.* |
| 25 | +3. Откройте приложение "Командная строка" или "Терминал", в зависимости от операционной системы. |
| 26 | +4. Прейдите в папку проекта командой `cd /путь/к/папке`. |
| 27 | + - Если вы пользователь windows и создали на рабочем столе папку `my_app`, то команда будет |
| 28 | + выглядеть так: `cd %userprofile%/Desktop/my_app` |
| 29 | + - Если вы пользователь linux или MacOS и создали на рабочем столе папку `my_app`, то команда |
| 30 | + будет выглядеть сделующим образом: `cd ~/Desktop/my_app` |
| 31 | +5. Склонируйте код репозитория к себе на ПК командой |
| 32 | + `git clone https://github.com/profcomff/app-template.git .` (точка в конце означает скачивание |
| 33 | + кода в текущую папку). Если вы выполнили пункт 1 используйте в команде ссылку из зеленой кнопки |
| 34 | + "Code" в правом верхнем углу вашего репозитория. |
| 35 | +6. Откройте код в удобной среде разработки. Рекомендуем использовать VSCode, который можно открыть |
| 36 | + из терминала командой `code .` |
| 37 | + |
| 38 | +### Сборка и запуск приложения для публикации |
| 39 | +Сборка исходного кода в один пакет производится с помощью Docker. В этом случае создается |
| 40 | +независимый от операционной системы пакет, который можно без проблем разместить на любом сервере. |
| 41 | + |
| 42 | +Выполните команду `make` для сборки приложения. После окончания выполнения этой команды будет создан |
| 43 | +новый Docker образ с названием `my_app`, который можно запустить командой `make run` |
| 44 | + |
| 45 | +### Разработка API на Python |
| 46 | +Код приложения находится в папке `backend`. Подробную инструкцию можно найти в [README.md](backend/README.md). |
| 47 | + |
| 48 | +### Frontend разработка на Vue.js |
| 49 | +Код приложения находится в папке `frontend`. Подробную инструкцию можно найти в [README.md](frontend/README.md). |
| 50 | + |
| 51 | +### Написание документации |
| 52 | +Код документации находится в папке `docs`. Подробную инструкцию можно найти в [README.md](docs/README.md). |
| 53 | + |
| 54 | +### Автосборка |
| 55 | +Коммит в main запускает автоматическую сборку проекта средствами GitHub Actions. Настройки автосборки находятся в |
| 56 | +файле [.github/workflows/build_and_publish.yml](.github/workflows/build_and_publish.yml). |
| 57 | + |
| 58 | +### Тесты на Pull Request |
| 59 | +При создании запроса на слияние, автоматически создаются проверки кода юниттестами и на стили. |
| 60 | +Следующие тесты будут запущены: |
| 61 | +- Проверки `isort` на верную сортировку импортов в папке `backend` |
| 62 | +- Проверки `black` на верный стиль написания кода в папке `backend` |
| 63 | +- Юнит тесты `pytest` из папки [tests](backend/tests) на код в папке `backend` |
| 64 | +- Проверки стилей `eslint`, `prettier`, `stylelint` на код в папке `frontend` |
| 65 | + |
| 66 | +Настройки автотестов находятся в файле[.github/workflows/checks.yml](.github/workflows/checks.yml). |
| 67 | + |
| 68 | +### Публикация готового приложения |
| 69 | +TODO: Предложить быстрый и бесплатный способ деплоя Docker контейнеров |
0 commit comments