🔗 Acesso público à API Swagger:
https://gestao-vagas-java-qii9.onrender.com/api/swagger-ui/index.html#/
Antes de começar, você precisa ter instalado:
- Java 17+
-
- Maven 3.8+
-
- PostgreSQL
💡 Recomenda-se o uso de uma IDE como: IntelliJ, VS Code ou Eclipse
Microserviço para gestão de vagas de emprego, desenvolvido com Java 17 e Spring Boot.
Projeto criado seguindo boas práticas de arquitetura e desenvolvimento backend.
Este projeto simula uma plataforma robusta e escalável para o gerenciamento de vagas de emprego, utilizando boas práticas de arquitetura com Java e Spring Boot.
Destaques e práticas aplicadas:
- 🧩 Arquitetura em camadas baseada no padrão MVC (Model-View-Controller), promovendo separação de responsabilidades
- 🧠 Organização orientada a DDD (Domain-Driven Design), com foco na modelagem clara e coerente dos domínios de negócio
- 🔐 Autenticação segura com JWT para proteção das rotas
- ✅ Validação de dados com Bean Validation
- 📦 Uso de DTOs (Data Transfer Objects) para comunicação entre camadas
- 📚 Documentação interativa com Swagger
- 🛢️ Integração com banco de dados PostgreSQL via Spring Data JPA
- 🐳 Suporte a Docker para conteinerização e portabilidade
- ⛔ Tratamento centralizado de erros para respostas consistentes
- ✅ Cadastro, autenticação e gerenciamento de empresas
- ✅ Criação, edição, listagem pública e remoção de vagas
- ✅ Cadastro e gerenciamento de candidatos
- ✅ Proteção de rotas com autenticação JWT
- ✅ Documentação automática e interativa com Swagger
- Java 17
- Spring Boot 3
- Spring Data JPA
- PostgreSQL
- Maven
- Lombok
- Hibernate Validator
gestao-vagas-java/
├── config/ # Configurações (Banco, Swagger, etc.)
├── controllers/ # Camada de controle (REST)
├── dtos/ # Objetos de transferência de dados
├── entities/ # Entidades JPA
├── repositories/ # Interfaces do Spring Data
├── services/ # Lógica de negócio
├── exceptions/ # Tratamento de erros
└── ...
{
"name": "Tech Solutions",
"username": "techsolutions",
"email": "contato@techsolutions.com",
"password": "senha123456",
"website": "https://techsolutions.com",
"description": "Empresa especializada em desenvolvimento de software"
}{
"name": "Innovative Tech",
"username": "innovativetech",
"email": "contato@innovativetech.com",
"password": "senha7891011",
"website": "https://innovativetech.com",
"description": "Empresa focada em soluções inovadoras para o mercado de tecnologia"
}{
"name": "Alphabet",
"username": "alphabet",
"email": "contato@alphabet.com",
"password": "senha772289",
"website": "https://alphabet.com",
"description": "Empresa especializada em desenvolvimento de software"
}{
"titulo": "Desenvolvedor Full Stack",
"descricao": "Vaga para desenvolvedor full stack com experiência em React e Node.js",
"areaAtuacao": "TI",
"requisitos": ["React", "Node.js", "TypeScript", "PostgreSQL", "Docker"],
"tipoContrato": "CLT",
"localizacao": "Remoto",
"salario": 12000.00,
"beneficios": "VA, VR, Plano de saúde, Odonto"
}{
"titulo": "Analista de Marketing Digital",
"descricao": "Experiência com redes sociais e campanhas online",
"areaAtuacao": "Marketing",
"requisitos": ["Google Analytics", "Meta Ads"],
"tipoContrato": "CLT",
"localizacao": "São Paulo - Híbrido",
"salario": 5000.00,
"beneficios": "VA, VR, Saúde"
}{
"titulo": "Médico Clínico Geral",
"descricao": "Atuação em clínica médica",
"areaAtuacao": "Medicina",
"requisitos": ["Prontuário Eletrônico"],
"tipoContrato": "PJ",
"localizacao": "Rio de Janeiro",
"salario": 15000.00,
"beneficios": "Plano de saúde, Vale transporte"
}{
"name": "João Silva",
"username": "joaosilva",
"email": "joao.silva@example.com",
"password": "senhaSegura123",
"description": "Dev Java com Spring Boot"
}{
"name": "Pedro Paulo",
"username": "pedropaulo",
"email": "pedro.paulo@example.com",
"password": "senhaSegura1238890",
"description": "Dev backend apaixonado por código limpo"
}{
"name": "Maria Clara",
"username": "mariaclara",
"email": "mariaclara@example.com",
"password": "senhaSegura1231955",
"description": "Desenvolvedora full stack com foco em backend"
}📥 Passo 1 – Clone o repositório git clone https://github.com/ell120603/gestao-vagas-java.git cd gestao-vagas-java
🧾Passo 2 – Configure o banco de dados PostgreSQL Crie um banco de dados chamado gestao_vagas no seu PostgreSQL. No arquivo src/main/resources/application.properties, configure com seus dados de acesso: spring.datasource.url=jdbc:postgresql://localhost:5432/gestao_vagas spring.datasource.username=SEU_USUARIO spring.datasource.password=SUA_SENHA spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true
🚀 Passo 3 – Execute o projeto Se estiver usando o terminal: ./mvnw spring-boot:run
Este projeto foi desenvolvido por:
-
Eliel
🔹 👤 Perfil do candidato
🔹 💼 Cadastro e autenticação de candidato
🔹 💼 Cadastro e autenticação de empresa
🔹 📝 Listagem de vagas
🔹 🔧 Criação de vagas🧪 Testes unitários
🔹 Configuração do Swagger
🔹 Configuração do Projeto e rotas
🔹 Configuração do Docker
🔹 Ajustes de bugs
🔹 Deploy do projeto
🔹 Segurança da rotas atráves do JWT
🚫 Desativação de empresa
-
Emilie
🔹 🧪 Testes unitários -
Francisco
🔹 🧪 Testes unitários
🔹 👔 Exibição de perfil da empresa
🔹 📩 Candidatura em vaga🔹 📚 Documentação e readme
-
Pietro
🔹 🔁 Rotas de alteração (Candidato, Empresa)
🔹 👥 Listagem de candidatos da vaga
🔹 🔍 Pesquisa com filtros em vagas 🔹 📚 Documentação -
Rafael
🔹 🚫 Desativação de candidato
🔹 📝 Alteração de dados em vagas
🔹 📚 Documentação -
Thiago
🔹 🧪 Testes unitários
🔹 🗑️ Implementação de Soft Delete (Empresa)
🔹 ❌ Fechamento de vagas