PHP программист (Laravel, удаленно, 4 часа в день)
Зарплата
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Требуется PHP-программист в компанию StudyQA на удаленную работу. Стадика - это поисковик образовательных программ и вузов за рубежом.
Требования
Знание PHP 7
Понимание ООП, MVC
Знание Laravel 5
Опыт работы с MySQL (на уровне построения простых запросов с join)
Умение пользоваться git (на базовом уровне)
HTML, CSS, Bootstrap 4 (Верстать не придется, но надо уметь подправить мелкие косяки + добавить что-то на основе существующего)
JavaScript + jQuery + AJAX (на базовом уровне: навесить обработчики форм, делать ajax-запросы, валидация форм и пр.)
Будет плюсом
Опыт работы с Elasticsearch
Опыт написания unit-тестов и интеграционных тестов
Предстоящие задачи
Разработка утилиты для управления локализациями интерфейса и сущностей
Модификация и оптимизация seo-разделов сайта
Обновление админки сайта
Подключение лендингов на поддомены
Разработка прочего нового функционала
Написание тестов
Исправление багов
Бонусы
Условия оплаты:
Почасовая оплата, частичная занятость:
5/2 по ~4 часа в день = 40 000 руб.
Дополнительные инструкции
Тестовое задание
Реализовать главную страницу с произвольным контентом - текст + картинки. При клике на картинку, она отображается в увеличенном виде во всплывающем окне (достаточно прикрутить любую jQuery-библиотеку). В панели администрирования суперадминистратор должен иметь возможность редактировать контент главной страницы
Реализовать 2 страницы с формами "заявок", включающими поля (имя, фамилия, телефон, емейл, уровень образования), и рандомным контентом (текст-рыба + картинки, видео, что угодно).
Форма отправляется ajax-запросом. После обработки формы следует выводить сообщение о результате успешно/не успешно. Например, можно выводить блок c соответствующим сообщением.
Уровень образования представляет собой дропдаун со следующими вариантами: Bachelor, Master, PhD. Все поля обязательны к заполнению, для валидации на фронтэнде использовать стандартную HTML 5 валидацию.
Каждая из этих страниц предназначена для разных "клиентов" (т.е. например, это заявки на участие в мероприятии A и мероприятии B).
Заявки пользователей сохранять в отдельные таблицы в БД.
Также следует сохранять ip, с которого совершена заявка и utm-метки (достаточно просто сохранить весь хвост get-запроса).
После заполнения заявки пользователю приходит письмо на почту с текстом вроде "Спасибо, что зарегистрировались на наше мероприятие. Бла-бла-бла". Представителям мероприятия приходит письмо с текстом "у вас новая заявка" и данными заполненной формы. Формы отправляются через очереди в Laravel.
Реализовать раздел административной панели, в котором будет доступен список заявок, а суперадминистраторы имеют возможность удалять существующие заявки. IP автора заявки и utm метки видны только суперадминистратору.
Пользователь с правами организатора мероприятия A не может видеть заявки мероприятия B, а представитель мероприятия B не может видеть заявки на мероприятие A.
Требования к фронтэнду:
Bootstrap 4 + jQuery
Требования к бэкенду:
PHP 7.1+
Laravel 5.5+
MySQL 5.7
PHPDoc и простейшие unit-тесты приветствуются.
Результат
Результат работы необходимо представить в виде репозитория на github/bitbucket/др.