Um desafio que consiste em criar uma API REST
para gerenciamento de contas bancárias e suas respectivas transações.
Este repositório foi construído não só para cumprir o desafio final do bootcamp de Java + Spring + AWS
ministrado pela Gama Academy em conjunto com o Banco Pan, mas também porque nos propusemos a sermos desafiados por nós mesmos com relação ao nosso trabalho em equipe e, obviamente, em conhecimentos técnicos referentes às ferramentas usadas.
Este repositório contém não só o código principal da aplicação, mas também uma documentação que visa explicar o processo de concepção e de desenvolvimento do projeto, incluindo, além das explicações referentes a ferramentas e métodos técnicos, explicações referentes a ferramentas e métodos de gestão.
Logo abaixo você encontrará um índice com explicações mais detalhadas sobre o que foi mencionado :)
As funcionalidades do código estão descritas em uma série de páginas web construídas pela ferramenta Javadoc, para ter acesso à documentação do código basta entrar na pasta /project/doc e dar dois clicks no arquivo index.html
, seu navegador deverá fazer o resto ;)
As descrições de cada endpoint estão em uma página web construída pela ferramenta Swagger
, esta página pode ser acessada através do link localhost:8080/swagger-ui.html quando a aplicação estiver em execução ;D
No índice de links a seguir estão detalhes sobre o desafio proposto, o desenvolvimento do projeto e um guia rápido para todos os endpoints que poderão ser igualmente acessado pelo Swagger
.
- Descrição do desafio
- Estratégias de gestão e fluxo de trabalho
- Ferramentas e técnicas usadas no código
- Deploy na AWS
- Lista de endpoints da aplicação
Caso vocẽ queira executar o projeto na sua própria máquina basta ter pelo menos o JDK
instalado, alguma IDE
de sua preferência e um banco de dados MySQL
devidamente configurado.
Você poderá obter o JDK pelos seguintes meios:
Guiá-lo por todo o processo de instalação dessa ferramenta e correção de eventuais problemas estão além do escopo deste guia.
Recomendamos o uso das seguintes IDEs:
Para a instalação do MySQL, há os seguintes meios:
- Website oficial para download do MySQL
- Website para download do MariaDB
- A versão de MySQL ou de MariaDB do gerenciador de pacotes do seu sistema
Linux
Nota: em caso de distribuições Linux que usam Systemd, não esqueça de iniciar o
daemon
do banco de dados com os comandos:
sudo systemctl start mysql
ou
sudo systemctl start mariadb
Crie um usuário e senha no seu banco de dados e altere o valor das chaves spring.datasource.username
e spring.datasource.password
do arquivo application.properties com as suas credenciais.
Defina os valores das variáveis de ambiente AWS_ID
e AWS_SECRET
com suas credenciais de acesso AWS, para que o cadastro de emails funcione corretamente. Caso tenha dúvidas sobre como obter suas credenciais veja o guia AWS Account and Access Keys.
Com o JDK instalado e o banco de dados instalado e devidamente configurado, basta importar o projeto na sua IDE e executar a classe principal.
Uma página descrevendo cada possível requisição
em cada possível endpoint
deverá estar acessível a partir do endereço localhost:8080/swagger-ui.html no seu navegador.
Apesar de poder ser executado localmente, este projeto foi feito para ser implantado em um servidor remoto da AWS, a descrição do processo está no arquivo documentation/AWS_deploy.md
- Faça um
fork
deste repositório e clone-o na sua máquina pessoal
$ git clone https://github.com/alanomenezes/BlueBank.git
- Crie uma
branch
para implementar a sua contribuição (apenas por boa prática, mas você pode simplesmente modificar sua branchmain
)
$ git checkout -b my-new-feature-branch
- Dê commit na sua contribuição
$ git commit -am 'Add some feature'
- Dê um push para seu repositório remoto
$ git push origin my-new-feature-branch
- Crie um novo pull request para este repositório a partir do repositório do seu fork
Este repositório foi construído colaborativamente pelos seguintes membros: Alano Menezes, Marcos Paulo, Hellimateas Chaves, Pedro Henrique e Ícaro Pablo.
Este projeto está licenciado sob a licença GPLv3, veja o arquivo LICENSE para mais detalhes.
Gama academy e banco Pan, por todas essas aulas interessantes, pelos desafios propostos e pela excelente orientação durante todo o percurso do treinamento. Agradecemos especialmente nossos instrutores Jenifer Plácido, Jonathan Ferreira e Ana Verônica