Logo Lanfrica

Mohamed-Chaari/meteo.tn

Domain:

climate

Record type:

software
Creator:
Moh
Host:
# 🌦️ MΓ©tΓ©o Tunisie β€” National Weather Analytics Platform **A cloud-native, real-time weather data platform covering 221 cities across all 24 governorates of Tunisia.** Live Dashboard β†’ Β· API Docs β†’ --- ## πŸ“‹ Table of Contents - Overview - Architecture - Tech Stack - Project Structure - Data Pipeline - API Reference - Frontend Dashboard - Database Schema - Getting Started - Configuration - Deployment - Contributing --- ## πŸ”­ Overview **MΓ©tΓ©o Tunisie** is an end-to-end weather data engineering project that collects, streams, stores, analyses, and visualises meteorological data for the entire Tunisian territory. | Metric | Value | |---|---| | Cities covered | **221** | | Governorates | **24** | | Historical records | **~403 000 rows** (2020–2024) | | Current refresh rate | **every 15 minutes** | | Forecast horizon | **7 days** | | Forecast refresh rate | **every 6 hours** | **Key capabilities:** - πŸ“‘ **Real-time ingestion** β€” Live weather conditions streamed via Apache Kafka (Aiven Cloud) - πŸ—ƒοΈ **Historical archive** β€” Five years of daily data from the Open-Meteo Archive API - πŸ“Š **Automated analytics** β€” Daily Airflow pipelines compute monthly trends, temperature peaks, inter-variable correlations, and annual statistics - 🚨 **Alert system** β€” Threshold-based weather alerts for extreme conditions - 🌐 **REST API** β€” JWT-secured FastAPI backend deployed on Render.com - πŸ–₯️ **Interactive dashboard** β€” Vanilla JS frontend with Leaflet maps and Plotly charts, hosted on GitHub Pages --- ## πŸ—οΈ Architecture ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ DATA SOURCES β”‚ β”‚ Open-Meteo Archive API Open-Meteo Live API β”‚ β”‚ (historical 2020-2024) (current & 7-day forecast) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β–Ό β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ …