Skip to content

KubeDev/conversao-distancia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

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

Watchers

Forks

Releases

No releases published

Packages

No packages published