Тестировщики! Выберите себе работодателя по вайбам→ vibe.habr.com

PHP программист (Laravel, удаленно)

Зарплата

от 40 000 до 80 000 ₽

Требования

Бэкенд, Средний (Middle)PHPLaravelAjaxMySQLJavaScript

Местоположение и тип занятости

Неполный рабочий деньМожно удаленно

Компания

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

Описание вакансии

Условия работы

Требуется PHP-программист в компанию StudyQA на удаленную работу. Стадика - это поисковик образовательных программ и вузов за рубежом.

Требования

  1. Знание PHP 7

  2. Понимание ООП, MVC

  3. Знание Laravel 5

  4. Опыт работы с MySQL (на уровне построения простых запросов с join)

  5. Умение пользоваться git (на базовом уровне)

  6. HTML, CSS, Bootstrap 4 (Верстать не придется, но надо уметь подправить мелкие косяки + добавить что-то на основе существующего)

  7. JavaScript + jQuery + AJAX (на базовом уровне: навесить обработчики форм, делать ajax-запросы, валидация форм и пр.)

Будет плюсом

  1. Опыт работы с Elasticsearch

  2. Опыт написания unit-тестов и интеграционных тестов

Предстоящие задачи

  1. Внедрение Elasticsearch

  2. Разработка утилиты для управления локализациями интерфейса и сущностей

  3. Модификация и оптимизация seo-разделов сайта

  4. Разработка прочего нового функционала

  5. Написание тестов

  6. Исправление багов

Бонусы

Условия оплаты:

Почасовая оплата, частичная занятость:

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/др.