Skip to content

About

No description, website, or topics provided.

Resources

Stars

22 stars

Watchers

2 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Conversor de Distância

Uma aplicação web moderna para conversão entre diferentes unidades de distância, desenvolvida em Python Flask com interface responsiva e interativa.

🚀 Funcionalidades

📐 Conversões Suportadas

  • Metro ↔ Quilômetros, Milhas, Pés, Centímetros, Jardas
  • Centímetros ↔ Polegadas
  • Precisão de até 6 casas decimais

🎨 Interface Moderna

  • Design responsivo com Bootstrap 5
  • Gradientes e efeitos Glass
  • Ícones Font Awesome em toda interface
  • Animações suaves e transições
  • Tema moderno com cores harmoniosas

⚡ Funcionalidades Avançadas

  • Conversão em tempo real via AJAX
  • Botão swap para trocar unidades
  • Histórico das últimas 10 conversões
  • Validação de entrada em tempo real
  • Loading states com spinners
  • Tratamento de erros elegante

🛠️ Tecnologias Utilizadas

Backend

  • Python 3.12+
  • Flask 2.0.1 - Framework web
  • Gunicorn 20.1.0 - Servidor WSGI

Frontend

  • HTML5 com templates Jinja2
  • CSS3 com gradientes e animações
  • JavaScript ES6+ com AJAX
  • Bootstrap 5.1 para responsividade
  • Font Awesome 6.0 para ícones

Arquitetura

  • Server-side processing - Todos os cálculos no backend
  • RESTful API com endpoint /convert-api
  • AJAX para conversões em tempo real
  • LocalStorage para persistência do histórico

📦 Instalação e Execução

Pré-requisitos

# Python 3.12+
python3 --version

# Virtualenv (opcional, mas recomendado)
pip install virtualenv

1. Clonar o Repositório

git clone <url-do-repo>
cd conversao-distancia

2. Criar Ambiente Virtual (Recomendado)

virtualenv .venv
source .venv/bin/activate  # Linux/Mac
# ou
.venv\Scripts\activate     # Windows

3. Instalar Dependências

cd src
pip install -r requirements.txt

4. Executar Aplicação

Desenvolvimento

python3 main.py

Produção com Gunicorn

gunicorn -w 4 -b 0.0.0.0:8000 main:app

5. Acessar a Aplicação

🧪 Testes

Teste da API

python3 test_api.py

Teste Manual

  1. Abra a aplicação no navegador
  2. Digite um valor (ex: 1000)
  3. Selecione uma conversão (ex: Metro → Quilômetros)
  4. Veja o resultado em tempo real
  5. Clique "Converter" para salvar no histórico

📁 Estrutura do Projeto

conversao-distancia/
├── README.md              # Este arquivo
├── CLAUDE.md              # Instruções para Claude Code
├── test_api.py            # Testes da API
└── src/
    ├── main.py            # Aplicação Flask principal
    ├── requirements.txt   # Dependências Python
    ├── templates/
    │   └── index.html     # Template principal
    └── static/
        ├── css/
        │   └── style.css  # Estilos customizados
        └── js/
            └── converter.js # JavaScript interativo

🔧 API Endpoints

POST /convert-api

Endpoint para conversões via AJAX.

Request:

{
    "conversion_type": "1",
    "value": 1000
}

Response:

{
    "success": true,
    "result": 1.0,
    "unit": "quilômetros",
    "original_value": 1000
}

Tipos de Conversão:

  • 1: Metro → Quilômetros
  • 2: Quilômetros → Metro
  • 3: Metro → Milhas
  • 4: Milhas → Metro
  • 5: Metro → Pés
  • 6: Pés → Metro
  • 7: Centímetros → Metro
  • 8: Metro → Centímetros
  • 9: Polegadas → Centímetros
  • 10: Centímetros → Polegadas
  • 11: Jardas → Metro
  • 12: Metro → Jardas

🎯 Recursos Especiais

⌨️ Atalhos de Teclado

  • Ctrl/Cmd + Enter: Converter
  • Esc: Limpar entrada

📱 Responsividade

  • Interface otimizada para desktop, tablet e mobile
  • Layout flexível com breakpoints Bootstrap

🔄 Histórico Inteligente

  • Persiste entre sessões do navegador
  • Limite de 10 conversões mais recentes
  • Formato de data/hora brasileiro

⚡ Performance

  • Debounce de 800ms para conversão em tempo real
  • Caching inteligente de resultados
  • Animações otimizadas com CSS3

🚀 Deploy

Gunicorn (Recomendado)

gunicorn -w 4 -b 0.0.0.0:8000 --chdir src main:app

Docker (Opcional)

FROM python:3.12-slim
WORKDIR /app
COPY src/ .
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:8000", "main:app"]

About

No description, website, or topics provided.

Resources

Stars

22 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages