image

Acesse bootcamps ilimitados e +650 cursos

33
%OFF
Evandro Santos
Evandro Santos25/12/2025 10:41
Compartilhe

Desafio - Calculadora de Emissões de CO2 (Concluído)

    🌍 Calculadora de Emissões de CO₂

    Uma aplicação web moderna e responsiva para calcular as emissões de dióxido de carbono (CO₂) geradas por diferentes modos de transporte, com comparações detalhadas e sugestões de compensação ambiental.

    🎯 Objetivo

    Conscientizar os usuários sobre o impacto ambiental de suas escolhas de transporte, permitindo que visualizem claramente as emissões de CO₂ para diferentes modos de locomoção e compreendam alternativas mais sustentáveis.

    Visualização

    image

    image

    ✨ Funcionalidades Principais

    1️⃣ Cálculo de Emissões

    - Busca automática de distância: A aplicação identifica rotas pré-cadastradas entre cidades brasileiras e preenche automaticamente a distância

    - Modo de transporte flexível: Selecione entre bicicleta, carro, ônibus ou caminhão

    - Inserção manual de distância: Opção de informar a distância manualmente quando não encontrada na base de dados

    2️⃣ Comparação Interativa

    - Visualização de todos os modos: Veja a emissão de CO₂ para todos os modos de transporte em uma única rota

    - Barras de progresso color-coded:

     - 🟢 Verde (0-25%): Baixa emissão

     - 🟡 Amarelo (25-75%): Emissão média

     - 🟠 Laranja (75-100%): Alta emissão

     - 🔴 Vermelho (>100%): Muito alta emissão

    - Percentual vs Carro: Compara automaticamente com o carro como baseline

    3️⃣ Cálculo de Créditos de Carbono

    - Quantidade de créditos necessários: Calcula quantos créditos de carbono (1 crédito = 1.000 kg CO₂) seriam necessários para compensar a emissão

    - Estimativa de preço: Fornece range de preço em reais (R$ 50-150 por crédito) com valor médio

    4️⃣ Interface Moderna e Responsiva

    - Design elegante: Paleta de cores eco-friendly com degradado de fundo

    - Totalmente responsivo: Funciona perfeitamente em desktop, tablet e mobile

    - Animações suaves: Transições e efeitos visuais polidos

    - UX intuitiva: Formulário claro com validação de entrada

    📊 Especificações Técnicas

    Stack Tecnológico

    - HTML5 Semântico: Estrutura limpa e acessível

    - CSS3 Moderno: Grid, Flexbox, Custom Properties, Animações

    - JavaScript Vanilla: Sem dependências externas

    - BEM Naming Convention: Classes bem organizadas e reutilizáveis

    Base de Dados de Rotas

    - 35+ rotas brasileiras pré-cadastradas

    - Inclui rotas entre capitais e trajetos regionais

    - Cobertura das 5 regiões do Brasil

    Fatores de Emissão de CO₂ (kg por km)

    | Modo de Transporte | Emissão CO₂ |

    |-------------------|------------|

    | 🚲 Bicicleta | 0 kg/km |

    | 🚌 Ônibus | 0,089 kg/km |

    | 🚗 Carro | 0,12 kg/km |

    | 🚚 Caminhão | 0,96 kg/km |

    Configurações de Créditos de Carbono

    - 1 crédito = 1.000 kg CO₂

    - Preço range: R$ 50 - R$ 150 por crédito

    🏗️ Estrutura do Projeto

    carbon-calc/
    ├── index.html       # Estrutura HTML5 semântica
    ├── css/
    │ └── style.css     # Estilos completos com CSS Variables
    ├── js/
    │ ├── routes-data.js   # Base de dados de rotas brasileiras
    │ ├── config.js     # Configurações globais e inicialização
    │ ├── calculator.js   # Lógica de cálculos de emissão
    │ ├── ui.js       # Renderização dinâmica de UI
    │ └── app.js       # Aplicação principal e event handling
    ├── images/
    │ ├── mackbook.png    # Preview em MacBook
    │ └── mobile.png     # Preview em Mobile
    └── README.md       # Este arquivo
    

    🚀 Como Usar

    1. Abra a aplicação no seu navegador (index.html)

    2. Selecione a cidade de origem - Use o autocomplete com as cidades disponíveis

    3. Selecione a cidade de destino - A distância será preenchida automaticamente se a rota existir

    4. Escolha o modo de transporte - Selecione entre as 4 opções disponíveis

    5. Clique em "Calcular emissão" - Aguarde o processamento

    6. Visualize os resultados:

      - Emissão em kg de CO₂

      - Comparação com outros modos de transporte

      - Créditos de carbono necessários

      - Estimativa de preço para compensação

    💻 Arquivos do Projeto

    `index.html`

    - Estrutura HTML5 semântica completa

    - Formulário com campos para origem, destino e distância

    - Seletor de modo de transporte em grid visual

    - Seções para exibição de resultados (inicialmente ocultas)

    `css/style.css`

    - CSS Variables para cores eco-friendly, espaçamento e sombras

    - Componentes: Header, Form, Button, Cards

    - Responsividade: Media queries para mobile e desktop

    - Animações: Fade-in para seções de resultados

    - BEM Convention: Nomes de classes bem organizados

    `js/routes-data.js`

    - Objeto `RoutesDB` com 35+ rotas brasileiras

    - Método `getAllCities()`: Retorna lista única de cidades

    - Método `findDistance()`: Busca distância em ambas as direções

    `js/config.js`

    - Objeto `CONFIG` com configurações globais

    - `EMISSION_FACTORS`: Fatores de emissão por modo

    - `TRANSPORT_MODES`: Metadados (label, ícone, cor)

    - `CARBON_CREDIT`: Configurações de créditos

    - Método `populateDatalist()`: Popula autocomplete

    - Método `setupDistanceAutofill()`: Ativa preenchimento automático

    `js/calculator.js`

    - Objeto `Calculator` com métodos de cálculo

    - `calculateEmission()`: Emissão para um modo

    - `calculateAllModes()`: Emissões comparativas

    - `calculateSavings()`: Economia comparada ao carro

    - `calculateCarbonCredits()`: Créditos necessários

    - `estimateCreditPrice()`: Estimativa de preço

    `js/ui.js`

    - Objeto `UI` com métodos de interface

    - `formatNumber()` e `formatCurrency()`: Formatação de valores

    - `showElement()` e `hideElement()`: Controle de visibilidade

    - `scrollToElement()`: Scroll suave

    - `showLoading()` e `hideLoading()`: Estado de carregamento

    - `renderResults()`: HTML de resultados

    - `renderComparison()`: HTML de comparação

    - `renderCarbonCredits()`: HTML de créditos

    `js/app.js`

    - Inicialização da aplicação no `DOMContentLoaded`

    - `handleFormSubmit()`: Manipulador do envio do formulário

    - `processCalculation()`: Lógica de processamento com simulação de delay

    - Validação completa de inputs

    - Tratamento robusto de erros

    🎨 Paleta de Cores (Eco-friendly)

    | Cor | Hex | Uso |

    |-----|-----|-----|

    | Verde Primário | #10b981 | Botões, destaques, sucesso |

    | Verde Secundário | #059669 | Hover, ênfase |

    | Verde Acento | #34d399 | Highlights |

    | Vermelho (Perigo) | #ef4444 | Alertas, erros |

    | Amarelo (Aviso) | #159e0b | Warnings |

    | Azul (Info) | #3b8216 | Informações |

    🔧 Requisitos do Navegador

    - HTML5 support

    - CSS3 Grid e Flexbox

    - JavaScript ES6+

    - Suporta todos os navegadores modernos:

     - ✅ Chrome/Edge 60+

     - ✅ Firefox 55+

     - ✅ Safari 12+

     - ✅ Mobile browsers

    📈 Futuras Melhorias

    - [ ] Integração com API de geocoding para mais cidades

    - [ ] Histórico de cálculos salvos localmente

    - [ ] Gráficos de emissão ao longo do tempo

    - [ ] Integração com serviços de compensação de carbono

    - [ ] Modo dark/light

    - [ ] Múltiplos idiomas

    - [ ] Exportação de relatórios em PDF

    Link do repositório - vandersant7/carbon-calc

    👨‍💻 Desenvolvedor

    Evandro Santos - GitHub | LinkedIn

    Compartilhe
    Recomendados para você
    Microsoft Certification Challenge #5 - AI 102
    Bradesco - GenAI & Dados
    GitHub Copilot - Código na Prática
    Comentários (0)