Sistema de monitorização de clientes e produtos de uma loja física e automatização de compras
Vídeo de uma demo disponível ao clicar na imagem
O sistema tem a finalidade de simular a gestão de uma loja automatizada, ou seja, um estabelecimento que proporciona uma experiência de compras sem caixas de pagamento, ao reconhecer os produtos que um cliente retirou da prateleira e efetuar a cobrança no momento em que ele deixa a loja.
Ao chegar ao supermercado é detetada a sua entrada na loja e, através dos sensores distribuídos pelo espaço, são adicionados produtos ao seu carrinho virtual ou removidos se este os voltar a pousar. Terminadas as compras, não é preciso fazer nada: apenas sair da loja. Uma vez do lado de fora da loja a compra é finalizada.
Todos os dados referidos anteriormente, no contexto da disciplina de IES, são simulados e gerados automaticamente.
Esta aplicação é similar ao supermercado inteligente da Amazon com o conceito “Just Walk Out“, sem filas e sem checkouts.
Foi utilizado o Jira para planear e documentar o projeto. É possível encontrar informação nos links abaixo:
Jira
(planeamento) https://hugofpaiva.atlassian.net/browse/IES
Confluence
(documentação) https://hugofpaiva.atlassian.net/wiki/spaces
/Project: IES
Pasta do projeto
/Iteration 1
Documentos relacionados com a iteração 1
- Aplicação Web (React)
- Serviço (Spring Boot)
- Geração de Dados (Python)
- Message Broker (Kafka) - Informação de pesquisa e exemplos
- Base de Dados (MySQL e MongoDB) - Informação de pesquisa e exemplos
Para executar o sistema em localhost
é necessário ter o Docker Compose instalado e atualizado.
Posto isto, os passos são os seguintes:
-
Compilar o código do serviço em Spring Boot, tornando-o em um formato distribuível, executando dentro da pasta do projeto deste serviço o seguinte comando:
$ mvn -DskipTests clean package
-
Compilar os serviços para a executação dos containers Docker executando na raiz do repositório:
$ docker-compose build
-
Iniciar os containers:
$ docker-compose up -d
A aplicação Web ficará disponível em: localhost
A disponibilização do sistema foi feita através da Google Cloud Platform e de acordo com este guião, utilizando o free tier. Resumidamente, foi criada uma VM, clonado o repositório e executado o Docker Compose de acordo com o guião e com a versão 1.27.4 para suportar a versão 3.8 do ficheiro Compose. Por fim, nas definições de Firewall, foram abertas as portas 80 e 8080 para permitir o acesso à aplicação web e serviço, respetivamente.
A informação relativa ao deploy de cada componente do sistema encontra-se na sua pasta sendo que foi utilizado um ficheiro Docker Compose para definir e correr os múltiplos Docker Containers dos componentes do sistema, da mesma forma descrita anteriormente.
Tendo em conta que as configurações de CORS e o endereço da API à qual o React acede são diferentes do localhost
, na branch deploy
encontra-se o sistema pronto para deploy na nossa máquina virtual.
Aplicação Web disponível em: 35.246.117.113 (o máximo de clientes da loja está definido como apenas um para evitar esgotar o armazenamento, sendo possível alterar)
É possível encontrar todos os detalhes no Relatório do Trabalho.
Classificação individual referente ao trabalho de grupo de 20 valores em 20.