Automated weather monitoring and personalized temperature alerts
Symfony Weather Reminder is a weather-fetching gateway providing data caching, user subscription management, and automated alerts triggered by temperature thresholds.
This application operates entirely within a Docker container environment and is based on the php-docker-dev-env architecture.
Stateless security model via lexik/jwt-authentication-bundle. User registration and secure token exchange for protected API access.
Implements a Cache-Aside pattern. Checks WeatherCacheRepository for fresh data before fetching from external APIs.
Support for tempLowerBoundary and tempUpperBoundary. Uses Stateful Alerting to prevent notification spam.
Decoupled logic using Symfony Messenger and Redis. Distributed across specialized worker containers.
The scheduler identifies stale cities in the cache based on WEATHER_CACHE_TTL_MINUTES and initiates the update chain.
Workers fetch live data from external providers, update the WeatherCache, and signal the detection stage.
Compares data against subscriptions. If a threshold is crossed, it sets the isTriggered flag to true and requests a notification.
Persists the Notification entity for user history and dispatches the email via Symfony Mailer.