Страница загружается

О сайте

GymBoss - полнофункциональный интернет-магазин спортивных товаров, разработанный с нуля как full-stack веб-приложение. Проект создан для демонстрации навыков backend- и frontend-разработки, проектирования баз данных, работы с Docker, веб-серверами и внешними API.

Архитектура

Сайт построен как многостраничное приложение (MPA) по паттерну MVC: собственный bootstrap, роутер с разбором URL, контроллеры и раздельные шаблоны представлений. Код организован по PSR-4 с использованием пространств имён и автозагрузки через Composer. Применяется Dependency Injection для слабой связанности компонентов. В системе реализовано разграничение доступа по ролям: гость, зарегистрированный пользователь, пользователь с подтверждённой почтой.

Технологический стек

  • Backend: PHP (ООП, vanilla), MySQL, Composer.
  • Frontend: JavaScript (vanilla, ES6+ модули), HTML5, CSS3.
  • Инфраструктура: Docker, Docker Compose, Nginx + PHP-FPM.
  • CI/CD: GitHub Actions - автоматические проверки кода при push и pull request.
  • Дизайн: Figma.

Функциональность

  • Регистрация и авторизация пользователей, подтверждение email.
  • Личный кабинет с возможностью редактирования и удаления аккаунта.
  • Оформление и оплата заказов.
  • Просмотр истории и отмена заказов.
  • Работа с формами и валидация вводимых данных на клиенте и на сервере.

Frontend: вёрстка и доступность

Вёрстка семантическая: используются корректные теги разметки (header, main, nav, article, section, footer). Интерфейс адаптивен под мобильные и десктопные устройства.

Базовые требования доступности (a11y)

  • Фокус и видимые состояния :focus для интерактивных элементов.
  • Подписи к полям форм через label, связанные с инпутами.
  • Атрибуты alt для содержательных изображений.
  • Корректные ARIA-атрибуты и роли там, где это необходимо.

Интеграции с внешними сервисами

  • ЮKassa - приём онлайн-платежей через официальный SDK.
  • Yandex Maps API - выбор пункта выдачи и адреса доставки на карте.
  • DaData API - подсказки и валидация адресов.
  • Resend API - транзакционные email-уведомления.
  • Google reCAPTCHA v3 - защита критичных операций от ботов.

База данных

Спроектирована реляционная схема MySQL: таблицы пользователей, товаров, заказов и связующие сущности. Используются индексы для ускорения частых запросов, транзакции для критичных операций (оформление заказа, изменение баланса), подготовленные запросы для защиты от SQL-инъекций.

Безопасность

В проекте применяются современные практики безопасной веб-разработки:

  • Строгая валидация входных данных на backend.
  • Хэширование паролей.
  • Защита от XSS, экранирование вывода.
  • Content Security Policy (CSP).
  • Безопасные cookie.
  • Rate limiting на уровне Nginx.
  • Транзакции БД и логирование с контекстом.
  • Корректная обработка ошибок через try/catch и осмысленные HTTP-статусы.

SEO

  • Страницы политики конфиденциальности (составлена с учётом требований ФЗ-152 "О персональных данных") и контактов.
  • Динамический robots.txt.
  • Собственный скрипт генерации актуального sitemap.xml.
  • Корректные meta-теги и заголовки страниц.

Исходный код и контакты

Исходный код проекта доступен на GitHub.

Связаться со мной: mocus8@gmail.com, WhatsApp, Telegram (@mocus8).