Skip to content
Prompt

app-clima — Copilot Instructions

by edelcio-muniz

AI Summary

Copilot 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

0/2000
Loading comments...

Health Signals

MaintenanceCommitted 5mo ago
Stale
AdoptionUnder 100 stars
2 ★ · Niche
DocsMissing or thin
Undocumented

GitHub Signals

Stars2
Issues4
Updated5mo ago
View on GitHub
No License

My Fox Den

Community Rating

Sign in to rate this booster

Works With

Any AI assistant that accepts custom rules or system prompts

Claude
ChatGPT
Cursor
Windsurf
Copilot
+ more