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