Envio de remessas

PHP MySql Javascript Tailwindcss

Link do repositório: https://github.com/keinermendoza/currency-exchange-store

Visão Geral do Projeto:

Sistema web feito para facilitar operações de câmbio. Ele funciona em duas frentes principais:

  1. 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.

  2. Painel Administrativo: Uma interface segura construída em React, usada para gerenciar moedas, taxas, conteúdos e configurações do site.

Arquitetura do Sistema

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.

Entidades Principais:

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.

Pilha Tecnológica e Fluxo de Dados

Backend (PHP)

  • 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).

Frontend (React Admin)

  • 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.