Верстка HTML/CSS Понимание основ php Большим плюсом будет опыт работы Bitrix API, понимание архитектуры фреймворка (если нет научим) Опыт написания SQL запросов
Условия:
Реальная перспектива роста График работы 5/2, с 9 до 18 Доброжелательная и компетентная команда Адекватное начальство Офис в центре города Интересные задачи
Доступ к тестовой среде
Админка (Битрикс)
http://assignment.adv-online.ru/ testXX
developer
d2aeb8dfd23dd5cbf9a1b3ee26301db8
login
password
Где testXX – персональная папка. Имя и ftp доступ к ней высланы отдельным письмом.
На основе имеющихся сущностей AUser, ACard, ACardTransact путём наследования разработать в директории /_testXX/orm-classes/ свои классы в своём пространстве имён.
Классы должны поддерживать следующие статические методы (штатные):
Разработать внутри пространства функцию addPoint($user, $point, $card=false), которая:
Разработать другие функции внутри пространства для вывода сгруппированной информации:
select
add
update
delete
getById
Проверяет наличие пользователя и генерирует исключение, если пользователя нет;
Проверяет наличие карты, если номер указан и генерирует исключение, если указанной карты нет;
Создает карту при необходимости (если она не указана). Для новой карты номер должен генерироваться автоматически со следующими требованиями: номер должен быть уникальным, состоять из 8 цифр, проходить валидацию (алгоритм которой описан в задаче #3);
Добавляет баллы на карту;
Записывает транзакцию в соответствующую таблицу.
getUserById – по идентификатору пользователя, возвращает массив с данными пользователя и массив с данными его карт;
getUserByEmail – аналогично предыдущей, но по email пользователя;
getCardInfo – по номеру карты возвращает информацию по карте, по ее владельцу и транзакциям (пригодится для выполнения задачи #3).
Понимание принципов ООП (ключевая оценка);
Знание особенностей и практические навыки в работе с ORM Битрикс.
Критерии оценки:
Номера карт в сущности ACard помимо семи обязательных цифр имеют контрольное число в конце номера.
На тестовой среде через модуль Highload добавлены сущности (таблицы):
Разработать страницу по адресу /_testXX/get-js/ с полем для ввода номера карты. С помощью js организовать валидацию ввода, согласно описанному алгоритму. При успешной валидации с помощью ajax (jquery) должна подгружаться информация по введеной карте, ее владельце и транзакциям (либо информация об ошибке, если карты нет в системе).
Разработать страницу по адресу /_testXX/d7-select/ с выводом полной информации по картам и их владельцам (все поля обеих сущностей) в виде одной таблицы с постраничной навигацией (по 50 записей на странице) и предварительной фильтрацией по полям:
4
Имя пользователя;
Email пользователя;
Номер карты.
К каждой карте может быть привязан только один владелец, либо не привязан вовсе
Для проверки корректности номера существует следующий алгоритм:
У каждого пользователя может быть несколько карт, или не одной
Базовые навыки работы с js;
Понимание принципов безопасности в клиент-серверных приложениях.
AUser – со списком пользователей
ACard – со списком карт
ACardTransact – со списком транзакций по картам
Все цифры номера карты разбиваются по порядковым номерам слева направо;
Цифры с нечётным порядковым номером умножаются на 2;
Если результат умножения больше 9, то из него вычитается 9;
Цифры с чётным порядковым номером остаются как есть;
После преобразования все цифры складываются
Если результат сложения кратен 10 – проверка пройдена.
Качество (культура) кода;
Понимание принципов работы с битрикс на уровне API и компонентов;
Понимание принципов безопасности;
Понимание принципов оптимизации в работе с БД.
ORM
Фильтр выполнить в виде простой формы или (предпочтительней) с помощью компоненты;
Табличную часть вывести в удобочитаемом формате или (предпочтительней) с помощью компоненты;
Максимально оптимизировать выполнение скрипта в отношении взаимодействия с Базой данных.
Критерии оценки:
Критерии оценки:
Требования к готовой странице:
задача:
Задача:
3
Cверстать страницу согласно макету:
2
Допустимо применение css / js фреймворков;
Адаптивная верстка. Перестроение сетки при адаптации на свое усмотрение, с сохранением стилистики страницы;
Наличие анимации. Обязательно: при наведении на активные элементы (обозначены в Figma). Желательно: на остальных интерактивных элементах;
В верхней форме (форма 1) сымитировать неуспешную отправку при клике на кнопку отправить (заказать звонок) из-за ошибок ввода. Оформление в соответствии со стилистикой страницы;
В нижней форме (форма 3) сымитировать успешную отправку при клике на кнопку отправить (стать клиентом) в виде попап-окна с информацией. Оформление в соответствии со стилистикой страницы.
Bitrix D7. Выборка
Первая оценка – исключительно пользовательская. Посмотрим страницу на разных устройствах и разных браузерах, всё потыкаем, попробуем сломать :)
Соблюдение макета;
Качество кода;
Способность выполнять задачи “Под ключ” с учетом наличия явно не описанных деталей в задаче.