Coder Social home page Coder Social logo

osky's Introduction

Osky

Osky Workflow

Описание

База проекта универсальна и подходит для разных сфер услуг. Цель - постоянный рефакторинг в процессе роста навыков.

Дополнение

Личный демонстрационный проект для отработки навыков и внедрения новых технологий, если они уместны.

Стек технологий

Python FastAPI Postgres Docker Grafana Prometheus

Структура проекта
Структура базы данных
Структура репозитория
Специфика ендпойнтов в OpenAPI
Документация Redoc

Адрес проекта

(запускается локально)

http://127.0.0.1:8000/

(запуск на сервере)

https://:8000/

/admin/ # Адрес админки проекта

/docs/ # Документация

Handlers

api/

Подготовка проекта к запуску

3 пункт для локального запуска. 4 пункт для ведения разработки

  1. Склонируйте репозиторий и перейдите в него:

    git clone https://github.com/Oskalovlev/osky.git
    cd osky/

  1. Для работы с PostgreSQL:

    • Создайте в директории infra/ файл .env командой:

      touch infra/.env

      Заполните переменные по примеру файла .env.example


  1. Создайте и активируйте виртуальное окружение Poetry:

    Установка Poetry(Если не установлено)

    Для Linux, macOS, Windows (WSL):

    curl -sSL https://install.python-poetry.org | python3 -

    Для Windows (Powershell):

    (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
    • В macOS и Windows сценарий установки предложит добавить папку с исполняемым файлом Poetry в переменную PATH. Сделайте это, выполнив следующую команду (не забудьте поменять {USERNAME} на имя вашего пользователя):

      • macOS:
        export PATH="/Users/{USERNAME}/.local/bin:$PATH"
      • Windows:
        $Env:Path += ";C:\Users\{USERNAME}\AppData\Roaming\Python\Scripts"; setx PATH "$Env:Path"

      Проверить установку: bash poetry --version

      • Установка автодополнений bash (опционально):
        poetry completions bash >> ~/.bash_completion
    Запуск виртуального окружения
    • Создать файл .toml:
         poetry init

    Соглашаясь на все стандартные значения, если нет другого варианта

    • Создание виртуального окружения:
          poetry env use python
    • Установка зависимостей:
          poetry install --with dev,test
    • Запуск оболочки и активация виртуального окружения (из папки проекта):
          poetry shell
    • Проверка активации виртуального окружения:
          poetry env list
    Потенциальные проблемы

    a. виртуальное окружение Poetry недоступно при выборе интерпретатора

    С высокой вероятностью виртуальное окружение создалось вне папки проекта. Командой ниже можно удостовериться, что окружение будет создано внутри пути проекта:

    poetry config virtualenvs.in-project true

    Если проект уже был создан, придется пересоздать окружение:

    poetry env list  # вывести имя текущего окружения
    poetry env remove <current environment>  # удалить текущее окружение
    poetry install  # создаст новое окружение с уже с учетом нового конфига virtualenvs.in-project true

    b. путь к Poetry не прописан / приходится указывать заново при переоткрытии проекта в редакторе

    В зависимости от типа используемой оболочки, найдите и откройте bashrc / zshrc файл:

    nano ~/.zshrc

    Если в файле нет этой строки, добавьте ее и сохраните изменения (не забудьте указать свой {USERNAME}):

    export PATH="/Users/{USERNAME}/.local/bin:$PATH"

  1. Настройте pre-commit: pre-commit установится автоматически, после ввода команды зависимостей, можно проверить:

      pre-commit --version

    Для работы нужно ввести команду:

      pre-commit install

    Теперь pre-commit рабатывает автоматически при коммитах.

    Исправленные black'ом файлы нужно добавить:

      git add .

Для запуска в Docker-контейнере используйте инструкцию
  1. Запустите сборку контейнеров:

    docker compose -f infra/docker-compose.yaml up -d --build
  2. Для остановки контейнеров:

    docker compose -f infra/docker-compose.yaml stop
  3. Для удаления контейнеров:

    docker compose -f infra/docker-compose.yaml down (-v опционально, удалит связи)

Для локального запуска используйте инструкцию
  1. Выполните миграции:

    • Инициализируйте миграции Alembic (опционально)

          alembic init
    • Создайте миграции (будут созданы с сортировкой по дате, но лучше добавить комментарий)

          alembic revision --autogenerate
    • Примените миграции

          alembic upgrade head
  2. Локальный запуск:

        poetry run task app (в активном Poetry окружением)

Автор

osky's People

Contributors

oskalovlev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.