Skip to content

ribeiromatheus/products-analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

113 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub language count Repository size GitHub last commit

Identificador de produtos organizados e desorganizados

Tópicos

🛠️ Tecnologias

  • Node.js - para a criação do servidor (API Restul).
  • ReactJS - para a criação da aplicação web.
  • React Native - para a criação da aplicação mobile.
  • Expo - plataforma para ajudar na criação da aplicação mobile.
  • IBM Watson Visual Recognition - inteligência artificial de reconhecimento visual da IBM, para ajudar a detecção de produtos organizados e desorganizados.

📂 Algumas biblíotecas/módulos utilizados

🚪 Backend

  • express - para criação do servidor (middleware).
  • ibm-watson - para usarmos o watson na aplicação.
  • MongoDB (mongoose) - banco de dados na Núvem.
  • cors - para permitir que a API seja acessada pela aplicação web e mobile.
  • multer - para salvar as imagens que foram enviadas pela câmera.
  • socket.io - permite comunicação baseada em eventos bidirecionais em tempo real.

🌐 Web

  • react-router-dom - para criação rotas.
  • React Icons - para adicionar ícones relacionado com o status de cada imagem do produto (organizado, desorganizado).
  • axios - para fazer requisições HTTP para a API.
  • socket.io-client - framework para comunicação em tempo real do lado cliente.
  • filesize - para medir o tamanho de cada imagem que for enviada pela câmera.

📱 Mobile

💻 Sobre a aplicação

O Products Analyzer é uma aplicação web e mobile que identifica produtos organizados e desorganizados em "prateleiras e freezers de supermercado com uma câmera apontada para eles", usando IBM Watson Visual Recognition, para reconhecimento visual dos produtos.

🚪 Backend

O servidor é uma API Restful; ele é coração das aplicações web e mobile (câmera).

🌐 Web

A aplicação web é para monitorar os produtos que são detectados pela câmera com a ajuda da inteligência artificial de reconhecimento visual.

📱 Mobile

A aplicação mobile é a simulação da câmera que ficaria fixada na frente dos produtos nos supermercados, é a partir dessa aplicação que é tirada uma foto do produto e enviada para aplicação web em tempo real.

🚀 Rodando a aplicação

⚠️ Requisitos

🧭 Clonando, instalando e algumas configurações

  1. Primeiro, clone o repositório rodando git clone https://github.com/ribeiromatheus/products-analyzer.git no seu terminal favorito.
  2. Depois de clonar, rode npm install ou yarn na pasta backend, frontend e products-analyzer.
  3. Vá para a pasta backend e crie uma pasta chamada tmp e dentro dela uma chamda uploads.
  4. Vá para a pasta products-analyzer, crie uma pasta dentro de src chamada credentials depois crie um arquivo json chamado baseUrl para que você possa adicionar seu ip seguido da porta do servidor (3333).
{
    "ip": "http://<ip goes here>:3333"
}

🧭 Criando uma instância do Watson Studio na IBM CLOUD

🧭 Últimas configurações

  1. Agora vá para a pasta backend e renomeie o arquivo sample.env para .env e insira sua credenciais.
  2. Execute o comando npm run dev ou yarn dev para rodar o servidor (certifique-se de que você está na pasta backend).
  3. Execute o comando npm start ou yarn start para roda a aplicação web (certifique-se de que você está na pasta frontend).
  4. Run npm start or yarn start para roda a aplicação mobile app (certifique-se de que você está na pasta products-analyzer).

🔆 Apresentação da aplicação

💾 Vídeo

Você pode conferir o vídeo da aplicação aqui.

📄 Documentação

Você pode ler a documentção do projeto aqui.