avito-tech /
internship_backend_2022
Тестовое задание на позицию стажера-бэкендера
66/100 healthLoading repository data…
avito-tech / repository
Тестовое задание на позицию стажера-бекендера в юнит "Работа"
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Проблема:
В нашей компании есть много различных микросервисов. Многие из них так или иначе хотят взаимодействовать с балансом пользователя. На архитектурном комитете приняли решение централизовать работу с балансом пользователя в отдельный сервис.
Задача:
Необходимо реализовать микросервис для работы с балансом пользователей (зачисление средств, списание средств, перевод средств от пользователя к пользователю, а также метод получения баланса пользователя). Сервис должен предоставлять HTTP API и принимать/отдавать запросы/ответы в формате JSON.
Сценарии использования:
Далее описаны несколько упрощенных кейсов приближенных к реальности.
Требования к коду:
Будет плюсом:
Основное задание (минимум):
Метод начисления средств на баланс. Принимает id пользователя и сколько средств зачислить.
Метод списания средств с баланса. Принимает id пользователя и сколько средств списать.
Метод перевода средств от пользователя к пользователю. Принимает id пользователя с которого нужно списать средства, id пользователя которому должны зачислить средства, а также сумму.
Метод получения текущего баланса пользователя. Принимает id пользователя. Баланс всегда в рублях.
Детали по заданию:
Дополнительные задания
Далее перечислены доп. задания. Они не являются обязательными, но их выполнение даст существенный плюс перед другими кандидатами.
Доп. задание 1:
Эффективные менеджеры захотели добавить в наши приложения товары и услуги в различных от рубля валютах. Необходима возможность вывода баланса пользователя в отличной от рубля валюте.
Задача: добавить к методу получения баланса доп. параметр. Пример: ?currency=USD. Если этот параметр присутствует, то мы должны конвертировать баланс пользователя с рубля на указанную валюту. Данные по текущему курсу валют можно взять отсюда https://exchangeratesapi.io/ или из любого другого открытого источника.
Примечание: напоминаем, что базовая валюта которая хранится на балансе у нас всегда рубль. В рамках этой задачи конвертация всегда происходит с базовой валюты.
Доп. задание 2:
Пользователи жалуются, что не понимают за что были списаны (или зачислены) средства.
Задача: необходимо предоставить метод получения списка транзакций с комментариями откуда и зачем были начислены/списаны средства с баланса. Необходимо предусмотреть пагинацию и сортировку по сумме и дате.
Selected from shared topics, language and repository description—not editorial ratings.
avito-tech /
Тестовое задание на позицию стажера-бэкендера
66/100 healthavito-tech /
Тестовое задание на позицию бекенд разработчика в юнит Авто
11/100 healthtutu-ru /
Тестовое задание на позицию Frontender
42/100 healthavito-tech /
Тестовое задание на позицию стажера-фронтендера
54/100 healthavito-tech /
Тестовое задание на позицию стажёра в iOS
40/100 healthavito-tech /
В ДАННЫЙ МОМЕНТ НЕ АКТУАЛЬНО! Тестовое задание на позицию стажера-бекендера
10/100 health