mirror of
https://github.com/domfelipe/clima-cuida-care-weather.git
synced 2026-08-07 14:56:46 +00:00
1.6 KiB
1.6 KiB
Execução
Arquitetura
src/
api/openMeteo.ts chamadas e normalização das APIs públicas
components/ peças de interface do dashboard
data/mock.ts dados de fallback e perfis de uso
lib/formatters.ts datas, unidades e textos curtos
lib/riskScore.ts score local e recomendações
lib/riskScore.test.ts testes unitários do score
App.tsx estado, preferências e composição da tela
Fluxo de dados
- O usuário busca uma cidade ou autoriza geolocalização.
openMeteo.tschama Weather Forecast e Air Quality em paralelo.- Os dados são normalizados para
WeatherBundle. riskScore.tscalcula fatores de UV, chuva, sensação térmica, vento e poluição.- A UI mostra semáforo, métricas, recomendações, timeline e previsão.
- Perfil e local escolhido ficam no
localStorage.
Decisões técnicas
- Vite + React + TypeScript para manter o projeto pequeno e didático.
- CSS próprio para evitar dependências de UI e facilitar explicação em aula.
lucide-reactapenas para ícones funcionais.Vitestpara testes unitários do cálculo de risco.- Sem backend, banco de dados, autenticação ou chaves privadas.
- Fallback local explícito quando a API não responde.
Cálculo de risco
O score combina:
- UV alto.
- Chance e intensidade de chuva.
- Sensação térmica extrema.
- Vento e rajadas.
- PM2.5, PM10 e AQI dos EUA.
- Ajuste por perfil de uso.
O maior fator individual também pesa no resultado final para impedir que uma média esconda um risco grave, como poluição alta para quem tem rinite/asma.