Основные изменения:
- Предупреждение о неактуальности расписания:
* Добавлен баннер предупреждения при использовании fallback кэша
* Добавлено toast уведомление о возможной неактуальности данных
* Баннер показывает возраст кэша в удобочитаемом формате
* Автоскролл с учетом рендеринга баннера
- Debug опции в админ-панели:
* Добавлена секция с аккордеоном для debug опций (только в dev режиме)
* Опции: принудительное использование кэша, пустое расписание, ошибка, таймаут, информация о кэше
* Все опции с тумблерами для удобного управления
* API endpoint обновлен для поддержки debug настроек
- Структурные изменения:
* Создан компонент Accordion для shadcn/ui
* Расширены типы AppSettings для поддержки debug опций
* Компонент баннера размещен внутри Schedule компонента (следуя правилам проекта)
* Добавлен файл .cursorrules с правилами для AI ассистента
- Исправления:
* Исправлена сериализация undefined значений в getServerSideProps
* Улучшена логика автоскролла при использовании fallback кэша
* Убраны лишние отступы у баннера предупреждения
- Зависимости:
* Добавлен @radix-ui/react-accordion для компонента аккордеона
- Прочие изменения:
* Обновлены настройки в settings.json
* Изменения в старых файлах (old/README.md, old/old-schedule.txt)
* Обновления в API endpoints админ-панели
- Добавлены таймауты (8 сек) для запросов расписания
- Реализована навигация по неделям с поддержкой параметра wk
- Улучшено кэширование с автоматической очисткой старых записей
- Добавлена валидация параметров в getSchedule
- Улучшен UI загрузки с анимированными сообщениями и предупреждениями
- Оптимизирована обработка ошибок и очистка памяти JSDOM
- Обновлены зависимости проекта
- Добавлена документация для старых файлов
Основные изменения:
Админ-панель:
- Создана защищенная паролем админ-панель по пути /admin
- Реализована система авторизации с сессионными куками
- Добавлен CRUD для управления группами (создание, редактирование, удаление)
- Добавлено поле "курс" (1-5) для каждой группы с возможностью редактирования
Структура данных:
- Миграция групп из TypeScript файла в JSON формат (groups.json)
- Обновлена структура данных: добавлено поле course
- Реализована автоматическая миграция старых данных в новый формат
- Создан groups-loader для работы с JSON файлом
Главная страница:
- Создана главная страница с аккордеоном по курсам (1-5)
- Группы сгруппированы по курсам для удобной навигации
- Добавлены кнопки: "Добавить группу", переключение темы и GitHub
- Убрана верхняя навигация с главной страницы
Навигация:
- Добавлена кнопка "К группам" в начало навигации на страницах расписания
- На мобильных устройствах скрыты кнопки групп, оставлена только кнопка возврата
- Улучшена адаптивность навигации
Технические улучшения:
- Исправлена проблема с tailwind-scrollbar-hide (заменен плагин на CSS класс)
- Обновлены все компоненты для работы с новой структурой данных групп
- Добавлена поддержка переменных окружения ADMIN_PASSWORD и ADMIN_SESSION_SECRET
- Pin all dependencies to stable versions (remove 'latest')
- Update lucide-react to 0.554.0 for React 19 compatibility
- Add Docker support with Dockerfile and docker-compose.yml
- Update TypeScript target to ES2022
- Add .nvmrc and netlify.toml for deployment configuration
- Update README with Docker deployment instructions