Este projeto é uma API Spring Boot para gerenciamento de processos judiciais e suas audiências, desenvolvida como desafio técnico para desenvolvedor backend.
- Java 21
- Spring Boot
- Spring Data JPA
- H2 Database (em memória)
- Lombok
- Swagger (SpringDoc OpenAPI)
- Maven
src/main/java
└── br.com
├── model
│ ├── Processo.java
│ ├── Audiencia.java
│ └── enums
│ ├── StatusProcesso.java
│ └── TipoAudiencia.java
├── dto
│ ├── ProcessoRequestDTO.java
│ ├── ProcessoResponseDTO.java
│ ├── AudienciaRequestDTO.java
│ └── AudienciaResponseDTO.java
├── mapper
│ ├── ProcessoMapper.java
│ └── AudienciaMapper.java
├── repository
│ ├── ProcessoRepository.java
│ └── AudienciaRepository.java
├── service
│ ├── ProcessoService.java
│ └── AudienciaService.java
└── controller
├── ProcessoController.java
└── AudienciaController.java
- Cadastro de processo judicial com campos:
- número do processo (único e validado por regex)
- vara
- comarca
- assunto
- status (ATIVO, ARQUIVADO, SUSPENSO)
- Listagem e filtragem por
statusecomarca
- Cada processo pode ter uma ou mais audiências
- Campos da audiência:
- data/hora de início e fim
- tipo (CONCILIAÇÃO, INSTRUÇÃO, JULGAMENTO)
- local
- Regras:
- Não permite sobreposição de audiências na mesma vara e local
- Só pode marcar dias úteis (segunda a sexta)
- Processos arquivados ou suspensos não podem receber novas audiências
- Endpoint que retorna a agenda de audiências de uma comarca em um determinado dia
- Número do processo segue o padrão:
0000000-00.0000.0.00.0000 - Validações usando
@Patterne Bean Validation - Enumerações salvas no banco como texto (
@Enumerated(EnumType.STRING))
- Clone o repositório:
git clone [https://github.com/seuusuario/incaas.git](https://github.com/Alencast/Gest-o-de-Processos-Judiciais-com-Agendamento-de-Audi-ncias.git)- Acesse o diretório do projeto:
cd - Rode o projeto:
mvn spring-boot:run- Acesse a documentação Swagger:
http://localhost:8080/swagger-ui/index.html
- O banco H2 pode ser acessado em:
http://localhost:8080/h2-console
- JDBC URL:
jdbc:h2:mem:testdb - Username:
sa - Password: (em branco)
- Testes unitários e de integração estão localizados no pacote
src/test/java. - Rodar testes com Maven:
mvn test- Versionamento da API (
/api/v1) - Validação personalizada com anotações (
@Valid,@Constraint)
Robson Alves de Alencastro
Este projeto é voltado para demonstração de Spring Boot, JPA, validação e boas práticas de arquitetura, servindo como base para desafios técnicos e estudo de backend Java.