{"id":21887220,"url":"https://github.com/profcomff/app-template","last_synced_at":"2025-10-08T21:30:21.853Z","repository":{"id":229462642,"uuid":"776730373","full_name":"profcomff/app-template","owner":"profcomff","description":"Шаблон приложения FastAPI + Vue.ts","archived":false,"fork":false,"pushed_at":"2024-04-21T11:39:45.000Z","size":168,"stargazers_count":2,"open_issues_count":3,"forks_count":12,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-28T11:08:47.217Z","etag":null,"topics":["docker","fastapi","github-actions","python","python3","ts","vue3"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/profcomff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-24T10:28:08.000Z","updated_at":"2024-06-21T22:27:11.000Z","dependencies_parsed_at":"2024-04-18T21:55:35.010Z","dependency_job_id":null,"html_url":"https://github.com/profcomff/app-template","commit_stats":null,"previous_names":["profcomff/app-template"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profcomff%2Fapp-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profcomff%2Fapp-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profcomff%2Fapp-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profcomff%2Fapp-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/profcomff","download_url":"https://codeload.github.com/profcomff/app-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235758349,"owners_count":19040734,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","fastapi","github-actions","python","python3","ts","vue3"],"created_at":"2024-11-28T11:08:50.820Z","updated_at":"2025-10-08T21:30:16.498Z","avatar_url":"https://github.com/profcomff.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Пример приложения\n\nВ этом репозитории представлен пример простейшего сервиса с использованием Python FastAPI приложения\nв качестве бэкэнда приложения, и Vue.js приложения в качестве фронтенда.\n\n\n*Большая часть команд и инструкций написаны для операционных систем Linux и MacOS.*\n\n\n## Рекомендуемые пакеты для разработки\n- Git\n- Make\n- Docker\n- Docker Compose\n- Python 3.12\n- Node.js v18\n- VS Code\n\n\n## Инструкции\n### Получение кода на свой компьютер\nДля работы с данным примером необходимо забрать его к себе на ПК. Для этого нужно:\n1. *(Опционально)* Если вы хотите далее опубликовать код на GitHub полезно сначала скопировать\n   репозиторий к себе кнопкой Fork на GitHub. Кнопка доступна в правом верхнем углу\n   [страницы репозитория](https://github.com/profcomff/app-template).\n2. Создайте папку в удобном вам расположении.\n    - *Удобно создать папку на рабочем столе с названием вашего приложения.*\n3. Откройте приложение \"Командная строка\" или \"Терминал\", в зависимости от операционной системы.\n4. Прейдите в папку проекта командой `cd /путь/к/папке`.\n    - Если вы пользователь windows и создали на рабочем столе папку `my_app`, то команда будет\n      выглядеть так: `cd %userprofile%/Desktop/my_app`\n    - Если вы пользователь linux или MacOS и создали на рабочем столе папку `my_app`, то команда\n      будет выглядеть сделующим образом: `cd ~/Desktop/my_app`\n5. Склонируйте код репозитория к себе на ПК командой\n  `git clone https://github.com/profcomff/app-template.git .` (точка в конце означает скачивание\n  кода в текущую папку). Если вы выполнили пункт 1 используйте в команде ссылку из зеленой кнопки\n  \"Code\" в правом верхнем углу вашего репозитория.\n6. Откройте код в удобной среде разработки. Рекомендуем использовать VSCode, который можно открыть\n   из терминала командой `code .`\n\n### Сборка и запуск приложения для публикации\nСборка исходного кода в один пакет производится с помощью Docker. В этом случае создается\nнезависимый от операционной системы пакет, который можно без проблем разместить на любом сервере.\n\nВыполните команду `make` для сборки приложения. После окончания выполнения этой команды будет создан\nновый Docker образ с названием `my_app`, который можно запустить командой `make run`\n\n### Разработка API на Python\nКод приложения находится в папке `backend`. Подробную инструкцию можно найти в [README.md](backend/README.md).\n\n### Frontend разработка на Vue.js\nКод приложения находится в папке `frontend`. Подробную инструкцию можно найти в [README.md](frontend/README.md).\n\n### Написание документации\nКод документации находится в папке `docs`. Подробную инструкцию можно найти в [README.md](docs/README.md).\n\n### Автосборка\nКоммит в main запускает автоматическую сборку проекта средствами GitHub Actions. Настройки автосборки находятся в\nфайле [.github/workflows/build_and_publish.yml](.github/workflows/build_and_publish.yml).\n\n### Тесты на Pull Request\nПри создании запроса на слияние, автоматически создаются проверки кода юниттестами и на стили.\nСледующие тесты будут запущены:\n- Проверки `isort` на верную сортировку импортов в папке `backend`\n- Проверки `black` на верный стиль написания кода в папке `backend`\n- Юнит тесты `pytest` из папки [tests](backend/tests) на код в папке `backend`\n- Проверки стилей `eslint`, `prettier`, `stylelint` на код в папке `frontend`\n\nНастройки автотестов находятся в файле[.github/workflows/checks.yml](.github/workflows/checks.yml).\n\n### Публикация готового приложения\nНа данном этапе вам необходимо разместить приложение на каком-либо хостинге, поддерживающем протокол https.\n\nДля этого подойдет любой VPS сервер, который вы можете найти в интернете. Мы рекомендуем использовать VPS сервера на операционной системе linux, для удобства размещения приложений и компонентов использовать Docker.\n\nЧтобы получить SSL сертификаы для поддержки https можно использовать letsencrypt.com, предоставляющий SSL сертификаты бесплатно. Для удобства работы можно использовать веб сервер с встроенной поддержкой этих сертификатов, например Traefik или Caddy.\n\nШаблон приложения имеет уже готовые [Dockerfile](cicd/Dockerfile) для сборки вашего приложения, файл [docker-compose.production.yml](cicd/docker-compose.production.yml) с настройками развертывания приложения с Caddy Server и включенным https, а также базой данных PostgreSQL.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprofcomff%2Fapp-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprofcomff%2Fapp-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprofcomff%2Fapp-template/lists"}