Esta é a API back-end para o Projeto Mentoria, uma plataforma projetada para auxiliar no desenvolvimento e planejamento de carreira de profissionais de tecnologia. A API oferece um conjunto de endpoints para gerenciar usuários, perfis, metas, notas e gerar resumos de carreira personalizados com o auxílio de Inteligência Artificial.
- Autenticação e Autorização: Sistema de login seguro com JSON Web Tokens (JWT) e controle de acesso baseado em papéis (
USEReADMIN). - Gerenciamento de Usuários: Endpoints para criação, visualização, atualização e exclusão de usuários.
- Perfis Profissionais: Criação e gestão de perfis detalhados, incluindo cargo, carreira, experiência e objetivos.
- Gestão de Metas: Definição e acompanhamento de metas de carreira.
- Notas Pessoais: Funcionalidade para criar e gerenciar notas rápidas.
- Resumos com IA: Geração automática de resumos de carreira e planos de desenvolvimento utilizando a API da OpenAI, com base nos dados do perfil do usuário.
- Java 21: Versão mais recente da linguagem Java.
- Spring Boot 3.3.0: Framework principal para a construção da aplicação.
- Spring Security: Para a camada de autenticação e autorização.
- Spring Data JPA: Para a persistência de dados com o banco de dados.
- Spring AI: Para integração com a API da OpenAI.
- Maven: Gerenciador de dependências e build do projeto.
- PostgreSQL: Banco de dados relacional para o ambiente de produção.
- H2: Banco de dados em memória para os testes.
- Swagger (OpenAPI 3): Para documentação interativa da API.
Siga os passos abaixo para configurar e executar a aplicação em seu ambiente local.
- JDK 21 (ou superior)
- Apache Maven 3.9+
- Uma chave de API da OpenAI
A aplicação requer duas variáveis de ambiente para funcionar corretamente:
JWT_SECRET: Uma chave secreta forte para a assinatura dos tokens JWT.OPENAI-API-KEY: A sua chave de API da OpenAI.
Você pode configurar essas variáveis diretamente no seu sistema operacional ou criar um arquivo run.env na raiz do projeto com o seguinte conteúdo:
JWT_SECRET=seu_segredo_super_secreto_e_longo_aqui
ALEF_API_KEY=sua_chave_da_openai_aquiObservação sobre o Banco de Dados: O perfil de produção (prod) está configurado para usar um banco de dados PostgreSQL na nuvem (Neon). As credenciais estão no arquivo application-prod.properties. Para usar um banco de dados local, você pode alterar este arquivo ou criar um novo perfil no Spring.
Com as variáveis de ambiente configuradas, execute o seguinte comando na raiz do projeto:
# No Windows
./mvnw spring-boot:run
# No Linux ou macOS
./mvnw spring-boot:runA API estará disponível em http://localhost:8080.
Após iniciar a aplicação, a documentação completa e interativa da API, gerada com Swagger, pode ser acessada no seu navegador através do seguinte endereço:
http://localhost:8080/swagger-ui/index.html
Lá você encontrará todos os endpoints, seus parâmetros, corpos de requisição e respostas, além de poder testá-los diretamente.
O projeto possui uma suíte de testes unitários e de integração para garantir a qualidade e o correto funcionamento do código. Para executar todos os testes, utilize o comando:
# No Windows
./mvnw test
# No Linux ou macOS
./mvnw test