Skip to content

Тестовое задание для SIDUS HEROES

Notifications You must be signed in to change notification settings

jellex/sidus_test_task

Repository files navigation

Sidus test task

Тестовое задание для бэкенд-разработчика Sidus Heroes.

Требуется написать простой апи при помощи FastAPI, подключенный к Postgresql БД.

Условия:

  1. В базе данных должна быть таблица user с произвольными столбцами;
  2. Описание и работа с БД при помощи SQLalchemy;
  3. В апи должно быть три эндпоинта - get_user, сreate_user, update_user;
  4. Изменять поля юзера может только он сам (нужна авторизация);
  5. Результат get_user должен кешироваться;
  6. При измении полей юзера кеш должен сбрасываться (во всех воркерах);
  7. Докерфайл или иной способ развернуть проект и проверить работу апи;
  8. Покрытие тестами;
  9. Asyncio;
  10. PEP-8.

Приветствуются любые дополнительные фичи с применением знакомых технологий на свой вкус. Это могут быть, например, другие связанные таблицы БД cо сложными запросами к ним, публикация сообщений о регистрации юзера в брокер сообщений, выполнение отложенных задач при помощи Сelery и т.д.

Подробности по проекту

Директории

  • api - содержит эндпоинты, обрабатывающие запросы
  • clients - клиенты для работы с внешними системами (в данном случае системы хранения данных)
  • config - конфигурационные файлы
  • models - модели для работы со структурами данных (используются и как доменные модели, и как модели для БД PostgreSQL, и как REST модели)
    • services - сервисы для работы с БД PostgreSQL
  • services - различные сервисы, такие как: хранящие в себе бизнес-логику (UserService), вспомогательные сервисы (HasherService, CachingService)
  • tests - тесты
  • utils - небольшие вспомогательные функции для определённых задач, которые не удалось поместить в какой-то сервис

Запустить проект можно командой

docker-compose up

About

Тестовое задание для SIDUS HEROES

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published