Skip to content

Instantly share code, notes, and snippets.

@paraekklisiarh
Created October 21, 2023 17:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paraekklisiarh/d64fbbc1de1028aaa7a47ff3fa0650a1 to your computer and use it in GitHub Desktop.
Save paraekklisiarh/d64fbbc1de1028aaa7a47ff3fa0650a1 to your computer and use it in GitHub Desktop.
pixlpark backend

Тестовое задание

Сделать регистрацию пользователя по адресу эл. почты.

Клиент вводит адрес эл. почты, нажимает продолжить Появляется поле, куда надо ввести код, который был сгенерирован системой и отправлен на введенную почту Если код верный -- показать страницу что всё хорошо. Иначе -- выдать сообщение об ошибке.

Технические требования

Web-приложение

  1. Реализация на ASP.NET ( ASP.NET Core)
  2. Сгенерированное письмо уходит или в очередь сообщений (RabbitMQ) или в базу данных.

Сервер отправки писем

  1. Консольное приложение на .NET (.NET Core)
  2. Слушает очередь (или периодически опрашивает базу данных) и получив задание для отправки -- выводит его в консоль (например, 2023.04.10 18:30 test@example.com код: 1234 )

Примечания

  • Реализация через очереди будет бо́льшим плюсом, чем через БД.
  • UI на React, вместо RazorPages/RazorViews будет б́ольши́м плюсом.
  • Локализуемость фраз интерфейса будет плюсом (en/ru)
  • Защита от дудоса будет плюсом (таймеры на отправку, валидация, капча)

Примерное время реализации:

  • Создание клиентской части (1 час)
  • Создание сервера отправки (1 час)

Что вас ждет на работе

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

Вопросы на собеседовании будут касаться алгоритмов и структур данных, платформы .NET и того как работает протокол HTTP (мы пишем веб-приложение).

Стек технологий, который у нас используется:

  • .NET Standard 2.0 , .NET Framework 4.8 , .NET Core 7 (в новых частях проекта)
  • SQL Server / PostgreSQL + Dapper
  • ASP.NET 4.8 (старый код мигрирует на WebApi)
  • React + MobX + ANTD , Knockout
  • RabbitMQ
  • Redis
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment