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