Sistema de gerenciamento de solicitações de pagamento com API REST e interface web moderna, desenvolvido usando Spring Boot/Java e Vue/TypeScript.
app-video.mp4
- Git - Para clonar e gerenciar o repositório
- Java 21 - Desenvolvida com Spring Boot 4.0.6
- Maven - Build tool (incluído com o
mvnw) - Docker e Docker Compose (obrigatório) - Para executar o banco de dados MySQL em contêineres
- Node.js - Versão 20.19.0 ou superior, ou 22.12.0 ou superior
- npm - Gerenciador de pacotes (incluído com Node.js)
- O script de criação do banco está na pasta Database na raiz do repositório.
- O arquivo de inserção de dados está na pasta resources do projeto da API.
# Navegue até a pasta da API
cd request-manager-api
# Instale e compile o projeto (apenas na primeira vez)
./mvnw clean install
# Execute a API
./mvnw spring-boot:runA API estará disponível em http://localhost:5000
# Navegue até a pasta da aplicação web
cd payment-request-manager-app
# Instale as dependências (apenas na primeira vez)
npm install
# Execute o servidor de desenvolvimento
npm run devA aplicação web estará disponível em http://localhost:5173 (ou outro porta informada pelo Vite)
Abra o navegador e acesse: http://localhost:5173
request-manager/
├── request-manager-api/ # API REST em Spring Boot
│ ├── src/
│ │ ├── main/java/ # Código-fonte da API
│ │ └── resources/ # Arquivos de configuração
│ ├── pom.xml # Configuração Maven
│ └── mvnw # Maven Wrapper
│
└── payment-request-manager-app/ # Frontend em Vue.js + TypeScript
├── src/
│ ├── components/ # Componentes Vue
│ ├── views/ # Páginas/Views
│ ├── router/ # Configuração de rotas
│ ├── types/ # Tipos TypeScript
│ └── assets/ # Assets estáticos
├── package.json # Dependências npm
└── vite.config.ts # Configuração do Vite
Como o diagrama abaixo ilustra, o status de uma solicitação de pagamento pode assumir diversos estados. Toda solicitação inicia com o status SOLICITADO e pode chega ao estágio final com o status REJEITADO ou CANCELADO.
- API Rest:
http://localhost:5000 - Aplicação Web:
http://localhost:5173
Solução: Use ./mvnw (no Linux/Mac) ou mvnw.cmd (no Windows)
Solução: Altere a porta no arquivo request-manager-api/src/main/resources/application.properties:
server.port=8081Solução: Instale Node.js da versão recomendada em https://nodejs.org/
Esse problema ocorre quando o docker inicializa o serviço do Mysql e tenta reservar a porta 3000 (como mostra o exemplo) do computador. Porém, ela já está em uso por outro programa, impedindo assim, a conexão entre o container e a máquina.
Solução: Acesse o arquivo docker-compose.yml e altere a propriedade ports do serviço do MySQL. O HOST_PORT fica localizado antes dos dois pontos, como mostra o exemplo abaixo ⬇️.
Exemplo:
ports:
3000:3603 # HOST_PORT : CONTAINER_PORT
Solução: Verifique se a API está rodando em localhost:5000 e ajuste a URL base no arquivo de configuração da aplicação web se necessário.
Gabrielx47
Este projeto é de código aberto.


