Вакансия разработчика + тестовое задание
Основные требования:
Верстка HTML/CSS
Понимание основ php
Большим плюсом будет опыт работы Bitrix API, понимание архитектуры фреймворка (если нет научим)
Опыт написания SQL запросов
Условия:
Реальная перспектива роста
График работы 5/2, с 9 до 18
Доброжелательная и компетентная команда
Адекватное начальство
Офис в центре города
Интересные задачи
ORM
4
Критерии оценки:
  • Понимание принципов ООП (ключевая оценка);

  • Знание особенностей и практические навыки в работе с ORM Битрикс.
getUserById – по идентификатору пользователя, возвращает массив с данными пользователя и массив с данными его карт;

getUserByEmail – аналогично предыдущей, но по email пользователя;

getCardInfo – по номеру карты возвращает информацию по карте, по ее владельцу и транзакциям (пригодится для выполнения задачи #3).
  • Проверяет наличие пользователя и генерирует исключение, если пользователя нет;

  • Проверяет наличие карты, если номер указан и генерирует исключение, если указанной карты нет;

  • Создает карту при необходимости (если она не указана). Для новой карты номер должен генерироваться автоматически со следующими требованиями: номер должен быть уникальным, состоять из 8 цифр, проходить валидацию (алгоритм которой описан в задаче #3);

  • Добавляет баллы на карту;

  • Записывает транзакцию в соответствующую таблицу.
  • select

  • add

  • update

  • delete

  • getById
Разработать другие функции внутри пространства для вывода сгруппированной информации:
Разработать внутри пространства функцию addPoint($user, $point, $card=false), которая:
Классы должны поддерживать следующие статические методы (штатные):
На основе имеющихся сущностей AUser, ACard, ACardTransact путём наследования разработать в директории /_testXX/orm-classes/ свои классы в своём пространстве имён.
JS
3
задача:
Критерии оценки:
  1. Все цифры номера карты разбиваются по порядковым номерам слева направо;
  2. Цифры с нечётным порядковым номером умножаются на 2;
  3. Если результат умножения больше 9, то из него вычитается 9;
  4. Цифры с чётным порядковым номером остаются как есть;
  5. После преобразования все цифры складываются
  6. Если результат сложения кратен 10 – проверка пройдена.
  • Базовые навыки работы с js;

  • Понимание принципов безопасности в клиент-серверных приложениях.
Для проверки корректности номера существует следующий алгоритм:
Разработать страницу по адресу /_testXX/get-js/ с полем для ввода номера карты. С помощью js организовать валидацию ввода, согласно описанному алгоритму. При успешной валидации с помощью ajax (jquery) должна подгружаться информация по введеной карте, ее владельце и транзакциям (либо информация об ошибке, если карты нет в системе).
Номера карт в сущности ACard помимо семи обязательных цифр имеют контрольное число в конце номера.
Bitrix D7. Выборка
2
Задача:
Требования к готовой странице:
Критерии оценки:
  • Фильтр выполнить в виде простой формы или (предпочтительней) с помощью компоненты;

  • Табличную часть вывести в удобочитаемом формате или (предпочтительней) с помощью компоненты;

  • Максимально оптимизировать выполнение скрипта в отношении взаимодействия с Базой данных.
  • Качество (культура) кода;

  • Понимание принципов работы с битрикс на уровне API и компонентов;

  • Понимание принципов безопасности;

  • Понимание принципов оптимизации в работе с БД.
AUser – со списком пользователей

ACard – со списком карт

ACardTransact – со списком транзакций по картам
У каждого пользователя может быть несколько карт, или не одной
К каждой карте может быть привязан только один владелец, либо не привязан вовсе
  • Имя пользователя;

  • Email пользователя;

  • Номер карты.
Разработать страницу по адресу /_testXX/d7-select/ с выводом полной информации по картам и их владельцам (все поля обеих сущностей) в виде одной таблицы с постраничной навигацией (по 50 записей на странице) и предварительной фильтрацией по полям:
На тестовой среде через модуль Highload добавлены сущности (таблицы):
Верстка
1
Критерии оценки:
Требования к готовой странице:
  • Первая оценка – исключительно пользовательская. Посмотрим страницу на разных устройствах и разных браузерах, всё потыкаем, попробуем сломать :)

  • Соблюдение макета;

  • Качество кода;

  • Способность выполнять задачи “Под ключ” с учетом наличия явно не описанных деталей в задаче.
  • Допустимо применение css / js фреймворков;

  • Адаптивная верстка. Перестроение сетки при адаптации на свое усмотрение, с сохранением стилистики страницы;

  • Наличие анимации. Обязательно: при наведении на активные элементы (обозначены в Figma). Желательно: на остальных интерактивных элементах;

  • В верхней форме (форма 1) сымитировать неуспешную отправку при клике на кнопку отправить (заказать звонок) из-за ошибок ввода. Оформление в соответствии со стилистикой страницы;

  • В нижней форме (форма 3) сымитировать успешную отправку при клике на кнопку отправить (стать клиентом) в виде попап-окна с информацией. Оформление в соответствии со стилистикой страницы.
Cверстать страницу согласно макету:
Где testXX – персональная папка. Имя и ftp доступ к ней высланы отдельным письмом.
password
login
d2aeb8dfd23dd5cbf9a1b3ee26301db8
developer
http://assignment.adv-online.ru/ testXX
Админка (Битрикс)
Доступ к тестовой среде
Откликнуться на вакансию

hello@dojo-media.ru
+7 (930) 119-22-50

г. Ярославль, ул. Республиканская,
д. 3, к.6, оф. 217
УСЛУГИ
  • Брендинг
  • Разработка сайтов
  • Поддержка сайтов
  • Контекстная реклама
  • SMM
  • SEO
ПОРТФОЛИО
  • Брендинг
  • Лендинг
  • Tilda
  • Корпоративный сайт
  • Интернет-магазин
  • Личный кабинет
  • Контекстная реклама
  • SMM
  • SEO
Dojo media
  • Работа / стажировка
  • О нас
  • Блог
  • Контакты