Стена для записей
Реализуйте стену, на которой пользователи смогут оставлять свои посты, а также комментировать их. Продумайте структуру базы данных для хранения постов, комментариев, лайков и дизлайков. Настройте серверную часть для работы с API. Все операции должны выполняться через AJAX-запросы без перезагрузки страницы. Скачать верстку для проекта.
Основные возможности проекта
- Вывод постов с бесконечной прокруткой (AJAX).
- Форма отправки поста (AJAX).
- Комментарии к постам с возможностью ответа (AJAX).
- Лайки и дизлайки постов (AJAX).
Главная страница
На странице должны быть выведены последние 30 постов в порядке убывания даты. По мере прокрутки страницы вниз подгружаются новые посты (бесконечная прокрутка). Все данные загружаются через AJAX-запросы к серверу.
Форма отправки поста
Внизу страницы закреплена форма отправки поста:
- Инпут для ввода имени автора.
- Текстареа для ввода текста поста.
- Кнопка "Отправить".
Отправка поста выполняется через AJAX без перезагрузки страницы. После успешной отправки новый пост добавляется в начало списка.
Комментарии
К каждому посту можно оставить комментарий. Комментарии выводятся под постом. Также есть возможность ответить на каждый комментарий (вложенные комментарии). Добавление комментариев выполняется через AJAX без перезагрузки страницы.
Лайки и дизлайки
Посты можно лайкать и дизлайкать. Кнопки лайка и дизлайка отображаются рядом с каждым постом. При нажатии на кнопку количество лайков или дизлайков обновляется через AJAX без перезагрузки страницы. Один пользователь может поставить только один лайк или дизлайк под постом (по IP-адресу или сессии).
Взаимодействие с сервером
Все операции выполняются через AJAX-запросы:
- GET /api/posts - получение постов (с пагинацией).
- POST /api/posts - добавление нового поста.
- GET /api/posts/:id/comments - получение комментариев к посту.
- POST /api/comments - добавление комментария.
- POST /api/posts/:id/like - лайк поста.
- POST /api/posts/:id/dislike - дизлайк поста.
Дополнительные возможности
- Отображение времени публикации поста ("5 минут назад", "2 часа назад").
- Кнопка "Показать еще" вместо бесконечной прокрутки.