FATA(FastApi Tasks App)

Данный проект представляет собой пространство команды для ведения задач пользователей и их уведомления через email. Завершённость проекта ~ 55%

Содержание

Технологии

Первый запуск

Запуск на локальной машине

Прежде всего необходимо добавить файл окружения .env Он имеет следующую структуру:

DB_HOST=...
DB_PORT=...
DB_USER=...
DB_PSW=...
DB_NAME=...

REDIS_NAME=...
REDIS_HOST=...
REDIS_PORT=...
REDIS_DB=...
REDIS_NOTIFICATIONS_KEY=...
REDISMAXPULL=...

TOKEN_UPDATE_TIME=...

EMAIL_SENDER=...
SMTP_PASSWORD=...

Развернём проект с помощью pyenv и poetry

Установим зависимости:

poetry init

Зайдём в виртуальное окружение с помощью команды:

poetry shell

Запустим файл main.py

python main.py

Для проверки обратитесь к swagger-у проекта по адресу: http://127.0.0.1:8000/docs

Docker

Добавим файл окружения .docker_env

REDIS_NAME=...
REDIS_DB=...
REDIS_NOTIFICATIONS_KEY=...
REDISMAXPULL=...
REDIS_PORT=...
REDIS_HOST=...

DB_PORT=...
DB_HOST=...
DB_PSW=...
DB_NAME=...
DB_USER=...
POSTGRES_PASSWORD=...
POSTGRES_USER=...
POSTGRES_DB=...

TOKEN_UPDATE_TIME=...

EMAIL_SENDER=...
SMTP_PASSWORD=...

Сначала необходимо собрать билд проекта.

docker compose build

Далее следует его запустить.

docker compose up

Проверяем доступность сервиса по обращению к swagger-у: http://127.0.0.1:9090/docs

Тестирование

В разработке... Планируется использовать pytest

Deploy и CI/CD

В разработке...

Contributing

В разработке...

FAQ

  • Взаимодействие с базами данных PostgreSQL и Redis - асинхронное.
  • Паттерн "Репозиторий"
  • Паттерн "Unit of work"
  • Как получить SMTP_PASSWORD для отправки сообщений по почте

To do

  • Доработать README.md
  • Создать README.md на английском
  • Доработать модуль задач пользователей
  • Добавить тестирование с помощью pytest
  • Добавить логирование
  • Добавить docstrings
  • Добавить мониторинг приложения

Команда проекта