https://github.com/profcomff/app-template
Шаблон приложения FastAPI + Vue.ts
https://github.com/profcomff/app-template
docker fastapi github-actions python python3 ts vue3
Last synced: 4 months ago
JSON representation
Шаблон приложения FastAPI + Vue.ts
- Host: GitHub
- URL: https://github.com/profcomff/app-template
- Owner: profcomff
- License: bsd-3-clause
- Created: 2024-03-24T10:28:08.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-21T11:39:45.000Z (almost 2 years ago)
- Last Synced: 2024-11-28T11:08:47.217Z (about 1 year ago)
- Topics: docker, fastapi, github-actions, python, python3, ts, vue3
- Language: TypeScript
- Homepage:
- Size: 164 KB
- Stars: 2
- Watchers: 1
- Forks: 12
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Пример приложения
В этом репозитории представлен пример простейшего сервиса с использованием Python FastAPI приложения
в качестве бэкэнда приложения, и Vue.js приложения в качестве фронтенда.
*Большая часть команд и инструкций написаны для операционных систем Linux и MacOS.*
## Рекомендуемые пакеты для разработки
- Git
- Make
- Docker
- Docker Compose
- Python 3.12
- Node.js v18
- VS Code
## Инструкции
### Получение кода на свой компьютер
Для работы с данным примером необходимо забрать его к себе на ПК. Для этого нужно:
1. *(Опционально)* Если вы хотите далее опубликовать код на GitHub полезно сначала скопировать
репозиторий к себе кнопкой Fork на GitHub. Кнопка доступна в правом верхнем углу
[страницы репозитория](https://github.com/profcomff/app-template).
2. Создайте папку в удобном вам расположении.
- *Удобно создать папку на рабочем столе с названием вашего приложения.*
3. Откройте приложение "Командная строка" или "Терминал", в зависимости от операционной системы.
4. Прейдите в папку проекта командой `cd /путь/к/папке`.
- Если вы пользователь windows и создали на рабочем столе папку `my_app`, то команда будет
выглядеть так: `cd %userprofile%/Desktop/my_app`
- Если вы пользователь linux или MacOS и создали на рабочем столе папку `my_app`, то команда
будет выглядеть сделующим образом: `cd ~/Desktop/my_app`
5. Склонируйте код репозитория к себе на ПК командой
`git clone https://github.com/profcomff/app-template.git .` (точка в конце означает скачивание
кода в текущую папку). Если вы выполнили пункт 1 используйте в команде ссылку из зеленой кнопки
"Code" в правом верхнем углу вашего репозитория.
6. Откройте код в удобной среде разработки. Рекомендуем использовать VSCode, который можно открыть
из терминала командой `code .`
### Сборка и запуск приложения для публикации
Сборка исходного кода в один пакет производится с помощью Docker. В этом случае создается
независимый от операционной системы пакет, который можно без проблем разместить на любом сервере.
Выполните команду `make` для сборки приложения. После окончания выполнения этой команды будет создан
новый Docker образ с названием `my_app`, который можно запустить командой `make run`
### Разработка API на Python
Код приложения находится в папке `backend`. Подробную инструкцию можно найти в [README.md](backend/README.md).
### Frontend разработка на Vue.js
Код приложения находится в папке `frontend`. Подробную инструкцию можно найти в [README.md](frontend/README.md).
### Написание документации
Код документации находится в папке `docs`. Подробную инструкцию можно найти в [README.md](docs/README.md).
### Автосборка
Коммит в main запускает автоматическую сборку проекта средствами GitHub Actions. Настройки автосборки находятся в
файле [.github/workflows/build_and_publish.yml](.github/workflows/build_and_publish.yml).
### Тесты на Pull Request
При создании запроса на слияние, автоматически создаются проверки кода юниттестами и на стили.
Следующие тесты будут запущены:
- Проверки `isort` на верную сортировку импортов в папке `backend`
- Проверки `black` на верный стиль написания кода в папке `backend`
- Юнит тесты `pytest` из папки [tests](backend/tests) на код в папке `backend`
- Проверки стилей `eslint`, `prettier`, `stylelint` на код в папке `frontend`
Настройки автотестов находятся в файле[.github/workflows/checks.yml](.github/workflows/checks.yml).
### Публикация готового приложения
На данном этапе вам необходимо разместить приложение на каком-либо хостинге, поддерживающем протокол https.
Для этого подойдет любой VPS сервер, который вы можете найти в интернете. Мы рекомендуем использовать VPS сервера на операционной системе linux, для удобства размещения приложений и компонентов использовать Docker.
Чтобы получить SSL сертификаы для поддержки https можно использовать letsencrypt.com, предоставляющий SSL сертификаты бесплатно. Для удобства работы можно использовать веб сервер с встроенной поддержкой этих сертификатов, например Traefik или Caddy.
Шаблон приложения имеет уже готовые [Dockerfile](cicd/Dockerfile) для сборки вашего приложения, файл [docker-compose.production.yml](cicd/docker-compose.production.yml) с настройками развертывания приложения с Caddy Server и включенным https, а также базой данных PostgreSQL.