Документация Swagger к API проекта доступна ТУТ
Документация Redoc к API проекта доступна ТУТ
Архив со скриншотами ТУТ
-
MVP:
- Цель: Проект для отслеживания индивидуальных планов развития.
- Кто молодец?: Проект выполнен командой №1 в рамках хакатона от Альфа-Банка.
-
Что умеет:
- Создавать и управлять ИПР.
- Устанавливать личные цели и задачи.
- Отслеживать выполнение поставленных задач.
- Анализировать проделанную работу.
-
Общение:
- Обратная связь в виде комментариев.
- Аналитика по ИПР.
Склонируйте проект из репозитория:
git clone https://github.com/Alfa-PDP/backend.git
Перейдите в директорию проекта:
cd backend/
Перейдите в директорию src и создайте файл .env:
cd src/
nano .env
Добавьте строки, содержащиеся в файле .env.template и подставьте свои значения.
Пример из .env файла:
PROJECT_NAME="Alfa-Bank PDP" # Название проекта
PROJECT_HOST=alfa-bank-pdp-backend-api # Названия контейнера бэкенда
PROJECT_PORT=8080 # Порт бэкенда
ENVIRONMENT=local # Выбор окружения
REDIS_PORT=6379 # Порт Redis
REDIS_HOST=alfa-bank-pdp-backend-redis # Название контейнера Redis
POSTGRES_DB=pdp_database # Название вашей бд
POSTGRES_USER=admin # Ваше имя пользователя для бд
POSTGRES_PASSWORD=super_password # Ваш пароль для бд
POSTGRES_HOST=alfa-bank-pdp-backend-db # Название контейнера бд
POSTGRES_PORT=5432 # Порт бд. Стандартное значение - 5432
SQLALCHEMY_ECHO=True # Включение логирования SQLAlchemy
JWT_SECRET_KEY=jwt_super_secret # Секретный ключ шифрования JWT
ENCODE_ALGORITHM=HS256 # Алгоритм шифрования
Так же перейдите в директорию infra и создайте там аналогичный файл .env на примере .env.template.
cd ../infra
nano .env
Пример из .env файла:
FRONTEND_PORT=80 # Порт для обращения к бэкенду извне
BACKEND_PORT=8080 # Локальный порт бэкенда
REDIS_PORT=6379 # Порт Redis
POSTGRES_DB=pdp_database # Название вашей бд
POSTGRES_USER=admin # Ваше имя пользователя для бд
POSTGRES_PASSWORD=super_password # Ваш пароль для бд
POSTGRES_HOST=alfa-bank-pdp-backend-db # Название контейнера бд
POSTGRES_PORT=5432 # Порт бд. Стандартное значение - 5432
Перед началом работы нужно обязательно:
- Установить poetry https://python-poetry.org/docs/#installation
- Изменить настройки poetry для хранения виртуального окружения командой
poetry config virtualenvs.in-project true
- Выполнить команду
poetry install
для установки зависимостей - Выполнить команду
poetry shell
для активации виртуального окружения - Выполнить команду
pre-commit install
для инициализации pre-commit (запускает во время коммитов хуки из файла .pre-commit-config)
Можно вносить изменения в файлы с запущенными контейнерами, изменения будут видны сразу из-за того, что папка с исходным кодом замаунтина в контейнер.
Чтобы создать собственные миграции перейдите в директорию src и создайте миграции при помощи Alembic:
cd src/
alembic revision --autogenerate -m "your comment"
Проверьте созданные миграции в папке src/database/migrations/versions
Примените миграции:
alembic upgrade head
Чтобы добавить библиотеку для тестирования используйте флаг -G test для poetry (poetry add pytest-asyncio -G tests
)
Для запуска тестов перейдите в корень проекта и выполните команду:
make run-tests
Docker создаст отдельную БД для тестов, проведёт миграции и запустит тесты. По окончании тестирования тестовая БД будет удалена автоматически.
Над кодом Backend'а трудились: