O MicroWorkPay é um sistema baseado em arquitetura de microsserviços, projetado para gerenciar trabalhadores, usuários, folhas de pagamento e controle de autenticação/segurança. Utiliza tecnologias modernas como Spring Boot, Spring Cloud, OAuth2 e JWT, proporcionando uma solução simples, escalável e modular.
O sistema segue uma arquitetura de microsserviços, onde cada serviço é responsável por uma funcionalidade específica. A comunicação entre os microsserviços ocorre via APIs REST.
- hr-worker - Gestão de trabalhadores
- hr-payroll - Cálculo de folha de pagamento
- hr-user - Gerenciamento de usuários
- hr-oauth - Autenticação e segurança (OAuth2 + JWT)
- hr-api-gateway-zuul - API Gateway para roteamento
- hr-config-server (Opcional) - Configuração centralizada
- Java 11
- Spring Boot & Spring Cloud
- Spring Security (OAuth2 + JWT)
- Eureka (Service Discovery)
- Spring Cloud Zuul (API Gateway)
- PostgreSQL
- Docker (Opcional)
Para facilitar os testes, há arquivos disponíveis para importação no Postman:
📂 Arquivos disponíveis:
postman/MicroWorkPay.postman_collection.json
→ Contém todos os endpoints da API.postman/MicroWorkPay.postman_environment.json
→ Contém variáveis para facilitar os testes.
- Abra o Postman.
- Vá para File → Import.
- Selecione os arquivos
.json
mencionados acima. - Configure o ambiente importado para os testes.
- Buscar usuário por e-mail
GET /api/users/search?email={email}
- Parâmetro:
email
(String) - Retorno: Dados do usuário correspondente
- Parâmetro:
-
Buscar usuário por ID
GET /api/users/{id}
- Parâmetro:
id
(UUID) - Retorno: Dados do usuário correspondente
- Parâmetro:
-
Buscar usuário por e-mail
GET /api/users/search?email={email}
- Parâmetro:
email
(String) - Retorno: Dados do usuário correspondente
- Parâmetro:
-
Gerar folha de pagamento
GET /api/payments/{workerId}/days/{days}
- Parâmetros:
workerId
(UUID) → ID do trabalhadordays
(Integer) → Número de dias trabalhados
- Retorno: Informações do pagamento
- Parâmetros:
-
Fallback de pagamento (em caso de erro no serviço principal)
GET /api/payments/{workerId}/days/{days}
- Retorno alternativo: Pagamento padrão com salário
0.0
- Retorno alternativo: Pagamento padrão com salário
-
Buscar todos os trabalhadores
GET /api/workers
- Retorno: Lista de todos os trabalhadores
-
Buscar trabalhador por ID
GET /api/workers/{id}
- Parâmetro:
id
(UUID) - Retorno: Dados do trabalhador
- Parâmetro:
-
Configuração do serviço (
Spring Cloud Config
)GET /api/workers/configs
- Retorno: Sem conteúdo (
204
), mas exibe as configurações nos logs
- Retorno: Sem conteúdo (
- O sistema utiliza OAuth2 + JWT para autenticação.
- Após login, é necessário enviar o token JWT no cabeçalho:
Authorization: Bearer {jwt_token}
- Java 11
- Maven
- PostgreSQL
- Docker (Opcional para containers)
-
Clone o repositório:
git clone https://github.com/seu-usuario/microworkpay.git cd microworkpay
-
Configure o banco de dados:
- Crie os bancos de dados para os microsserviços (
hr-worker
,hr-user
, etc.). - Edite
application.properties
para definir as credenciais do banco.
-
Compile os serviços:
mvn clean install
-
Inicie os serviços:
java -jar target/hr-worker.jar java -jar target/hr-user.jar java -jar target/hr-payroll.jar