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