lucas-moraes / TCC-univesp

0 stars 0 forks source link

Desenvolvimento de prova de conceito para TCC Olhos da justiça

Polo: Formosa

Integrantes do grupo:
ALESSANDRO LOZANO, RA 2006019
ANDERSON DOS SANTOS, RA 2015130
CAMILA FANELLI, RA 2006636
CRISTIAM VASQUES, RA 2000904
DAVID MACHADO AMARAL, RA 2015907
FERNANDO HENRIQUE GARCIA, RA 2007613
LUCAS MORAES DA SILVA, RA 2005237


📚 Projeto de consulta de perfis via reconhecimento facial

A segurança pública é um tema de grande relevância no Brasil, especialmente em um contexto de crescente criminalidade e violência urbana. Diante dessa realidade desafiadora, surge a necessidade de soluções inovadoras e eficientes que auxiliem na prevenção e combate ao crime. Neste trabalho, apresentamos a proposta de desenvolvimento de um sistema inovador denominado "Os Olhos da Justiça". A solução se baseia em uma plataforma tecnológica que utiliza inteligência artificial e reconhecimento facial para auxiliar na identificação de pessoas em tempo real, permitindo a verificação de pendências com a justiça de forma rápida e precisa.

Estrutura do projeto

A estrutura do projeto consiste em uma API (backend), ao qual tem a implementação de uma biblioteca de IA para reconhecimento facial em javaScript denominada FaceAPI, um banco de dados não relacional MongoDB e uma interface de usuário desenvolvida com JavaScript (usando a biblioteca base ReactJS).


🟡 [ clique ] - Backend (API)

A API foi desenvolvida utilizando o padrão de projeto Clean Architecture, que tem como finalidade manter a organização do código de forma que seja de fácil entendimento, altamente testável e com alta escalabilidade para futuras novas melhorias e implementações, tendo como principal foco o desacoplamento de suas partes, para caso houver a necessidade da troca de bibliotecas, não ter grande demanda de atualização de outras partes do sistema.

A estrutura do projeto é organizada conforme imagem abaixo:

Cobertura de testes


🟡 [ clique ] - Frontend (Interface para o usuário)

A interface foi desenvolvida utilizando o padrão de projeto Atomic Design, esse padrão consiste em organizar os diversos componentes que compõem a interface de acordo a sua complexidade de forma molecular, partindo de átomos para os menos componentes, moléculas para componentes que são compostos por componentes átomos assim por diante.

Para melhor entendimento, podemos esboçar a estrutura do projeto com o diagrama abaixo:


🟡 [ clique ] - Funcionamento do Sistema

O Sistema captura uma imagem via interface, do perfil em tempo real de uma pessoa que vai ser consultada no banco de dados, após a captura, a imagem é convertida em byte-code de dados e são enviados para a API de reconhecimento facial, que avalia a imagem a fim de encontrar um rosto nela, e caso encontre, consulte o banco de dados, e ao reconhecer uma imagem enviar dos dados da imagem correspondente.


🟡 [ clique ] - Banco de dados e sistema de gerenciamento facial

Optamos por deixar os dados baseados em um banco de dados não relacional, o MongoDB, pois guardando os dados em objetos fica mais facil o gerenciamento das imagens por perfil, e como não há a necessidade de relaciomentos entre tabelas, e também pela disponibilização de um banco de dados gratuito para testes disponbilizado pela Mongo Atlas.


https://www.youtube.com/watch?v=tkwXKrleXkk

Como rodar o projeto

Para rodar o projeto será necessário utilizar algumas ferramentas:

  1. Abrir o terminal na pasta do projeto;
  2. Executar o comando para subir o container docker, docker compose up -d;
  3. Abrir outro terminal para rodar o backend, executar o comando cd backend && npm install && npm run dev;
  4. abrir outro terminal para rodar o frontend, executar o comando cd frontend && npm install && npm run dev;