Skip to content

3S00mc/copilot-co-calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍃 Calculadora de Emissão de CO2

License: MIT HTML5 CSS3 JavaScript

Calcule estimativas de emissões de CO2 para viagens entre cidades brasileiras. Aplicação front-end moderna, acessível e totalmente responsiva.

📋 Visão Geral

Calculadora de Emissão de CO2 é uma aplicação educacional que permite usuários estimarem o impacto ambiental de suas viagens entre cidades brasileiras.

A ferramenta oferece:

  • ✅ Cálculo de emissões por modo de transporte
  • ✅ Comparação interativa entre todos os modos
  • ✅ Estimativa de créditos de carbono necessários
  • ✅ Interface limpa e profissional
  • ✅ Totalmente responsiva (mobile-first)
  • ✅ Acessível (WCAG 2.1)

🎯 Características Principais

1. Cálculo de Emissões

Calcula instantaneamente emissões de CO2 baseado em:

  • Origem e destino (40+ rotas brasileiras pré-carregadas)
  • Modo de transporte: 🚲 Bicicleta | 🚗 Carro | 🚌 Ônibus | 🚚 Caminhão
  • Distância (auto-preenchida ou manual)

2. Comparação de Transporte

Ranking interativo mostrando:

  • Emissão por modo
  • Diferença absoluta em kg CO2
  • Diferença percentual vs modo mais poluente
  • Identificação visual do baseline

3. Análise de Créditos de Carbono

Estimativa de compensação:

  • Quantidade de créditos necessária (em tCO2e)
  • Faixa de preço: $5 a $25 por tonelada
  • Preço mínimo, médio e máximo

🏗️ Arquitetura

Arquitetura limpa e modular, separando responsabilidades:

┌─────────────────────────────────────────┐
│         Camada de Apresentação          │
│  HTML5 (estrutura) + CSS3 (estilo)     │
└────────────────┬────────────────────────┘
                 │
┌────────────────▼────────────────────────┐
│      Camada de Interface (UI.js)        │
│  Coleta dados | Renderiza resultados    │
└────────────────┬────────────────────────┘
                 │
┌────────────────▼────────────────────────┐
│    Camada de Orquestração (App.js)      │
│  Coordena fluxo | Valida dados          │
└────────────────┬────────────────────────┘
                 │
    ┌────────────┼────────────┐
    │            │            │
┌───▼──┐  ┌─────▼────┐  ┌───▼────┐
│ Calc │  │ RoutesDB │  │ Config │
│ ulat │  │ (dados)  │  │(const) │
│  or  │  │          │  │        │
└──────┘  └──────────┘  └────────┘

Responsabilidades por Módulo

Arquivo Responsabilidade
index.html Estrutura semântica (formulário, seções)
css/style.css Estilos, layout responsivo, animações
js/routes-data.js Base de dados de rotas brasileiras
js/config.js Constantes (fatores de emissão)
js/calculator.js Funções puras (cálculos matemáticos)
js/ui.js Interação com DOM (renderização)
js/app.js Orquestração da aplicação

🚀 Como Usar

Requisitos

  • Navegador moderno (Chrome, Firefox, Safari, Edge)
  • Sem dependências externas

Instalação

  1. Clone o repositório
git clone https://github.com/seu-usuario/carbon-calculator.git
cd carbon-calculator
  1. Abra no navegador
# Opção 1: Abrir arquivo local
open index.html

# Opção 2: Usar servidor local (Python 3)
python -m http.server 8000
# Acesse: http://localhost:8000

# Opção 3: Usar servidor local (Node.js)
npx http-server
  1. Use a calculadora
    • Selecione origem e destino (ou insira distância manualmente)
    • Escolha um modo de transporte
    • Clique em "Calcular Emissão"
    • Visualize resultados, comparação e créditos de carbono

📊 Estrutura do Projeto

carbon-calculator/
├── index.html           # Página principal (HTML semântico)
├── css/
│   └── style.css        # Estilos (BEM, responsivo, dark mode)
├── js/
│   ├── routes-data.js   # Base de dados de rotas (40+ rotas)
│   ├── config.js        # Constantes (fatores de emissão)
│   ├── calculator.js    # Funções puras de cálculo
│   ├── ui.js            # Funções de DOM e renderização
│   └── app.js           # Orquestração e event listeners
├── README.md            # Este arquivo
└── LICENSE              # MIT License

🔧 Componentes Principais

Routes Database

RoutesDB.getAllCities()           // Lista cidades únicas
RoutesDB.findDistance(origin, dest) // Busca distância (bidirecional)

Calculator

Calculator.calculateEmission(distance, factor)  // Emissão total
Calculator.validateDistance(distance)           // Valida distância
Calculator.compareTransportModes(distance)      // Ranking de modos

UI

showResult(data)          // Exibe resultado principal
showComparison(data)      // Exibe tabela de comparação
showCarbonCredits(data)   // Exibe créditos de carbono
showError(message)        // Exibe mensagem de erro

📐 Dados e Fatores

Fatores de Emissão (kg CO2/km)

Modo Fator Observação
🚲 Bicicleta 0 Zero emissão
🚌 Ônibus 0.10 Baixa emissão (compartilhado)
🚗 Carro 0.21 Emissão moderada
🚚 Caminhão 0.40 Maior emissão

Rotas Incluídas

  • ✅ 10+ conexões capital-capital (São Paulo, Rio, Brasília, etc)
  • ✅ 20+ rotas regionais por região (Sudeste, Nordeste, Sul, etc)
  • ✅ Cobertura nacional (Norte, Centro-Oeste)

🎨 Design e UX

Paleta de Cores

  • Fundo: #F9FAFB (cinza claro)
  • Texto: #1F2933 (cinza escuro)
  • Primária: #2563EB (azul)
  • Sucesso: #16A34A (verde)
  • Erro: #DC2626 (vermelho)

Features de Acessibilidade

  • ✅ Contraste adequado (WCAG AA)
  • ✅ Focus visível em todos os elementos interativos
  • ✅ Suporte a aria-hidden para seções ocultas
  • ✅ Labels associados a inputs
  • ✅ Semântica HTML5 (header, main, section, footer)
  • ✅ Suporte a dark mode (prefers-color-scheme)
  • ✅ Respeita prefers-reduced-motion

Responsividade

  • 📱 Mobile-first design
  • 📱 Breakpoints: 480px, 768px
  • 📱 Grid de transporte adaptável
  • 📱 Tabelas com scroll horizontal em mobile

💡 Exemplos de Uso

Exemplo 1: Cálculo Básico

Origem: São Paulo, SP
Destino: Rio de Janeiro, RJ
Modo: Carro
Distância: 430 km (auto-preenchida)

Resultado:
✓ Emissão: 90.30 kg CO2
✓ Economia vs caminhão: 79.70 kg (79.5%)

Exemplo 2: Comparação de Modos

Para a mesma rota (430 km):
1. 🚲 Bicicleta: 0 kg CO2
2. 🚌 Ônibus: 43 kg CO2 (52% menos)
3. 🚗 Carro: 90.30 kg CO2 (55% menos)
4. 🚚 Caminhão: 172 kg CO2 (baseline)

Exemplo 3: Créditos de Carbono

Emissão: 90.30 kg CO2
Créditos necessários: 0.0903 tCO2e

Preço estimado:
- Mínimo: $0.45
- Médio: $1.35
- Máximo: $2.26

🔮 Roadmap

Phase 1 (Atual) ✅

  • Interface HTML semântica
  • Cálculo de emissões
  • Comparação de modos
  • Créditos de carbono
  • Base de dados local

Phase 2 (Próxima)

  • Integração com API Google Maps (geocoding + distância)
  • Mais rotas (Brasil inteiro)
  • Gráficos (Chart.js)
  • Histórico de cálculos (localStorage)

Phase 3 (Futuro)

  • Backend Node.js/Express
  • Banco de dados (PostgreSQL)
  • Autenticação de usuários
  • API pública
  • Mobile app (React Native)

🤝 Contribuindo

Contribuições são bem-vindas!

  1. Fork o repositório
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📝 Padrões de Código

  • ✅ JavaScript ES6+
  • ✅ Sem frameworks (vanilla JS)
  • ✅ Funções puras (sem efeitos colaterais)
  • ✅ Separação de responsabilidades
  • ✅ HTML semântico (BEM para CSS)
  • ✅ Comentários explicativos

📄 Licença

Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para detalhes.

👨‍💼 Autor

Desenvolvido com ❤️ para DIO - Projeto GitHub Copilot

🙏 Agradecimentos

⚖️ Disclaimer

As emissões calculadas são estimativas baseadas em fatores médios. Para análises precisas e offsetting real de carbono, consulte plataformas certificadas como:


Última atualização: Janeiro 2026 | Versão: 1.0.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors