Skip to content

joaopedrofrech/MoneyConvert

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MoneyConvert

Aplicativo desktop de conversao de moedas desenvolvido em Python com interface grafica Tkinter.

Funcionalidades

  • Conversao entre BRL, USD, EUR, GBP, JPY e CAD.
  • Lista ampliada de moedas carregada da API, com principais moedas no topo.
  • Dropdowns com bandeira, codigo e nome da moeda.
  • Consulta online de taxas de cambio com fallback local.
  • Validacao de campos e mensagens de erro.
  • Historico de conversoes salvo localmente em CSV.
  • Grafico cambial em Tkinter Canvas com periodos diario, semanal, mensal e anual.
  • Grafico interativo com tooltip, data, taxa e fonte dos dados.
  • Taxa atual em destaque ao abrir o app.
  • Conversor no padrao de duas caixas: valor de origem e valor convertido.
  • Historico com rolagem para muitas conversoes.
  • Botao para limpar historico.
  • Botao para sincronizar taxa e grafico sob demanda.
  • Exibicao de alta, baixa e oscilacao do periodo.
  • Atualizacao automatica periodica dos graficos.
  • Encerramento seguro da janela.
  • Interface de pagina unica, sem navegacao lateral artificial.

Execucao

Use Python 3.10 ou superior.

python3 -m pip install -r requirements.txt
python3 -m moneyconvert

O Tkinter faz parte da instalacao do Python e nao pode ser instalado pelo pip. Para verificar sua disponibilidade:

python3 -m tkinter

No Ubuntu ou Debian, se necessario, instale-o com sudo apt install python3-tk.

Opcionalmente, crie um ambiente virtual para o projeto:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python -m moneyconvert

Testes

python3 -m unittest discover -s tests

Requisitos funcionais

A matriz RF01-RF20 esta documentada em docs/requisitos-funcionais.md.

Fonte de dados cambiais

O app usa a API publica Frankfurter v2 (https://api.frankfurter.dev/v2) para obter taxa atual e serie historica real do par selecionado. Se a rede ou a API falhar, a conversao usa fallback local e o grafico indica claramente que a fonte nao e online.

Estrutura

moneyconvert/
  config/        Constantes e moedas suportadas
  presentation/  Interface Tkinter
  services/      Conversao, validacao e APIs
  storage/       Persistencia local
tests/           Testes automatizados da regra de negocio

Padroes e nomenclaturas

O codigo segue as convencoes do Python: funcoes e variaveis em snake_case, classes em PascalCase e constantes em UPPER_CASE. Código sempre em ingles e comentarios em portugues para facilitar.

Observacao sobre empacotamento

O foco atual e execucao fluida durante o desenvolvimento. Quando necessario, o projeto pode ser empacotado com PyInstaller para gerar .app no macOS ou .exe no Windows.

About

MoneyConvert for AEDB.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages