Backend do Orange Portfolio similir ao feito em NestJS na 4ª edição do hackaton da FCamara, agora sendo refeito por mim em Java com Spring Boot. As funcionalidades são basicamente as mesmas, porém adicionado um requisito não funcional que a autorização por Roles (cargos - funções) para criação, atualização e deleção das Tags que identificam o conteúdo dos projetos; além de testes unitários e de integração para ajudar a garantir a confiabilidade e consistência do projeto.
- Cadastro de usuário
- Login com o Google
- Login com email e senha
- Cadastro de Projetos
- Edição de projetos
- Exclusão de projetos
- Descoberta de novos projetos
- Filtragem projetos por categorias
OBS: Tanto o Java quanto o Maven instalados e suas variáveis de ambiente configuradas no local em que será executada a aplicação.
1º passo - Depois de clonar o projeto, crie um arquivo chamado application-local.properties
dentro de src/main/resources
e o preencha com as informações que se pede:
# A url de conexão com o seu banco de dados.
spring.datasource.url=
# O dialeto do banco que será usado pelo Hibernate. Caso vá usar o PostgreSQL, não é necessário alterar essa informação.
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
# A string secreta que será usada para gerar os tokens
api.security.token.secret=
# ID do clinte imgur para upload das imagens.
client_id_imgur=
# ID do cliente do google para o login (oauth with google)
spring.security.oauth2.client.registration.google.client-id=
# Secret key encontrada no mesmo lugar do ID, e para o mesmo propósito
spring.security.oauth2.client.registration.google.client-secret=
2º passo - No terminal aberto na raiz do projeto, execute o comando mvn dependency:resolve
para baixar as dependências e compilar a aplicação.
3º passo - No terminal aberto na raiz do projeto, execute o comando mvn spring-boot:run
para executar a aplicação.
No terminal aberto na raiz do projeto, execute o comando mvn test
para executar os testes da aplicação.
Para gerar o artefato para fazer o deploy da aplicação em produção, execute o comando mvn clean install
, assim o maven vai baixar as dependências, compilar, executar os testes e gerar o artefato .jar.
Basta preencher as informações faltantes no arquivo application-container.properties
igualmente feito no application-local.properties
e subir o docker-compose com os comandos:
1º - docker-compose build
2º - docker-compose up