Форум PHP тематики

Реализуйте форум PHP тематики, в котором пользователи смогут задавать вопросы на тему PHP. Сайт должен поддерживать регистрацию с разделением по ролям: пользователь, модератор, администратор.

Продумайте структуру базы данных для хранения пользователей, тем и постов. Реализуйте регистрацию и авторизацию пользователей. Настройте серверную часть для работы с API. Все операции по чтению данных (вывод тем, постов, профилей) должны выполняться через SSR для индексации поисковиками. Все операции по записи (добавление, редактирование, удаление, модерация) - через AJAX-запросы без перезагрузки страницы.

Основные возможности проекта

Регистрация и роли

На сайте должна быть реализована система регистрации и авторизации с разделением по ролям:

Главная страница (SSR)

На главной странице форума должен быть выведен список 30 последних тем с пагинацией. Для каждой темы должно быть указано:

Темы должны быть отсортированы по дате последнего поста (сначала новые). Страница генерируется на сервере для полной индексации поисковиками. Также на странице должна быть кнопка "Создать новую тему" для зарегистрированных пользователей (через AJAX).

Страница темы (SSR + AJAX)

На странице темы пользователи размещают свои посты. Страница генерируется на сервере (SSR), но новые посты добавляются через AJAX. Каждая тема начинается с заголовка и первого поста автора темы:

Каждый пост должен содержать:

Возможности для автора поста (AJAX):

Возможности для модератора (AJAX):

Создание новой темы (AJAX)

Зарегистрированные пользователи могут создавать новые темы через AJAX без перезагрузки страницы. Форма создания темы содержит:

Новая тема сразу появляется на форуме и попадает в общий список.

Страница профиля (SSR + AJAX)

На странице профиля пользователь может просматривать и редактировать свои данные. Профиль генерируется на сервере (SSR), редактирование происходит через AJAX.

Пользователи могут просматривать профили других пользователей (только просмотр, без редактирования).

Личный кабинет пользователя (SSR)

В личном кабинете пользователь может управлять своими темами и постами. Страница генерируется на сервере (SSR).

Админ-панель (AJAX)

В админ-панели администратор может управлять пользователями. Все операции выполняются через AJAX без перезагрузки страницы.

Взаимодействие с сервером

Гибридный подход:

Дополнительные возможности