Техническое задание: Доработка системы аутентификации

Текущее состояние (AS IS)

Существует рабочее веб-приложение на стеке PHP, JavaScript и MySQL. В нём реализованы следующие функции:

  • Регистрация нового пользователя с указанием логина и пароля
  • Подтверждение учётной записи по электронной почте
  • Вход в систему по логину и паролю
  • Возможность входа как гостя (без регистрации)
  • Сохранение данных пользователей в базе данных MySQL

Исходный код предоставляется для ознакомления.

Требуемые доработки (TO BE)

1. Изменение модели аутентификации

  • Убрать обязательное поле «Логин» при регистрации.
  • Сделать основным идентификатором пользователя адрес электронной почты (email).
  • Обеспечить вход в систему только по email и паролю.

2. Восстановление пароля

  • Реализовать стандартный механизм «Забыли пароль?».
  • На странице входа добавить соответствующую ссылку.
  • При её нажатии пользователь вводит свой email.
  • На указанный email отправляется письмо с уникальной одноразовой ссылкой для сброса пароля.
  • По переходу по ссылке пользователь попадает на защищённую страницу, где может задать новый пароль.
  • После успешной смены пароля ссылка становится недействительной.

3. Общие требования

  • Все изменения должны быть совместимы с существующей структурой базы данных (возможна адаптация).
  • Функция гостевого входа должна остаться работоспособной.
  • Процесс подтверждения email при регистрации должен быть сохранён.
  • Код должен быть чистым, хорошо прокомментированным и соответствовать принципам безопасности.

Исправление ошибки зависания скриптов в WooCommerce

Требуется устранить проблему зависания и бесконечной загрузки скриптов в корзине интернет-магазина при оформлении заказа. Проблема вызывает критическую нагрузку на сервер. Необходима диагностика и оптимизация кода.

Разработка двух векторных логотипов в формате PNG

Требуется создать два логотипа на основе предоставленных референсов, адаптировав их под чистый векторный стиль с прямыми краями и прозрачным фоном. Итоговые файлы должны быть в растровом формате PNG с заданным разрешением.