/BlueBank

Projeto Final da PanAcademy

Primary LanguageHTMLGNU General Public License v3.0GPL-3.0

Desafio final da PanAcademy

Um desafio que consiste em criar uma API REST para gerenciamento de contas bancárias e suas respectivas transações.

Sobre este repositório

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 :)

Documentação

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.

Instruções para instalação e execução local

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:

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

Como contribuir

  1. Faça um fork deste repositório e clone-o na sua máquina pessoal
$ git clone https://github.com/alanomenezes/BlueBank.git
  1. Crie uma branch para implementar a sua contribuição (apenas por boa prática, mas você pode simplesmente modificar sua branch main)
$ git checkout -b my-new-feature-branch
  1. Dê commit na sua contribuição
$ git commit -am 'Add some feature'
  1. Dê um push para seu repositório remoto
$ git push origin my-new-feature-branch
  1. Crie um novo pull request para este repositório a partir do repositório do seu fork

Autores

Este repositório foi construído colaborativamente pelos seguintes membros: Alano Menezes, Marcos Paulo, Hellimateas Chaves, Pedro Henrique e Ícaro Pablo.

Licença

Este projeto está licenciado sob a licença GPLv3, veja o arquivo LICENSE para mais detalhes.

Agradecimentos

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