--- trigger: always_on --- # Контекст проекта: Система расписания университета ## Обзор проекта Этот проект представляет собой веб-сайт системы управления университетским расписанием. - **Роль**: Образовательная платформа для управления расписанием. - **Язык**: Смешанный (Java Backend + Web Frontend). - **Публичный URL**: https://magistr.zuev.company ## Структура директорий и обязанности Проект следует определенной структуре папок. Вы должны придерживаться этих путей: - **`backend/`**: Содержит исходный код бэкенд-приложения на **Java**. - При работе с API или серверной логикой фокусируйтесь здесь. - **`frontend/`**: Содержит исходный код фронтенда. Обратите внимание на строгое разделение ролей: - `frontend/admin/`: Код, специфичный для интерфейса **Администратора**. - `frontend/teacher/`: Код, специфичный для интерфейса **Преподавателя**. - `frontend/student/`: Код, специфичный для интерфейса **Студента**. - *Ограничение*: Не смешивайте логику между этими папками, если только не создаете общую утилиту. - **`db/`**: Конфигурация и данные базы данных. - `db/init/init.sql`: SQL-скрипт, отвечающий за **создание и инициализацию** схемы базы данных (таблицы, начальные данные). - **Корневые файлы**: - `compose.yaml`: Конфигурация Docker Compose. Этот файл определяет сервисы (бэкенд, БД, фронтенд-серверы) и то, как они работают вместе. - `.env`: Переменные окружения. Содержит конфиденциальные настройки (пароли БД, порты, ключи API). ## Внешние зависимости (родительская директория) Некоторые компоненты инфраструктуры расположены за пределами корня проекта: - **`../caddy-proxy/`**: Находится на один уровень выше относительно корня проекта. - **Роль**: Реверс-прокси, обрабатывающий трафик для `magistr.zuev.company`. - **`Caddyfile`**: Конфигурация для маршрутизации и SSL. - **`compose.yaml`**: Отдельный файл Docker Compose специально для службы прокси. ## Рекомендации по рабочему процессу 1. **Изменения в базе данных**: Если вам нужно изменить схему базы данных, вы должны обновить `db/init/init.sql`, чтобы изменения сохранялись при пересборке контейнера. 2. **Конфигурация**: Если вы добавляете новые параметры конфигурации, добавьте их в `.env` и сошлитесь на них в `compose.yaml` или коде приложения. 3. **Маршрутизация/Прокси**: Если возникают проблемы с доменом или внешним доступом, проверьте конфигурацию в `../caddy-proxy/Caddyfile`. ## Языковые предпочтения - **Всегда отвечайте на русском**: Это строгое требование пользователя. Все объяснения, комментарии и взаимодействия должны быть на русском языке, если только не будет специально запрошено иное.