Трекер спорта
Реализуйте трекер занятий спортом, который позволяет отмечать дни, в которые пользователь занимался спортом.
Основные возможности проекта
- Календарь для отметки дней занятий спортом.
- Подсчет непрерывной серии дней без пропусков.
- Похвала за достижения (неделя, месяц, два месяца и т.д.).
- Отображение статистики.
- Данные хранятся в localStorage.
Главная страница
На странице должны быть размещены:
- Календарь на текущий месяц.
- Блок с текущей серией (количество дней подряд).
- Статистика (общее количество дней занятий).
- История достижений (похвалы).
Календарь
Календарь отображает текущий месяц. Каждый день в календаре можно отмечать как "день занятий":
- Отмеченные дни - зеленый цвет.
- Пропущенные дни - серый или красный цвет (если день был пропущен в серии).
- Текущий день - выделен рамкой.
При клике на день в календаре можно отметить его как "занимался" или снять отметку.
Непрерывная серия
Сайт подсчитывает, сколько дней подряд пользователь занимался спортом без пропусков:
- Если каждый день отмечен без пропусков, серия продолжается.
- Если хотя бы один день пропущен (не отмечен), серия обнуляется и начинается заново.
- Серия автоматически продлевается, если сегодняшний день отмечен.
Похвала за достижения
Сайт поздравляет пользователя за достижения каждого круглого числа непрерывной серии:
- 7 дней - "Отличная неделя! Так держать!".
- 14 дней - "Две недели тренировок! Здорово!".
- 30 дней - "Месяц тренировок! Ты молодец!".
- 60 дней - "Два месяца! Ты сильный!".
- 90 дней - "Три месяца! Ты герой!".
- 365 дней - "Год тренировок! Ты легенда!".
Каждое достижение сохраняется в истории и отображается на странице с датой получения.
Статистика
На странице отображается статистика:
- Текущая непрерывная серия (количество дней).
- Общее количество дней занятий за все время.
- Процент дней занятий за текущий месяц.
Хранение данных
Все данные (отмеченные дни, история достижений) хранятся в локальном хранилище браузера (localStorage). При перезагрузке страницы данные восстанавливаются.
Дополнительные возможности
- Переключение между месяцами (стрелки вперед/назад).
- Экспорт данных в CSV.