mirror of
https://github.com/domfelipe/clima-cuida-care-weather.git
synced 2026-08-07 09:16:48 +00:00
Initial Clima Cuida app
This commit is contained in:
commit
5d73f604b2
34 changed files with 5118 additions and 0 deletions
45
docs/EXECUCAO.md
Normal file
45
docs/EXECUCAO.md
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# Execução
|
||||
|
||||
## Arquitetura
|
||||
|
||||
```text
|
||||
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
|
||||
|
||||
1. O usuário busca uma cidade ou autoriza geolocalização.
|
||||
2. `openMeteo.ts` chama Weather Forecast e Air Quality em paralelo.
|
||||
3. Os dados são normalizados para `WeatherBundle`.
|
||||
4. `riskScore.ts` calcula fatores de UV, chuva, sensação térmica, vento e poluição.
|
||||
5. A UI mostra semáforo, métricas, recomendações, timeline e previsão.
|
||||
6. 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-react` apenas para ícones funcionais.
|
||||
- `Vitest` para 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue