Neste repositório, você encontrará o código-fonte de uma REST API e seu respectivo Frontend (pasta /docs
), desenvolvidos durante a Santander Dev Week 2024, fruto de uma colaboração entre a DIO e o Santander. Este projeto, construído com Java 21 e Spring Boot 3, é o resultado de quatro dias de lives, com um propósito incrível:
Note
Objetivo: "Permitir que os usuários conversem com os campeões do League of Legends (LOL)".
Para isso, utilizamos algumas das mais recentes Inteligências Artificiais (IAs) Generativas, possibilitando que nossa API "entenda" a personalidade única de cada campeão para criar interações que capturam sua essência, tornando cada conversa uma experiência única.
Neste projeto está algumas melhorias além das que foi realizada em 4 dias de aulas oferecidas na Santander Dev Week.
A API está hospedada em um ambiente da AWS utilizando o Elastic Beanstalk. Para acessar o swagger da aplicação utilize o link: Swagger_API caso queira realizar testes.
Tip
Caso queira reproduzir este projeto, você terá os seguintes pré-requisitos:
- Vontade de Aprender 😉
- Instalação da JDK 21 (versão LTS do Java na data das lives);
- Instalação do IntelliJ IDEA Community Edition ou a IDE de sua preferência (Eclipse, VSCode etc);
- [Opcional] Conta na AWS (caso queira publicar a sua API REST na Nuvem usando o AWS Elastic Beanstalk);
- [Opcional] Conta na OpenAI e/ou Google para integração com os modelos GPT e/ou Gemini respectivamente.
- [Opcional Extra] Realizar subida de recursos da aws utilizando o Terraform. Você pode encontrar o passo a passo aqui TFReadme
A seguir, apresentamos o diagrama arquitetural do projeto (escrito com Mermaid), destacando a separação das responsabilidades entre as camadas. Desde a interface de usuário até os mecanismos de interação com sistemas externos, passando por adaptadores, casos de uso e as entidades centrais do domínio, cada elemento é estrategicamente posicionado para reforçar a modularidade, a escalabilidade e a manutenibilidade do sistema. Esta estrutura facilita a compreensão de como os componentes colaboram para a realização dos objetivos do software, alinhando-se aos princípios da Clean Architecture (inclusive nas cores dos elementos).