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