Мы завершили первый этап разработки платформы «Талант-центр». Ниже — обзор того, что уже создано: архитектура базы данных, система авторизации, роли, политики доступа и многое другое.
Каждый блок ниже — это часть технического фундамента, на котором строится вся платформа.
Спроектировано и развёрнуто 10 таблиц: пользователи, организации, конкурсы, заявки, дипломы, категории и журнал действий. Все связи между таблицами настроены с каскадным удалением и индексацией.
Полноценная авторизация: регистрация, вход, подтверждение email, сброс пароля. Пользователи могут указать фамилию, имя и отчество при регистрации.
Три роли: администратор, модератор и участник. Каждая роль видит свою панель управления и имеет свой набор прав. Middleware проверяет роль на каждом запросе.
Структура для организаций с гибкой системой прав представителей. Каждому представителю можно выдать отдельные разрешения: создание конкурсов, управление и оценка заявок.
Четыре политики авторизации для ключевых моделей. Три middleware для проверки ролей и прав. Организация должна пройти верификацию перед созданием конкурсов.
Сервис логирования действий, сидеры тестовых данных, пять PHP-перечислений для статусов. Панели управления для каждой роли с базовой статистикой.
10 таблиц спроектированы с учётом всех этапов проекта — от регистрации до выдачи дипломов.
| Таблица | Назначение |
|---|---|
| users | Все пользователи платформы с ролями и связью родитель-ребёнок |
| organizations | Организации-организаторы конкурсов со статусом верификации |
| organization_user | Связь пользователей с организациями и гранулярные права |
| contests | Конкурсы с датами, статусами и фоном для дипломов |
| contest_categories | Категории и номинации внутри каждого конкурса |
| applications | Заявки участников с файлами, статусами и оценками |
| diplomas | Сгенерированные дипломы в формате PDF |
| action_logs | Журнал действий с IP-адресами и метаданными |
| sessions | Активные сессии пользователей |
| password_reset_tokens | Токены для безопасного сброса паролей |
Каждая роль видит свою панель управления и имеет чётко определённые возможности.
Полный список задач первого этапа с отметками о выполнении.