Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Есть задача по завершению модернизации личного кабинета спортсмена.

Что нужно доработать (backend + frontend):

1) Создать страницу отображения существующих членских взносов, по существующему базовому шаблону страницы. Данные берутся из простой таблицы в 4-5 полей, без лишних JOIN.

2) Создать страницу для осуществления платежа: поле выбора года (текущий или следующий) и выбор способа оплаты (4-5 видов из уже существующего эквайринга). Контроллер должен записать в БД "заказ" на оплату и пользователь перенаправляется на внешний сайт существующего эквайринга, с заполненными параметрами. Платежные данные не спрашиваются и не хранятся.

3) Расширить логику регистрации. Сейчас поле логина - это электронная почта, нужно добавить способ смс. Нужно добавить сервис отправки смс (есть только минимальный код контроллера, учетная запись есть, тестовые смс на smsc.ru ходят).

4) Сделать более удобным восстановление доступа: не только посредством электронной почты, но и кода в смс. Оба канала восстановления равнозначны.

5) На странице изменения данных пользователя нужно реализовать upload собственной фотографии, с возможностю ресайза перед отправкой на сервер. Есть относительно современный JS-модуль, который недавно (в 2019г) был прикручен к старой версии сайта, но можно взять и другой. Backend должен сжать фото, если размер превышает определенный порог. Фото для всех одно, без хранения истории: пользователь загружает новоей - старое затирается.

6) Сделать более корректный вывод членской карточки в PDF. Существующая проблема в формировании PDF, если получается больше одной страницы. Сейчас это 3 отдельных контроллера по 50 строк с использованием DOMPDF, на основе простого html-шаблона. Сделано в духе Yii2, можно переписать.

7) По итогу предыдущих пунктов нужно дооформить страницу вывода сводной информации о пользователе: ФИО, почта/телефон, адрес, фото, дети (если есть), ссылка на скачивание PDF.

8) Скачивание (и хранящегося статичного личного фото, и динамически генерируемого PDF) должно быть защищено в рамках текущей сессии пользователя.

9) Необходимо реализовать контроль перед завершением регистрации: надо просмотреть таблицу существующих пользователей и при совпадении ФИО + региона (и/или даты рождения) выдать блокирующее предупреждение, что регистраця не возможна. Вывести информационный блок на случай, если доступ потерян, состоящий из списка адресов почты и телефонов в виде aa******bb@y****x.ru или +7(91*)***-**-11.

10) Необходимо реализовать страницу: при завершении регистрации надо просмотреть альтернативную таблицу "старых" пользователей по различным критериям совпадения ФИО/региона/ДР и предложить связать новую учетную запись со "старым" пользователем. Критерии поиска в старой версии запрограммированы.

Что есть сейчас:

1) Дизайн сверстан (Sass, BS3 + Twig, webpack): страницы регистрации, авторизации, просмотра и изменения данных.

2) Настроен роутинг symfony 4, сгенерированы сущности БД doctrine 2.0,

настроен security/argon2i, прикручен monolog, guzzle для отправки смс.

3) Из логики приложения: работает базовая регистрация и авторизация,

созданы контроллеры по изменению данных профиля пользователя.

4) "Перегруженных" контроллеров нет и не планируется. ООП выдержан.

5) Проект под git. БД MySQL.

6) Сейчас используется php7.2 (nginx + php-fpm). Планируется апгрейд на php7.3.

Дополнительные пояснения:

1) По правке стилей - работы, скорее всего, уже не потребуется. По доработке twig-шаблонов, да. Добавить контроллеры/сервисы - да. Сложной бизнес-логики нет.

2) Предположительный объем работ по списку 20 н/ч (привожу ориентировочно, для оценки масштаба).

3) При запуске проекта возможны дополнительные моменты (например, дописать контроллер или добавить 1-2 поля к данным пользователя) - их можно обговорить отдельно, например, с почасовой оплатой.

4) AJAX не используется. Но при наличии желания и опыта разработчика можно прикрутить API Platform/GraphQL/JWT, поднять отдельный фронт на Vue (сейчас крайний момент, когда это еще можно сделать, не тратя больших сил на переделки). Тогда объем работ можно предполагать 35-40 н/ч (суммарный, и опять же, ориентировочно).

5) Весь указанный объем работ при желании можно разбить на части, с оплатой каждого блока отдельно - обговаривается.

6) Запланирован следующий этап развития системы: развитие нового блока - результаты соревнований, сдача квалификационных экзаменов и подобные моменты.

Желателен человек с опытом разработки symfony/laravel, чтобы не тратить время на вход в технологии.

3 года назад
judo2012
Павел 
44 годаРоссия
3 года в сервисе
Был
3 года назад