Ocean Watch is a lightweight, accessible web dashboard for ocean advisories and coastal alerts, focused on the Indian Ocean region. It consolidates advisory severity, potential fishing zones (PFZ), cyclone and offshore forecasts, and delivers responsive, installable (PWA) user experiences for both desktop and mobile.
Lightweight & Resilient: Vanilla JS/CSS without heavy framework bloat ensures fast load times even on slow 2G/3G coastal networks. PWA Ready & Localized: Clean multi-language translation architecture (data-i18n), Web Audio voice summary integration, offline PWA caching, and print styles. Multi-Hazard Aggregation: Successfully ingesting ITEWC Tsunami advisories, Seismic events (with GEBCO bathymetry & distance-to-coast enrichment), INCOIS High Wave & Swell Surge advisories, Marine Heatwaves (MHW), Coral Bleaching (CBAS), and Potential Fishing Zones (PFZ).
css/— base, layout, component, and responsive stylesjs/— shared application code and service-specific renderingdata/status.schema.json— snapshot contractdata/pfz-*.geojson— generated PFZ map vectors for display, sharing, and offline fallbackscripts/update-status.ps1— official-source updaterscripts/validate-status.ps1— snapshot validationscripts/sources/— auditable source definitionstests/— fixtures and validation checksdocs/— architecture, sources, and methodology
The generated status.json stays at the repository root because the static application and GitHub Pages update workflow fetch it directly.
Edit js/config.js to change deployment-wide settings. It is shared by the page and service worker and contains the cache version, public site URL, bulletin age limits, map settings, source endpoints, and severity colors.
For a cache refresh, change only CACHE_VERSION in that file. Asset URLs and service-worker registration do not need separate version edits.
powershell -NoProfile -File scripts/validate-status.ps1
powershell -NoProfile -File tests/validation/validate-status.ps1
node tests/validation/validate-assets.mjs- Clear advisory severity palette and status UI
- PFZ (Potential Fishing Zone) details and landing center information
- Cyclone, offshore (OSF), and other hazard renderings
- Responsive controls and optimized advisory layout
- Installable PWA with offline support and service-worker caching
- Configurable announcement card for timely messages
- Accessibility and safeguards for advisory states and statuses
Please see our Security Policy for information on reporting vulnerabilities and security updates.
This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
- Maintainer: @pkmdinesh
- For questions or issues, please open an issue in the repository.
- Built to surface timely ocean advisory information for coastal communities and responders.