Технологическая карта проекта: Фитнес-приложение
Общая информацияСтатусЗавершен, поддерживаетсяЦель и функциональность
Цель: Создать полноценное веб-приложение для онлайн-фитнеса, позволяющее пользователям находить, добавлять и проходить тренировки с отслеживанием прогресса.Ключевые возможности:- Авторизация и регистрация - безопасный вход/выход с валидацией email и пароля.
- Главная страница - каталог всех доступных курсов с возможностью поиска.
- Страница курса - детальная информация, список направлений, кнопка "Добавить в профиль".
- Личный профиль - персональный список курсов, удаление курса, сброс прогресса, кнопка для начала тренировки.
- Тренировка - интеграция видео, пошаговый список упражнений, сохранение прогресса, отметка о выполнении.
- Адаптивный дизайн - корректная работа на мобильных устройствах, планшетах и десктопах.
- Система уведомлений - информативные тосты (успех, ошибка, предупреждение) вместо стандартных alert.
- Отслеживание прогресса - процент выполнения курса и отдельных упражнений.
Технологический стек
Компонент/ТехнологииФреймворкReact 19ЯзыкTypeScriptСборкаViteМаршрутизацияReact Router DOMСтилизацияSCSS-модулиКачество кодаESLint, PrettierТестированиеVitest, Testing LibraryДеплойVercel (с настроенным SPA-роутингом)Хранение данныхВнешнее API (упоминается в коде)Детали реализации
- Типизация: Использование TypeScript обеспечивает надежность кода и облегчает его поддержку.
- Управление состоянием: Для глобального состояния используется Context API (авторизация, данные профиля).
- API-взаимодействие: Реализованы запросы к внешнему API для получения курсов и управления данными пользователя.
- Маршрутизация: Настроен SPA-роутинг с защищенными маршрутами (доступ к профилю и тренировкам только после авторизации).
- Тестирование: Написаны юнит-тесты для ключевых компонентов и функций, что подтверждает надежность приложения.
Планы по развитию (опционально)
- Добавить возможность создавать собственные тренировки.
- Внедрить систему достижений и наград для мотивации.
- Добавить социальные функции (делиться прогрессом, соревноваться с друзьями).
- Интегрировать дополнительные метрики (калории, частота пульса).