Aplicação web que converte distâncias entre metros, quilômetros, milhas e pés, construída em Python (Flask) e empacotada em Docker — um projeto de estudo de containerização e deploy de aplicações Python.
🐳 Imagem no Docker Hub:
vitorlr/conversao-distancia-desafio
- Seis conversões de distância (m ⇄ km, m ⇄ mi, m ⇄ pés) processadas no servidor (Flask + Jinja2)
- Aceita vírgula ou ponto decimal ("1,5" ou "1.5") e formata o resultado no padrão brasileiro (milhar com ponto, decimal com vírgula)
- Mantém a seleção e o valor digitado após a conversão e exibe erros de entrada de forma clara
- O rodapé mostra hostname e IP do servidor que processou a requisição — útil para visualizar qual container/réplica respondeu em cenários com múltiplas instâncias (load balancing, Docker Compose, Kubernetes)
Design próprio em CSS puro (sem frameworks): paleta verde-natural, cartão
central com bordas arredondadas, tipografia Fraunces + Nunito Sans, estados
de foco visíveis, aria-live no resultado e respeito a
prefers-reduced-motion.
| Camada | Tecnologia |
|---|---|
| Backend | Python 3.10 · Flask · Gunicorn |
| Frontend | HTML5 · CSS3 (sem frameworks) · Jinja2 |
| Infra | Docker · Docker Hub |
A pasta docs/ contém uma demonstração estática da interface —
como a conversão é matemática pura, ela roda de verdade no navegador
(reimplementada em JavaScript). O que só existe na aplicação real é o
processamento no servidor Flask e o chip com hostname/IP do container. Um
banner na própria demo explica a diferença.
Para ativar: Settings → Pages → Deploy from a branch → main,
pasta /docs → Save.
# direto da imagem publicada
docker run -d -p 5000:5000 vitorlr/conversao-distancia-desafio
# ou construindo localmente
docker build -t conversor-distancia .
docker run -d -p 5000:5000 conversor-distanciaAcesse http://localhost:5000.
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
flask run # ou: gunicorn --bind 0.0.0.0:5000 app:appConversorDistancia/
├── app.py → rotas Flask, conversões e formatação pt-BR
├── templates/index.html → página única (Jinja2)
├── static/style.css → estilo (CSS puro)
├── Dockerfile → imagem Python + Gunicorn
├── requirements.txt
└── dockerhub.md → link da imagem publicada
Desenvolvido por Vitor Lombard Rocha como estudo de Flask, containerização com Docker e publicação de imagens no Docker Hub.