Skip to content

adriel-mp3/payment-authorization-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

144 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rodando o projeto com Docker

A aplicação foi preparada para execução com Docker, utilizando os serviços de backend, frontend, Nginx e MySQL.

  1. Antes de subir os containers, copie apenas o arquivo de ambiente do frontend:
cp frontend/.env.example frontend/.env

No backend, essa etapa não precisa ser feita manualmente, pois o comando composer setup já copia o .env automaticamente caso ele ainda não exista.

  1. Suba os containers com:
docker compose up -d --build
  1. Execute a configuração inicial do Laravel:
docker compose exec app composer setup
  1. Em seguida, execute os seeders para criar as roles e os usuários de teste:
docker compose exec app php artisan db:seed
  1. No frontend, instale as dependências:
docker compose exec frontend npm install

A aplicação ficará disponível em:

Frontend: http://localhost:5173
Backend: http://localhost:8000


Credenciais de teste

As credenciais abaixo são criadas automaticamente via seeders:

Perfil Login Senha
Admin admin admin
Requester requester requester
Approver approver approver

Observações sobre a implementação

Alguns termos do desafio foram adaptados para inglês para manter consistência no código. As roles foram implementadas como requester, approver e admin, utilizando Enums do PHP, evitando strings soltas e melhorando a manutenção.

Também foram tomadas algumas decisões de modelagem para alinhar o sistema a boas práticas:

  • created_at foi utilizado como data de registro, aproveitando a convenção padrão do Laravel
  • amount é armazenado como inteiro em centavos, evitando problemas de precisão monetária
  • cnpj é armazenado como string sem máscara, preservando zeros à esquerda
  • authorized_at representa a data de análise do pagamento, separando o registro da decisão
  • rejection_reason é preenchido apenas em rejeições
  • foram adicionados índices nos campos mais utilizados nas consultas principais

O requisito original do botão “Consultar” no histórico foi adaptado para filtros reativos. Nesta implementação, a listagem é atualizada automaticamente ao alterar os filtros, reduzindo fricção na interface e melhorando a experiência de uso.

About

Aplicação fullstack para registro e autorização de pagamentos, desenvolvida como teste técnico utilizando Laravel, Vue 3 e MySQL.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors