Skip to content

Latest commit

 

History

History
37 lines (28 loc) · 3.37 KB

tech_exercise.md

File metadata and controls

37 lines (28 loc) · 3.37 KB

Дисклеймер

К сожалению, работодатель так и не вышел на связь после выполнения тех. задания (то есть работодатель даже не увидел что оно выполнено, перестав выходить на связь как только вручил задание). Но зато теперь у меня в гитхабе есть готовое решение интересной задачи :) Текст скопирован из файла с ТЗ, ничего не менял.

Тестовое задание для Python разработчика

Тестовое задание необходимо для того, чтобы мы получили представление о том, какой код ты пишешь, и что мы можем ожидать.

Задание

  1. Реализовать простую реферальную систему. Минимальный интерфейс для тестирования.
  2. Реализовать логику и API для следующего функционала:
    • Авторизация по номеру телефона. Первый запрос на ввод номера телефона. Имитировать отправку 4-хзначного кода авторизации (задержку на сервере 1-2 сек). Второй запрос на ввод кода.
    • Если пользователь ранее не авторизовывался, то записать его в базу данных.
    • Запрос на профиль пользователя.
    • Пользователю нужно при первой авторизации присвоить рандомно сгенерированный 6-значный инвайт-код (цифры и символы).
    • В профиле у пользователя должна быть возможность ввести чужой инвайт-код (при вводе проверять на существование). В своем профиле можно активировать только 1 инвайт код, если пользователь уже когда-то активировал инвайт код, то нужно выводить его в соответствующем поле в запросе на профиль пользователя.
    • В API профиля должен выводиться список пользователей (номеров телефона), которые ввели инвайт-код текущего пользователя.
    • Реализовать и описать в README API для всего функционала.
    • Создать и прислать Postman коллекцию со всеми запросами.
    • Залить в сеть, чтобы удобнее было тестировать (например бесплатно на PythonAnywhere или Heroku).

Опционально

  • Интерфейс на Django Templates.
  • Документирование API при помощи ReDoc.
  • Docker.

Ограничения на стек технологий

  • Python.
  • Django, DRF.
  • PostgreSQL.
  • Остальное на ваше усмотрение :)