BSS Meteo Widget
BSS Meteo Widget - це кастомне розширення для TYPO3 v13.4, яке інтегрує офіційні погодні дані MeteoSwiss у TYPO3-сайти за допомогою сучасної data-driven архітектури.
TYPO3 13 LTS
PHP 8.2+
Scheduler & CLI
Content Blocks
JSON-кеш у файловій системі
Огляд
Проєкт реалізує погодний віджет з автоматичним завантаженням даних, структурованим кешуванням і гнучким frontend-відображенням через TYPO3 Content Blocks.
Реалізовано як окреме TYPO3-розширення, орієнтоване на довгострокову підтримку та роботу з реальними API.
Backend-архітектура та обробка даних
- Спроєктовано та реалізовано конвеєр завантаження даних на базі TYPO3 Scheduler і CLI-команд.
- Інтегровано офіційні API MeteoSwiss NOWCAST і FORECAST з підтримкою погодинних, багатогодинних і денних наборів даних.
- Побудовано логіку парсингу та нормалізації для обробки неконсистентних часових міток, часткових даних і історичних перекриттів.
- Реалізовано файлову стратегію кешування, оптимізовану для продуктивності та стабільності фронтенду.
/fileadmin/meteoswiss/{frequency}/{parameter}/{stationId}.json
Розширення TYPO3 та дизайн Content Blocks
- Реалізовано як чисте TYPO3-розширення, повністю сумісне з TYPO3 13 LTS.
- Frontend-інтеграція побудована на TYPO3 Content Blocks, що дозволяє редакторам налаштовувати станції та режими відображення без коду.
- Чітке розділення відповідальностей між обробкою даних, конфігурацією та шаром представлення.
Frontend-інтеграція
- Відображення на базі Fluid із використанням попередньо згенерованих JSON-файлів.
- Без прямих API-запитів із браузера, що забезпечує передбачувану продуктивність і коректне кешування.
- Адаптивні макети, динамічні погодні символи та акуратна робота з ресурсами.
Надійність та продуктивність
- Scheduler-задачі ідемпотентні та безпечні для повторного виконання.
- Часові ряди зберігаються у файловій системі, щоб уникнути перевантаження БД.
Технологічний стек
- CMS: TYPO3 13.4 (LTS)
- Backend: PHP 8.2+, TYPO3 Scheduler, CLI
- Frontend: Fluid Templates, JS, CSS
- Дані: Офіційні API MeteoSwiss, обробка CSV, експорт JSON
- Архітектура: Extension + Content Blocks