О сайте
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).