Skip to content

Sstany/Backend-trainee-assignment-winter-2025

Repository files navigation

Тестовое задание Авито для стажёра Backend-направления (зимняя волна 2025)

Запуск

docker compose up -d

Остановка

docker compose down -v

Тестирование

Запуск E2E и unit тестов:

make tests

Запуск unit тестов бизнес логики с выводом покрытия

make coverage

Вопросы

 Q: Нужно ли хешировать пароль юзера?

 A: Нет. Но если бы SLI были выше можно было бы использовать bcrypt.

Q: Какие минимальные и максимальные ограничения у длины пароля?

A: Минимально - 6, максимально - 20.

Q: Необходима ли консистентость данных при получении info юзера?

A: Нет, по аналогии с реальными банками, допускается получение не 100% актуальных данных(если в данный момент происходит транзакция и ещё не закоммичена, info выведет данные актуальные до этой транзакции)

Q: Где хранить товары магазина?

A: Товары магазина захардкожены с помощью switch case (чтобы не замедлять транзакции), так как их всего 10

Q: Надо ли группировать результат операций send и recieve по отпровителям при выводе info?

A: Нет, info выводит каждую операцию отдельно

Q: Как добавлять приватный и публичный ключ для подписания и валидации JWT токенов?

A: Создаём volume в Docker, где устанавливаем константный путь до секрета. При инициализации сервиса проверяется существование этого файла, если его нет, генерируется секрет и сохраняется по заданному пути внутри volume.

Q: Какой статус возвращать если недостаточно денег при переводе/покупке? Можно ли перевести 0 рублей?

A: Нет, вернем статус 400

Q: Можно ли переводить самому себе?

A: Нет, вернем статус 400.

Q: Какой алгоритм использовать для подписи JWT токена?

A: HS256

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages