An open API service indexing awesome lists of open source software.

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

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.