Skip to content

This is test task for python developer position at company "checkbox"

Notifications You must be signed in to change notification settings

koevgeny10/test_task_for_checkbox

Repository files navigation

Checks

Цей проект - тестове завдання на позицію Python Backend Developer у компанію https://checkbox.ua/

Завдання знаходиться у файлі task.pdf

Технології

Основні технології, які я використав, мали такі версії:

  • Docker Desktop 4.14.1
  • Docker 26.1.1
  • Docker Compose 2.12.2
  • Poetry 1.8.1
  • PostgreSQL 16
  • Python 3.12

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

Змінні оточення

У корені проекту створіть файл .env аналогічний цьому:

POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres
POSTGRES_HOST=postgres
POSTGRES_PORT=5432

JWT_SIGNING_ALGORITHM=RS256
JWT_LIFETIME_MINUTES=2880

Конфігурація

У корені проекту створіть папку configs

Ключі шифрування для JWT

Виконайте команди:

ssh-keygen -t rsa -b 4096 -m PEM -f jwtRS256.key
openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub

У папці configs створіть папку jwt та покладіть у неї отримані файли

Конфіг для pgadmin4

У папці configs створіть папку pgadmin4
У цій папці створіть файл servers.json аналогічний цьому:

{
  "Servers": {
    "1": {
      "Name": "db",
      "Group": "Servers",
      "Port": 5432,
      "Username": "postgres",
      "Host": "postgres",
      "SSLMode": "prefer",
      "MaintenanceDB": "postgres"
    }
  }
}

Також приклад можна знайти за посиланням: https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format

Запуск

Для запуску використовується docker compose з ключем --profiles. Цей ключ контролює режими роботи. Він може приймати одне із значень:

  • prod - режим для проду
  • dev - режим для розробки
  • migrations - режим для роботи з міграціями за допомогою alembic
  • tests - режим для запуску тестів
  • tests_dev - режим для запуску тестів, більш зручний для розробки тестів

Перед першим запуском у режимі prod або dev виконайте команди:

docker compose --profile migrations build
docker compose --profile migrations run migrations alembic upgrade head

Для запуску на проді виконайте:

docker compose --profile prod up --build

Після цього документація до REST API буде доступна за посиланнями:

Для запуску тестів виконайте:

docker compose --profile tests up --build

Для розробки

Встановіть poetry та виконайте:

poetry install --with dev,migrations,tests
pre-commit install

При кожному коміті будуть виконуватися перевірки якості коду. Якщо хоч 1 з перевірок не пройде, коміт не буде створено.

About

This is test task for python developer position at company "checkbox"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published