O repositório corrente mantém um conjunto de projetos que evolui de acordo com as matérias cursadas na FIAP, no curso MBA FULLSTACK DEVELOPER, MICROSERVICES, CLOUD & IoT.
A minha escolha foi o desenvolvimento de um exemplo fitício da gerencia de um estoque, a apresentação deste estoque em um portal, a solicitação de pedidos/compras neste portal, e a integração entre o atendimento por parte do estoquista, confirmando ou rejeitando pedidos de clientes.
Para cada matéria cursada, eu mantenho um artefato README.md correspondente, que descreve o que houve de contribução e evolução no projeto.
MATÉRIA | PROFESSOR | LINK README |
---|---|---|
PERSISTENCE | RAFAEL TSUJI MATSUYAMA | - |
MICROSERVICES DEVELOPMENT | ANDRE PONTES SAMPAIO | README-MICROSERVICES-DEVELOPMENT.md |
DEVOPS | HELDER PEREIRA | README-DEVOPS.md |
INTEGRATIONS & DEVELOPMENT TOOLS | CARLOS VINICIUS MAGNABOSCHI HESKETH | README-INTEGRATIONS-AND-DEVELOPMENT-TOOLS.md |
O módulo fiap.sample.login detém microserviços que atendem requisições REST, onde o estado é mantido num banco de dados MongoDB, e há uma camada de cache com Redis.
O único serviço exposto é a gerência de registros de usuário e seu tipo, onde também se atende uma requisição de login, devolvendo um identificador que é válido dentro do estoque e portal.
O módulo fiap.stock.mgnt mantém serviços CRUD para o domínio de Catálogo e Produtos, além da integração necessária com pedidos efetuados via fiap.stock.portal, que chegam no estoque e o estoquista podem confirmar ou rejeitar estes pedidos.
Este módulo é totalmente persistido no banco de dados MySQL, com modelo transacional e constraints, onde os dados estão normalizados e estruturados tabularmente.
A integração entre cadastro de produtos no estoque e apresentação no portal, de pedidos no portal e recebimento no estoque, além da aprovação destes pedidos no estoque (que devem ser atualizado nos registros de pedidos no portal) é feita via mensageria RabbitMQ.
Módulo fiap.stock.portal tem como objetivo oferecer serviços para o cliente do portal, como a navegação e visualização de produtos, solicitação de pedidos e depois o acompanhamento destes pedidos.
Este módulo mantém as informações num modelo não normalizado, mantido no banco de dados MongoDB, com seus os produtos e pedidos, além de um CRUD para os endereços dos clientes, que é depois utilizado nos próprios pedidos.
Após o clone local (e/ou toda alteração em tempo de desenvolvimento), rode o script build que monta tanto os componentes de backend quanto frontend e gera as suas imagens docker LOCALMENTE.
$ ./docker-build.sh
$ docker-compose -f docker-compose-local-backend-only.yml up
$ docker-compose -f docker-compose-local-frontend-only.yml up
$ docker-compose -f docker-compose-local.yml up
$ docker-compose up
- Acesso, Login e Adição de nova Instância no Play with Docker
- Clone do projeto
- Subindo módulos via docker-compose
- Expondo porta, fazendo login (falha) e então criando conta no fiap.stock.portal.front
- Visualizando que não há produtos
googledrive/2-export-portal.mp4
- Expondo porta, fazendo login (falha) e então criando conta no fiap.stock.mgnt.front
- Cadastrando item no catalogo
- Cadastrando produtos
- Visualizando que não há registros de pedidos
- Volta no fiap.stock.portal.front
- Cadastra um endereço
- Visualiza produtos cadastrados e adiciona produtos ao carrinho
- Faz pedido
googledrive/4-take-an-order.mp4
- Volta no fiap.stock.mgnt.front
- Visualiza pedidos efetuados
- Estoquista aprova e rejeita pedidos
- No fiap.stock.portal.front
- O cliente vê o status dos pedidos respondidos