Skip to content

Latest commit

 

History

History
64 lines (40 loc) · 6.56 KB

README_RU.md

File metadata and controls

64 lines (40 loc) · 6.56 KB

Job Challenge

Эти задания предназначены для кандидатов, которые прошли интервью и были отобраны. Задания являются последним этапом в процессе найма. То есть, вопрос о приеме на работу или отказе зависит от результатов выполнения заданий.

Направления

  • Веб-программирование
  • Разработка программного обеспечения
  • Сетевое взаимодействие

Срок выполнения задания

Ссылка на ваш публичный репозиторий с решением должна быть опубликована у нас не позднее 20 Июня 23:59 в разделе General внутри GitHub Обсуждений.

Памятка

Во время выполнения заданий запрещено использовать помощников в виде чат-ботов (ChatGPT, Bing). Вы должны найти решение, опираясь на свои знания. Независимо от того, насколько совершенное решение вы найдете, ваш собственный код повысит вероятность получения лучшего результата.

Веб-программирование

В этом направлении от вас требуется создать MVC для API сервиса без использования каких-либо фреймворков. Это означает, что задачи в сервисе должны быть разделены на отдельные модели и управляться через контроллеры на основе маршрутизаторов, которые управляют конечными точками.

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

В роутерах необходимо обрабатывать отдельные запросы GET, POST, PUT, DELETE и наличие авторизации будет дополнительным плюсом.

Вспомогательные ресурсы:

Разработка программного обеспечения

Создайте программу, используя фреймворк QtC++ для десктопных платформ. Программа должна быть мультиплатформенной, то есть работать на windows, linux и macos одновременно. Будет дополнительным плюсом, если программа сможет подключаться к сети и интегрироваться с веб-программой, упомянутой выше.

Вспомогательные ресурсы:

Сетевое взаимодействие

Написать две программы, сервер и клиент для обмена мгновенными сообщениями (чат) работающих в пределах локальной сети. Для сетевого взаимодействия приложения должны использовать стандартные системные библиотеки Network sockets типа winsock2.h, sys/socket.h и т.п. (использование сторонних фреймворков для сетевого обмена или обмена мгновенными сообщениями не допускается). Приложения могут как иметь графический интерфейс (любой фреймворк на выбор разработчика) так и работать в консольном режиме, значения не имеет. Приложения могут быть написаны под операционную систему Linux, Windows или MacOS по выбору разработчика.

Минимальный функционал сервера:
1) Серверная часть должна принимать подключения от множества клиентов по протоколу TCP/IP;
2) Отображать на экране в реальном времени список IP адресов всех подключенных клиентов;
3) Сообщения пришедшее от одного клиента должны пересылаться всем подключенным в текущий момент клиентам.

Минимальный функционал клиента:
1) Подключаться к серверу по протоколу TCP/IP;
2) Отправлять, принимать и отображать текстовые сообщения.

Дополнительно:
Любой дополнительный функционал, такой как наличие графического интерфейса, авторизация пользователей, сохранение лога сообщений в базе данных, использование шифрования и т.д. может быть реализован на усмотрение разработчика и будет считаться преимуществом при рассмотрении результатов тестового задания.

Вспомогательные ресурсы:

После выполнения этих заданий вы можете загрузить проекты на ваш профиль GitHub и поделиться ими на нашей странице GitHub Обсуждений!