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