Skip to content

Releases: valpere/shopogoda

v0.1.0-demo: Enterprise Weather Bot with Demo Mode

02 Oct 05:32
v0.1.0-demo
ef93d71

Choose a tag to compare

ShoPogoda v0.1.0-demo

Enterprise Telegram Weather Bot with Comprehensive Demo Mode

This is the first major release of ShoPogoda (Що Погода), a production-ready Telegram bot for enterprise weather monitoring, environmental alerts, and safety compliance.


🎯 What's New in This Release

🌟 Demo Mode

Perfect for testing, presentations, and development:

  • Auto-Seed Data: Enable with DEMO_MODE=true environment variable
  • Demo User: Pre-configured user (ID: 999999999) in Kyiv, Ukraine
  • Realistic Data: 24 hours of weather data with natural temperature patterns
  • Pre-configured Alerts: 3 alert configurations for temperature, humidity, and AQI
  • Active Subscriptions: 3 notification subscriptions (daily, weekly, alerts)
  • Admin Commands:
    • /demoreset - Clear and re-seed fresh demo data
    • /democlear - Remove all demo data
  • Documentation: Complete guide in docs/DEMO_MODE.md

☁️ Core Weather Services

  • Real-time weather data via OpenWeatherMap API
  • 5-day forecasts with 3-hour intervals
  • Air quality monitoring (AQI + pollutant tracking)
  • Location management (GPS and text-based)
  • Timezone-aware displays

🚨 Enterprise Features

  • Custom Alert System: User-defined thresholds with severity levels
  • Scheduled Notifications: Dual-platform delivery (Telegram + Slack)
  • Role-Based Access: Admin, Moderator, User roles
  • Monitoring Stack: Prometheus + Grafana + Jaeger
  • Data Export: JSON, CSV, TXT formats

🌍 Multi-Language Support

Complete localization in 5 languages:

  • English (en)
  • Ukrainian (uk)
  • German (de)
  • French (fr)
  • Spanish (es)

📊 Data Management

  • Data Export System: Weather data (30 days), alerts (90 days), subscriptions
  • Location Simplification: Single location per user
  • Timezone Independence: Separate location and timezone management

🤖 Bot Commands

User Commands

  • /start - Welcome and introduction
  • /help - Command list
  • /weather [location] - Current weather
  • /forecast [location] - 5-day forecast
  • /air [location] - Air quality
  • /setlocation - Set location (GPS or text)
  • /subscribe - Manage notifications
  • /addalert - Create alerts
  • /settings - User preferences

Admin Commands

  • /stats - System statistics
  • /broadcast - Message all users
  • /users - User management
  • /demoreset - Reset demo data
  • /democlear - Clear demo data

🏗️ Technical Stack

  • Language: Go 1.24
  • Bot Framework: gotgbot v2
  • Database: PostgreSQL (GORM ORM)
  • Cache: Redis
  • Containerization: Docker
  • CI/CD: Automated testing and deployment
  • Monitoring: Prometheus, Grafana, Jaeger
  • Test Coverage: 27.4%

🚀 Quick Start

With Demo Mode

# Clone repository
git clone https://github.com/valpere/shopogoda.git
cd shopogoda

# Copy environment file
cp .env.example .env

# Configure .env
TELEGRAM_BOT_TOKEN=your_bot_token
OPENWEATHER_API_KEY=your_api_key
DEMO_MODE=true

# Start services
make docker-up

# Run bot
make run

Demo data will be automatically seeded on startup!

Production Deployment

# Set DEMO_MODE=false for production
DEMO_MODE=false

# Use docker-compose
docker-compose up -d

See DEPLOYMENT.md for complete deployment guide.


📝 Documentation


🔧 Infrastructure

Monitoring URLs (Local Development)

Database

  • PostgreSQL with GORM ORM
  • Migrations handled automatically
  • Connection pooling (25 connections)

Caching

  • Redis with TTL:
    • Weather: 10 minutes
    • Forecasts: 1 hour
    • Geocoding: 24 hours

🧪 Testing

# Run tests
make test

# Coverage report
make test-coverage

# Integration tests
make test-integration

Test Coverage: 27.4%

  • Version package: 100%
  • Services: 71.3%
  • Config: 98.2%
  • Models: 99.0%

🙏 Credits

Built with:


📧 Support


📄 License

This project is licensed under the MIT License.

🤖 Generated with Claude Code