Skip to content

🚧 UI REDESIGN IN PROGRESS | Self-hosted weather dashboard with AI features, climate analysis & glassmorphism design | React + Node.js + MySQL + Docker

License

Notifications You must be signed in to change notification settings

mbuckingham74/meteo-weather

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Meteo Weather App

🚧 UI Redesign in Progress 🚧

Core functionality stable | UI actively evolving | Live Demo


Self-hostable weather dashboard with AI-powered insights, 10-year climate analysis, and interactive radar maps.


Deployment Status Security Tests Accessibility License Docker Live Demo

Built by Michael Buckingham | Inspired by Weather Spark


πŸ“Έ Screenshots

Coming Soon - Full UI/UX redesign and refactor in progress.

Check out the live demo to see the current interface in action!


✨ Why Choose Meteo?

For Users

  • πŸ€– AI-First Interface - Ask weather questions in plain English ("Will it rain this weekend?")
  • πŸ“Š Deep Climate Analysis - Compare cities with 10 years of historical data
  • 🌧️ Real-Time Radar - Interactive precipitation maps with 2-hour history
  • β™Ώ Accessible to All - WCAG 2.1 Level AA compliant, full screen reader support

For Developers

  • πŸ“š Production-Grade Code - Learn from real-world React + Node.js patterns
  • πŸ” Security First - 9.4/10 score, 0 vulnerabilities, automated scanning
  • πŸ§ͺ Well-Tested - 476/476 tests passing, comprehensive coverage
  • πŸ“– Comprehensive Docs - 80+ organized guides covering everything

For Self-Hosters

  • 🐳 Docker One-Command - Get running in 3 minutes
  • πŸ’° Free to Run - $0/month with free API tiers (1,000 requests/day)
  • πŸ“‰ Minimal Resources - Runs on $6/month VPS (2GB RAM, 1 CPU)
  • πŸ”’ Your Data - No telemetry, no tracking, full control

⚑ Quick Start

Get up and running in 3 minutes with Docker:

# 1. Clone the repository
git clone https://github.com/mbuckingham74/meteo-weather.git
cd meteo-weather

# 2. Copy environment file and add your API keys
cp .env.example .env
# Edit .env - Add your FREE Visual Crossing API key

# 3. Start the application
docker-compose up

# 4. Open in browser
# Frontend: http://localhost:3000
# Backend API: http://localhost:5001

That's it! The app starts with pre-populated data for 148 cities.

Get Your FREE API Keys (2 minutes)

  • Visual Crossing (required) - Sign up here - 1,000 records/day free
  • OpenWeather (required for radar) - Sign up here - 1,000 calls/day free
  • Anthropic Claude (optional, AI features) - Sign up here - Pay-as-you-go (~$0.01/query)

No API keys yet? The app works out of the box with cached data for major cities!

β†’ Full Setup Guide


🌟 Key Features

Core Weather

  • 🌀️ Multi-day forecasts - 3, 7, or 14-day forecasts with hourly breakdowns
  • πŸ“Š 15+ interactive charts - Temperature, precipitation, wind, UV, humidity, and more
  • ⚠️ Real-time weather alerts - Severe weather warnings with map markers
  • πŸ’¨ Air quality monitoring - Live AQI with 6 pollutant measurements
  • 🌧️ Interactive radar map - Real historical precipitation data with animation

AI & Analysis

  • πŸ€– AI Weather Assistant - Natural language queries powered by Claude Sonnet 4.5
  • πŸ” Smart Universal Search - One input for locations AND AI questions
  • πŸ“ˆ 10-year climate analysis - Historical trends and statistical insights
  • 🌍 Location comparison - Compare weather across 2-4 cities side-by-side
  • 🌍 Weather Twins - Find cities worldwide with similar current weather (NEW!)
  • πŸ€– AI location finder - Describe your ideal climate, get recommendations

User Experience

  • πŸ” User accounts - Cloud-synced favorites and preferences across devices
  • 🎨 Theme system - Light, dark, and auto modes with full component coverage
  • β™Ώ Fully accessible - WCAG 2.1 Level AA, keyboard navigation, screen readers
  • πŸ“± Mobile responsive - Optimized for all device sizes
  • πŸ”— Shareable URLs - Direct links to any city's weather
  • βš™οΈ User preferences - Email notifications, report scheduling, customization

Performance & Security

  • ⚑ 99% cache hit rate - MySQL-based caching, 282x faster responses
  • πŸ”’ Security score 9.4/10 - 0 vulnerabilities, automated scanning
  • 🐳 Docker ready - One-command deployment
  • πŸ“‰ Minimal footprint - Runs on $6/month VPS

β†’ Complete Feature List | Live Demo


πŸ“š Documentation

All documentation is organized in the docs/ folder:

Category Description Link
πŸš€ Getting Started Quickstart, architecture, onboarding View β†’
πŸ“‘ API Reference Complete API docs (3 formats) View β†’
πŸ”§ Development Code guides, conventions, branching View β†’
πŸš€ Deployment Production deployment guides View β†’
πŸ” Security Security features & audits (9.4/10) View β†’
β™Ώ Accessibility WCAG Level AA compliance docs View β†’
βš™οΈ CI/CD Pipeline optimization & guides View β†’
πŸ’Ύ Database Schema, ERD, optimizations View β†’
🎨 UI/UX Design system & guidelines View β†’
⚠️ Troubleshooting Common issues & solutions View β†’

Most Popular:

β†’ Browse All Docs


πŸ—οΈ Tech Stack

Frontend

React Vite JavaScript Recharts Leaflet

Backend

Node.js Express.js MySQL JWT

Infrastructure & APIs

Docker GitHub Actions Nginx Claude AI

APIs: Visual Crossing Weather, OpenWeather, RainViewer, Claude AI, Open-Meteo Air Quality

β†’ Architecture Details


πŸ’» Minimum Requirements

Recommended for development:

  • CPU: 1-2 cores (2 GHz+)
  • RAM: 2 GB minimum, 4 GB recommended
  • Storage: 10 GB free space
  • OS: Linux (Ubuntu 20.04+), macOS, or Windows with WSL2

Production: Successfully tested on DigitalOcean $6/month droplet (1 vCPU, 1 GB RAM)

What you need installed:

  • Docker (20.10+) and Docker Compose (1.29+)
  • Git - for cloning the repository

β†’ Detailed Setup Guide


πŸ”’ Security

Security Score: 9.4/10 - Enterprise-grade security with 0 vulnerabilities

Multi-Layer Protection

  • βœ… Gitleaks Secret Scanning - Pre-commit hooks + GitHub Actions
  • βœ… Dependabot Monitoring - Automated vulnerability detection & patching
  • βœ… npm Security Audits - Regular dependency scanning
  • βœ… CodeQL Analysis - Automated code security scanning
  • βœ… Rate Limiting - Protects against abuse and API cost overruns
  • βœ… Security Headers - CSP, HSTS, X-Frame-Options, etc.

Current Status:

  • 0 vulnerabilities in production dependencies
  • All 9 historical vulnerabilities patched
  • Weekly automated security scans
  • Automated Dependabot PRs for security updates

β†’ Security Documentation | Security Policy


β™Ώ Accessibility

Accessibility Score: 8.5-9/10 - Full WCAG 2.1 Level AA compliance

Standards Met

  • βœ… WCAG 2.1 Level A - Foundation accessibility
  • βœ… WCAG 2.1 Level AA - Enhanced accessibility (target standard)
  • βœ… WCAG 2.1 Level AAA - Animation control (bonus)

Features

  • 🎯 Screen reader support - NVDA, JAWS, VoiceOver tested
  • ⌨️ Complete keyboard navigation - All features accessible via keyboard
  • 🎨 Color contrast - 4.5:1 minimum ratio throughout
  • 🎬 Motion control - Respects prefers-reduced-motion
  • πŸ” Focus indicators - Visible 3px purple outlines
  • πŸ’¬ Error suggestions - 200+ contextual recovery hints

β†’ Accessibility Audit | WCAG Compliance


🀝 Contributing

We welcome contributions! This project follows GitHub Flow for a simple, effective workflow.

Quick Start

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'feat: add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request (CI must pass before merge)

What We're Looking For

  • πŸ› Bug fixes
  • ✨ New features
  • πŸ“š Documentation improvements
  • 🎨 UI/UX enhancements (especially needed!)
  • β™Ώ Accessibility improvements
  • πŸ§ͺ Test coverage increases

β†’ Contributing Guide | Branching Strategy | Code of Conduct

Good First Issues: View on GitHub


πŸ—ΊοΈ Roadmap

Recent Achievements:

  • βœ… Express 4 β†’ 5 migration (Nov 2025)
  • βœ… WCAG 2.1 Level AA compliance (Nov 2025)
  • βœ… CI/CD optimization - 50-70% faster (Nov 2025)
  • βœ… Database performance - 20-50x faster queries (Nov 2025)
  • βœ… User-managed API keys for 7 AI providers (Nov 2025)

Planned Features:

  • πŸ“§ Email notifications for weather alerts
  • πŸ“± Mobile app (React Native)
  • 🌐 Multi-language support (i18n)
  • πŸ“Š Extended historical data (20+ years)
  • πŸ›°οΈ Satellite imagery overlays
  • 🌾 Pollen and allergen forecasts

β†’ Full Roadmap | Open Issues


πŸ“„ License

MIT License - See LICENSE for details.

Feel free to use this project for learning, development, and production!


πŸ™ Acknowledgments

Data Providers:

Inspiration:


πŸ“ž Support


Packages

 
 
 

Contributors 3

  •  
  •  
  •