PHP: Форма + Валидация + DB + API + GEO + Ротация + Email

40 000 руб. за проект • безналичный расчёт, электронные деньги
26 апреля 2018, 21:10 • 4 отклика • 48 просмотров
PHP: Форма + Валидация + DB + Waiting Screen + API + GEO + Ротация + Отправка Emails

1) Заверстать форму из 3х шагов.
2) Сделать валидацию данных которые вводит пользователь.
3) Сохранять данные из формы в БД.
4) Сделать Waiting Screen
5) Подключить 4 различных API. (Есть готовые примеры на php)
6) Подключить Geo из Maxmind GeoLite2
7) Сделать ротацию отправки данных на API согласно правилам.
8) Отправка Email.
9) Интеграция с ВП


-- Заверстать форму из 3-х шагов --
1) Форма должна быть идентичной как на сайте https://loansolo.com/apply
2) Изначально можно сделать тестовый каркас + валидацию. После получения дизайна, повестить стили.


-- Валидация входящих данных --
1) Для каждого поля формы существует свое правило. После каждого действия пользователя, инпут должен валидироваться, как на примере - https://loansolo.com/apply
2) При неверно введенных данных показывать сообщение об ошибке.
3) Сделать неактивными в календаре выходные дни, праздничные дни, даты из прошлого, даты на более чем 2 месяца вперед.
3.1) Реализовать зависимость Next Paydate 2, от данных из инпута I Get Paid и Next Paydate 1.
4) Валидация и работа формы должна быть идентичной https://loansolo.com/apply.


-- DB --
1) Валидированные данные из формы заностить в БД.
2) Если лид продался, помечать в БД, что данный пользователь сконвертировался.
3) Помимо данных из формы, заносить в БД: ip, browser, screen resolution.
4) Заносить в БД данные из каждого шага формы, а не только когда форма полностью заполнена.
5) Вести учет тех, кто подписан на нас в Twitter, FB, G+/


-- Waiting Screen --
1) После того, как данные прошли валидацию, они отправляются на API урл.
2) Ответ от апи может быть получен втечении 5 - 180 секунд.
3) Во это время, пользователю показывается экран ожидания, где ему пишут, что ваш запрос обрабатывается.
3.1) Важно повесить запрет или предупреждение на закрытие или refresh окна!


-- API --
1) Данные из формы должны быть отправлены на апи урл.
2) У одного АПИ уже есть php клиент, 2 других имеют схожую структуру и данные отправляются через POST ARRAY, 4 надо курлом слать XML файл.
3) У каждого из 4х API свой формат названия полей и данных, поэтому предварительно надо будет проводить простейшую конвертацию для совместимости.
4) Получать ответ от АПИ о конвертации пользователя. Заносить в БД статус - сконвертировался или нет.


-- GEO --
1) Требуется определять GEO пользователя - его страну, штат, город. Для этого используется MaxMind LiteDB2.
2) Необходимо настроить автоматическое обновление данной БД через cron.


-- Ротация --
1) Необходимо сделать ротацию АПИ согласно сценариям.
2) Уникальность пользователя определяется по его IP. Уникальность для каждого пользователя обнуляется 1 раз в 24 часа.
3) Возможные сценарии
3.1) Распределение по порядку: Пользователь заполнил форму, его данные отправляются на АПИ А. Пользователь втечении 24-х часов повторно заполнил форму, данные отправились на АПИ Б, и т.д. на 5-й раз данные отправляются на дефолтовый АПИ.
3.2) Распределение равномерное: Равномерное распределение пользователей по разным АПИ. Т.е. если у нас 4 АПИ, на каждый АПИ приходится 25% траффика.
3.3) Распределение по географии: Американцев шлем на один АПИ, другим странам показываем другую форму, или другую рекламу.
4) Всегда есть дефолтовый АПИ, куда отправляются данные пользователя, если условие не сработало.


-- Почта --
1) Необходимо после заполнения формы, отправлять пользователю письмо, но не всем и не всегда.
2) Предусмотреть несколько категорий ответов и несколько ответов для каждой категории.
3) Отправка почты как в автоматическом режиме, так и в ручном, только выборочным пользователям.
4) Сценарии:
4.1) Человек не заполнил форму до конца, но есть его email. Отправляем ему письмо.
4.2) Человек заполнил форму, но не получил одобрение кредита.
4.3) Заполнил форму, одобрили.
4.4) Еженедельная рассылка: всем, всем одобренным, все неодобренным.
4.5) Отправка писем подписчикам соц. сетей.
5) Изначально, для тестов, работать должно в ручном режиме, затем можно перевести все на автомат.


-- Интеграция с ВП --
1) Желательно все это дело интегрировать в админку ВП.


Результат:
На выходе нужен:
1) SQL файл
2) Необходимые новые php файлы.
3) СSS, JS файлы, которые будут добавлены к основному сайту.


Требования к разработчику:
1) Соблюдение сроков, умение адекватно оценивать объем работы.
2) Умение работать самостоятельно, дебагать самостоятельно.
3) Писать чистый и понятный код с комментариями, что бы потом можно было разобраться быстро.
4) Быть на связи весь рабочий период.
5) При отсутвии связи, работа прекращается, что бы потом без обид и претензий.


Условия работы:
1) Работаю без предоплаты, но возможна поэтапная оплата.
2) Цена 40,000 руб, но можно обсудить.
3) После согласования сроков и стоимости, программист составляет карту работы, а так же документ, где задает вопросы.
Я отвечаю на все вопросы.
4) Разработка на php.


!Укажите обязательно ваш любимый php IDE в первом сообщении!
С уважением,
Дмитрий.