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