Skip to content

Test task for Research Institute - "Special education automation"

Notifications You must be signed in to change notification settings

qustoo/FastAPITestTask

Repository files navigation

Тестовое задания СпецВузАвтоматика

Техническое задание

  Проект необходимо реализовать на FastAPI, в качестве БД MongoDB. 
  Создать веб приложение, которое предоставляет REST интерфейс к базе данных клиентов компании:

  Есть возможность просмотреть список клиентов, отфильтровать пользователя по имени и фамилии, 
  в списке отсортировать по любому полю, удалить или добавить пользователя.
  В карточке пользователя (детальный просмотр) должно отображаться: имя, фамилия, возраст, дата рождения и фото.

   Реализовать выгрузку всех карточек клиентов в xlsx файл.

  Страница голосования — будут отображаться все фото пользователей и под каждым фото можно кликнуть +1. 
  Также под каждым фото виден текущий счет. 
  Если счетчик достигает 10, то за фото нельзя больше голосовать. 
  Предусмотреть, что обновление счетчика может происходить одновременно во многих процессах.

Запуск приложения

  • Получите копию репозитория
https://github.com/qustoo/FastAPITestTask
  • Заполните файл .env-non-dev переменными окружения, подмените его на .env
LOG_LEVEL = DEBUG/INFO
DB_TYPE = REMOTE/LOCAL

REMOTE_DB_USER = username
REMOTE_DB_PASS = password

LOCAL_DB_HOST = localhost
LOCAL_DB_PORT = 123

DB_BOX = sandbox
DB_COLLECTION = usersbox

REDIS_HOST = localhost
REDIS_PORT = 123
  • Создайте виртуальное окружение, перейдите в него, и установите зависимости
make create_env
make install_depends
  • Форматеры,линтеры и сортировка импортов:
make black flake8 isort
  • Запуск локально
make run
  • Запуск через докер
make up
  • Остановка контейнера
make down

Documentation

Screenshots

All users

All hotels in Swagger

Filter users by name,surname

Login page

Details file information

Show and download file