Конструктор трекеров
Реализуйте сайт, с помощью которого пользователи смогут создавать свои трекеры для отслеживания полезной или вредной привычки.
Продумайте структуру базы данных для хранения пользователей, трекеров и отметок. Реализуйте регистрацию и авторизацию пользователей. Настройте серверную часть для работы с API. Все операции должны выполняться через AJAX-запросы без перезагрузки страницы.
Основные возможности проекта
- Регистрация и авторизация пользователей.
- Создание трекеров с настройкой длительности и периодичности.
- Календарь для отметки выполнения привычки.
- Подсчет непрерывной серии дней без пропусков.
- Публичные и приватные трекеры.
- Все операции выполняются через AJAX без перезагрузки страницы.
Регистрация и авторизация
На сайте должна быть реализована регистрация и авторизация пользователей:
- Регистрация - форма с полями: логин, email, пароль.
- Авторизация - форма с полями: логин, пароль.
- Трекеры могут создавать только зарегистрированные пользователи.
Что такое трекер
Трекер представляет собой календарь, в котором пользователь ежедневно (или по расписанию) отмечает, следовал ли он привычке. Трекер подсчитывает непрерывную серию дней без пропусков.
Страница создания трекера
На странице создания трекера должна быть форма с полями:
- Название трекера (инпут).
- Описание трекера (текстареа, опционально).
- Длительность: в днях, месяцах, либо без ограничения по времени.
- Периодичность: каждый день, через N дней, либо в указанные дни недели.
- Переключатель: публичный или приватный трекер.
Список трекеров
На странице списка трекеров пользователь видит все свои трекеры. Для каждого трекера доступны действия:
- Перейти на страницу трекера.
- Перейти на страницу редактирования.
- Удалить трекер (с подтверждением).
На главной странице отображаются публичные трекеры всех пользователей с пагинацией.
Страница трекера
На странице трекера отображаются:
- Название трекера.
- Описание трекера.
- Автор трекера.
- Календарь для отметки дней.
- Текущая непрерывная серия (количество дней подряд без пропусков).
В календаре отмеченные дни выделяются зеленым цветом, пропущенные - красным. При клике на день в календаре можно отметить его как выполненный или снять отметку.
Взаимодействие с сервером
Все операции выполняются через AJAX-запросы:
- При загрузке страницы данные загружаются с сервера.
- При создании, редактировании, удалении трекера или изменении отметки данные отправляются на сервер, после успешного ответа обновляется интерфейс.
Дополнительные возможности
- Статистика: процент выполнения привычки за месяц.
- Уведомления о необходимости сделать отметку.