Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

QuickConverter

Conversor de moedas completo, usando Lazarus no backend e Flutter no frontend. O objetivo é demonstrar uma estrutura de projeto real e eficiente, com a documentação de cada etapa do desenvolvimento.

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

🚀 QuickConverter (v3.0)

QuickConverter Screen Blue QuickConverter Screen Red QuickConverter Screen Yellow QuickConverter Screen Green

Conversor de moedas full stack robusto e performático, construído com Lazarus (Free Pascal) para o backend e Flutter para o frontend. O projeto demonstra um ciclo de vida completo de desenvolvimento, incluindo cache no servidor, temas customizáveis e implantação na nuvem AWS.


✨ Features

  • 💰 Conversão Multi-Moeda: Suporte para conversão em tempo real entre as principais moedas fiduciárias (USD, BRL, EUR, etc.) utilizando a AwesomeAPI.
  • ₿ Criptomoedas: Módulo dedicado para conversão de criptomoedas (Bitcoin, Ethereum, etc.) com cotação simultânea em Dólar e Real.
  • 📜 Histórico Local: Registro automático das conversões realizadas, persistido localmente no dispositivo.
  • ⚡ Cache Inteligente: Backend em Lazarus com sistema de cache para reduzir latência e prevenir bloqueios de API (Erro 429).
  • 🎨 Temas Customizáveis: Interface moderna com seletor de paletas de cores (Azul, Vermelho, Amarelo e Verde) gerenciado via Provider.
  • 📱 Interface Reativa: Navegação fluida com Sidebar, validação de inputs e formatação em tempo real.
  • ☁️ Deploy na AWS: Backend totalmente funcional hospedado em servidor EC2.

🛠️ Stack de Tecnologias

  • Backend:
    • Linguagem: Free Pascal (com Lazarus IDE)
    • Framework: Horse
    • Middleware JSON: Jhonson
  • Frontend:
    • Framework: Flutter (Dart)
    • Gerenciamento de Estado: Provider (ChangeNotifier)
    • Arquitetura: MVVM aprimorada (com camada de Repository)
    • Persistência: shared_preferences para histórico local
  • Infraestrutura (Deploy):

⚙️ Como Executar Localmente

Pré-requisitos

  • Lazarus IDE instalado.
  • Flutter SDK instalado.
  • DLLs do OpenSSL (libeay32.dll e ssleay32.dll) na pasta do backend.

1. Backend (Lazarus)

  1. Abra o arquivo backend/backend.lpi no Lazarus IDE.
  2. Compile e execute o projeto (F9). O servidor iniciará na porta 9000.

2. Frontend (Flutter)

  1. Navegue até a pasta frontend/.
  2. Crie um arquivo chamado .env na raiz da pasta frontend/.
  3. Adicione a seguinte linha ao arquivo .env para apontar para o seu servidor local:
    pascal
    API_URL=http://localhost:9000
  4. Instale as dependências e execute o app:
    bash
    flutter pub get
    flutter run

☁️ Informações do Deploy (AWS)

A API está hospedada em uma instância EC2 da AWS. Para que o aplicativo Flutter se comunique com o servidor na nuvem, o arquivo .env deve ser configurado com o IP público da instância:

pascal
# Exemplo de conte??do do arquivo .env para produ????o
API_URL=http://SEU_IP_PUBLICO_DA_AWS:9000

Nota: O arquivo .env está listado no .gitignore e não deve ser versionado, garantindo que as configurações de produção não sejam expostas no repositório.


👤 Autor

Gabriel Rodrigues

Desenvolvedor Full Stack (Lazarus + Flutter)