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