Link do repositório: https://github.com/keinermendoza/currency-exchange-store
Sistema web feito para facilitar operações de câmbio. Ele funciona em duas frentes principais:
Frontend Público: Uma página de destino (landing page) voltada para o cliente, onde é possível calcular taxas de câmbio e entrar em contato com a empresa via WhatsApp.
Painel Administrativo: Uma interface segura construída em React, usada para gerenciar moedas, taxas, conteúdos e configurações do site.
O projeto utiliza uma arquitetura híbrida:
Backend (PHP Customizado): Um framework MVC próprio que serve tanto como renderizador server-side para o site público quanto como uma API RESTful para o painel administrativo.
Frontend Administrativo: Uma Single Page Application (SPA) em React que interage com o backend via endpoints JSON.
O sistema organiza a lógica de negócios em torno destas entidades centrais:
Currency: Unidade monetária (ex: USD, VES) com imagem/bandeira associada.
ExchangeRate: Taxa de conversão entre uma moeda base e uma moeda alvo.
InfoSite: Configurações globais (números de WhatsApp, mensagens de leads).
SocialAccounts: Links para perfis de redes sociais.
Ponto de entrada: public/index.php, que inicializa a aplicação e utiliza o AltoRouter para direcionar as requisições aos controladores.
Roteamento: Definido em routes.php, separando as rotas públicas, de sessão e os endpoints protegidos da API.
Validação: Uma classe Validator centralizada processa os dados de entrada (como nas requisições de criação de taxas de câmbio).
Utiliza a Context API para gerenciamento de estado (ex: CurrencyContext, ExchangerateContext).
Utiliza a biblioteca axios para comunicação com a API.
Suporta funcionalidades como upload de imagens via FormData e method spoofing (simulação de métodos HTTP como PUT) para compatibilidade com o backend PHP.