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.
- 💰 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.
- Backend:
- Frontend:
- Framework: Flutter (Dart)
- Gerenciamento de Estado: Provider (
ChangeNotifier) - Arquitetura: MVVM aprimorada (com camada de
Repository) - Persistência:
shared_preferencespara histórico local
- Infraestrutura (Deploy):
- Cloud: Amazon Web Services (AWS)
- Serviço: EC2 (Windows Server 2019)
- Lazarus IDE instalado.
- Flutter SDK instalado.
- DLLs do OpenSSL (
libeay32.dllessleay32.dll) na pasta do backend.
- Abra o arquivo
backend/backend.lpino Lazarus IDE. - Compile e execute o projeto (
F9). O servidor iniciará na porta9000.
- Navegue até a pasta
frontend/. - Crie um arquivo chamado
.envna raiz da pastafrontend/. - Adicione a seguinte linha ao arquivo
.envpara apontar para o seu servidor local:API_URL=http://localhost:9000 - Instale as dependências e execute o app:
flutter pub get flutter run
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:
# 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.
Gabriel Rodrigues
Desenvolvedor Full Stack (Lazarus + Flutter)