Описание: Необходимо разработать простой RESTful API сервис для реферальной системы.
Функциональные требования: регистрация и аутентификация пользователя (JWT, Oauth 2.0); аутентифицированный пользователь должен иметь возможность создать или удалить свой реферальный код. Одновременно может быть активен только 1 код. При создании кода обязательно должен быть задан его срок годности; возможность получения реферального кода по email адресу реферера; возможность регистрации по реферальному коду в качестве реферала; получение информации о рефералах по id реферера; UI документация (Swagger/ReDoc).
Опциональные задачи: использование clearbit.com/platform/enrichment для получения дополнительной информации о пользователе при регистрации; использование emailhunter.co для проверки указанного email адреса; кеширование реферальных кодов с использованием in-memory БД. Readme.md файл с описанием проекта и инструкциями по запуску и тестированию
Стек: использование любого современного веб фреймворка; использование СУБД и миграций (Sqlite, PostgreSQL, MySQL); размещение проекта на GitHub;
Требования к проекту: чистота и читаемость кода; все I/O bound операции должны быть асинхронными; проект должен быть хорошо структурирован. проект должен быть простым в деплое, обеспечивать обработку нестандартных ситуаций, быть устойчивой к неправильным действиям пользователя и т.д.