AI SummaryCopilot instructions for a Python Flask weather API project with Docker and MySQL setup, designed to help developers understand and work with a containerized meteorological data application.
Install
Copy this and paste it into Claude Code, Cursor, or any AI assistant:
I want to add the "app-clima — Copilot Instructions" prompt rules to my project. Repository: https://github.com/edelcio-muniz/app-clima Please read the repo to find the rules/prompt file, then: 1. Download it to the correct location (.cursorrules, .windsurfrules, .github/prompts/, or project root — based on the file type) 2. If there's an existing rules file, merge the new rules in rather than overwriting 3. Confirm what was added
Description
App clima desenvolvido em Python para fins de estudos
Arquitetura do Projeto
API REST em Python Flask para consulta de informações meteorológicas, containerizada com Docker e usando MySQL para persistência. Stack: • Python 3.11 + Flask 3.0 (porta 5000) • MySQL 8 (porta 3306) • Docker Compose para orquestração Estrutura de Serviços: • web: Aplicação Flask (api_clima) - API REST • db: MySQL (mysql_clima) - Persistência de histórico
Estrutura da Aplicação (`app.py`)
Inicialização com retry automático: • Função init_db() tenta conectar ao MySQL por até 60 segundos (30 tentativas x 2s) • Cria tabela consultas_clima automaticamente se não existir • Pattern usado: retry loop com time.sleep(2) entre tentativas Rotas REST: • GET / - Informações da API e lista de endpoints • GET /health - Health check (status da app + database) • GET /clima/<cidade> - Consulta clima e salva no banco • GET /historico?limit=10 - Lista últimas N consultas • GET /historico/<cidade>?limit=10 - Histórico filtrado por cidade Conexão com banco: `python DB_CONFIG = { 'host': os.getenv('DB_HOST', 'db'), 'cursorclass': pymysql.cursors.DictCursor # Retorna dict ao invés de tupla } ` Tratamento de erros: • API externa retorna 401: indica problema com WEATHER_API_KEY • API externa retorna 404: cidade não encontrada • Timeout configurado em 10s nas requisições HTTP
Banco de Dados
Tabela consultas_clima: `sql id INT AUTO_INCREMENT PRIMARY KEY cidade VARCHAR(100) NOT NULL temperatura FLOAT descricao VARCHAR(200) umidade INT data_consulta TIMESTAMP DEFAULT CURRENT_TIMESTAMP INDEX idx_cidade (cidade) INDEX idx_data (data_consulta) `
Workflows Essenciais
Iniciar ambiente completo: `bash docker-compose up -d --build ` Ver logs em tempo real: `bash docker-compose logs -f web # App Flask docker-compose logs -f db # MySQL ` Testar API rapidamente: `bash ./demo.sh # Script de demonstração python test-api.py # Suite de testes completa ` Debug interativo: `bash docker exec -it api_clima bash docker exec -it mysql_clima mysql -u usuario -psenha projeto ` Parar e limpar: `bash docker-compose down # Para containers docker-compose down -v # Para + remove volumes (limpa banco) `
Discussion
Health Signals
My Fox Den
Community Rating
Sign in to rate this booster
Works With
Any AI assistant that accepts custom rules or system prompts