Skip to content

Бэкенд часть приложения для индивидуальных планов развития в Alfa-Bank

Notifications You must be signed in to change notification settings

Alfa-PDP/backend

Repository files navigation

AlfaBankHackathon


Python FastAPI SQLAlchemy Pydantic Redis Alembic

Swagger PostgreSQL GitHub Actions

Docker DockerCompose Uvicorn Nginx


Документация Swagger к API проекта доступна ТУТ

Документация Redoc к API проекта доступна ТУТ


Архив со скриншотами ТУТ


Сервис индивидуального плана развития сотрудников

  • MVP:

    • Цель: Проект для отслеживания индивидуальных планов развития.
    • Кто молодец?: Проект выполнен командой №1 в рамках хакатона от Альфа-Банка.
  • Что умеет:

    • Создавать и управлять ИПР.
    • Устанавливать личные цели и задачи.
    • Отслеживать выполнение поставленных задач.
    • Анализировать проделанную работу.
  • Общение:

    • Обратная связь в виде комментариев.
    • Аналитика по ИПР.

Как установить?

Запуск проекта локально в Docker-контейнерах с помощью Docker Compose

Склонируйте проект из репозитория:

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'а трудились:

About

Бэкенд часть приложения для индивидуальных планов развития в Alfa-Bank

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •